From 8e6c6c9f8da9b379673385f27ef75253c930a8b1 Mon Sep 17 00:00:00 2001 From: Brock Mendel Date: Sun, 17 Sep 2017 13:26:49 -0700 Subject: [PATCH 1/3] Dont check for NaTType, just NaT --- pandas/core/indexes/timedeltas.py | 2 +- pandas/io/packers.py | 5 ++--- pandas/tests/scalar/test_timedelta.py | 6 +++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pandas/core/indexes/timedeltas.py b/pandas/core/indexes/timedeltas.py index d7b7d56d74a3a..12b7936503ad7 100644 --- a/pandas/core/indexes/timedeltas.py +++ b/pandas/core/indexes/timedeltas.py @@ -847,7 +847,7 @@ def insert(self, loc, item): pass freq = None - if isinstance(item, (Timedelta, libts.NaTType)): + if isinstance(item, Timedelta) or item is NaT: # check freq can be preserved on edge cases if self.freq is not None: diff --git a/pandas/io/packers.py b/pandas/io/packers.py index a2fc4db23700c..92270b39f56ef 100644 --- a/pandas/io/packers.py +++ b/pandas/io/packers.py @@ -56,7 +56,6 @@ Index, MultiIndex, Float64Index, Int64Index, Panel, RangeIndex, PeriodIndex, DatetimeIndex, NaT, Categorical, CategoricalIndex) -from pandas._libs.tslib import NaTType from pandas.core.sparse.api import SparseSeries, SparseDataFrame from pandas.core.sparse.array import BlockIndex, IntIndex from pandas.core.generic import NDFrame @@ -470,7 +469,7 @@ def encode(obj): } elif isinstance(obj, (datetime, date, np.datetime64, timedelta, - np.timedelta64, NaTType)): + np.timedelta64)) or obj is NaT: if isinstance(obj, Timestamp): tz = obj.tzinfo if tz is not None: @@ -482,7 +481,7 @@ def encode(obj): u'value': obj.value, u'freq': freq, u'tz': tz} - if isinstance(obj, NaTType): + if obj is NaT: return {u'typ': u'nat'} elif isinstance(obj, np.timedelta64): return {u'typ': u'timedelta64', diff --git a/pandas/tests/scalar/test_timedelta.py b/pandas/tests/scalar/test_timedelta.py index bc9a0388df9d9..462b7e3ee64d3 100644 --- a/pandas/tests/scalar/test_timedelta.py +++ b/pandas/tests/scalar/test_timedelta.py @@ -9,7 +9,7 @@ from pandas.core.tools.timedeltas import _coerce_scalar_to_timedelta_type as ct from pandas import (Timedelta, TimedeltaIndex, timedelta_range, Series, to_timedelta, compat) -from pandas._libs.tslib import iNaT, NaTType +from pandas._libs.tslib import iNaT class TestTimedeltas(object): @@ -572,7 +572,7 @@ def test_implementation_limits(self): assert max_td.value == np.iinfo(np.int64).max # Beyond lower limit, a NAT before the Overflow - assert isinstance(min_td - Timedelta(1, 'ns'), NaTType) + assert min_td - Timedelta(1, 'ns') is NaT with pytest.raises(OverflowError): min_td - Timedelta(2, 'ns') @@ -582,7 +582,7 @@ def test_implementation_limits(self): # Same tests using the internal nanosecond values td = Timedelta(min_td.value - 1, 'ns') - assert isinstance(td, NaTType) + assert td is NaT with pytest.raises(OverflowError): Timedelta(min_td.value - 2, 'ns') From c35a9bafa44060e4f70f258f00d673d96fb7a5b3 Mon Sep 17 00:00:00 2001 From: Brock Mendel Date: Sun, 17 Sep 2017 13:41:48 -0700 Subject: [PATCH 2/3] parens per reviewer request --- pandas/tests/scalar/test_timedelta.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/scalar/test_timedelta.py b/pandas/tests/scalar/test_timedelta.py index 462b7e3ee64d3..67ff324de3dc2 100644 --- a/pandas/tests/scalar/test_timedelta.py +++ b/pandas/tests/scalar/test_timedelta.py @@ -572,7 +572,7 @@ def test_implementation_limits(self): assert max_td.value == np.iinfo(np.int64).max # Beyond lower limit, a NAT before the Overflow - assert min_td - Timedelta(1, 'ns') is NaT + assert (min_td - Timedelta(1, 'ns')) is NaT with pytest.raises(OverflowError): min_td - Timedelta(2, 'ns') From f7baaf22c23e25c117bf5c8ee6e3939d3c21fa61 Mon Sep 17 00:00:00 2001 From: Brock Mendel Date: Mon, 18 Sep 2017 09:14:56 -0700 Subject: [PATCH 3/3] fixup missing NaT import --- pandas/tests/scalar/test_timedelta.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/scalar/test_timedelta.py b/pandas/tests/scalar/test_timedelta.py index 67ff324de3dc2..910aed6fc5d3e 100644 --- a/pandas/tests/scalar/test_timedelta.py +++ b/pandas/tests/scalar/test_timedelta.py @@ -9,7 +9,7 @@ from pandas.core.tools.timedeltas import _coerce_scalar_to_timedelta_type as ct from pandas import (Timedelta, TimedeltaIndex, timedelta_range, Series, to_timedelta, compat) -from pandas._libs.tslib import iNaT +from pandas._libs.tslib import iNaT, NaT class TestTimedeltas(object):