From b0abd46b50ce94ae43390d8e302386ea20563d58 Mon Sep 17 00:00:00 2001 From: Tyler Reddy Date: Thu, 21 Mar 2019 14:15:12 -0700 Subject: [PATCH] MAINT: upstream timedelta64 changes * draft changes to allow pandas test suite to pass with upstream NumPy prohibition on integer -> m8 casting --- pandas/_libs/tslibs/timedeltas.pyx | 2 +- pandas/tests/arithmetic/test_datetime64.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/_libs/tslibs/timedeltas.pyx b/pandas/_libs/tslibs/timedeltas.pyx index e1788db1cf8f8..77f5001443ae0 100644 --- a/pandas/_libs/tslibs/timedeltas.pyx +++ b/pandas/_libs/tslibs/timedeltas.pyx @@ -1181,7 +1181,7 @@ class Timedelta(_Timedelta): kwargs = {key: _to_py_int_float(kwargs[key]) for key in kwargs} - nano = kwargs.pop('nanoseconds', 0) + nano = np.timedelta64(kwargs.pop('nanoseconds', 0), 'ns') try: value = nano + convert_to_timedelta64(timedelta(**kwargs), 'ns') diff --git a/pandas/tests/arithmetic/test_datetime64.py b/pandas/tests/arithmetic/test_datetime64.py index c81a371f37dc1..01108c1b8df03 100644 --- a/pandas/tests/arithmetic/test_datetime64.py +++ b/pandas/tests/arithmetic/test_datetime64.py @@ -2137,7 +2137,8 @@ def test_timedelta64_equal_timedelta_supported_ops(self, op): # 'us': 1} def timedelta64(*args): - return sum(starmap(np.timedelta64, zip(args, intervals))) + # see casting notes in NumPy gh-12927 + return np.sum(list(starmap(np.timedelta64, zip(args, intervals)))) for d, h, m, s, us in product(*([range(2)] * 5)): nptd = timedelta64(d, h, m, s, us)