Skip to content

Commit cf5a666

Browse files
committed
BUG: use more generic type inference for fast plotting
xref pandas-dev#15073
1 parent a1d94d1 commit cf5a666

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

pandas/tests/types/test_inference.py

+21
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
from pandas.types import inference
2323
from pandas.types.common import (is_timedelta64_dtype,
2424
is_timedelta64_ns_dtype,
25+
is_datetime64_dtype,
26+
is_datetime64_ns_dtype,
27+
is_datetime64_any_dtype,
28+
is_datetime64tz_dtype,
2529
is_number,
2630
is_integer,
2731
is_float,
@@ -805,6 +809,23 @@ def test_is_float(self):
805809
self.assertFalse(is_float(np.timedelta64(1, 'D')))
806810
self.assertFalse(is_float(Timedelta('1 days')))
807811

812+
def test_is_datetime_dtypes(self):
813+
self.assertTrue(is_datetime64_dtype('datetime64'))
814+
self.assertTrue(is_datetime64_dtype('datetime64[ns]'))
815+
816+
self.assertFalse(is_datetime64_ns_dtype('datetime64'))
817+
self.assertTrue(is_datetime64_ns_dtype('datetime64[ns]'))
818+
819+
self.assertTrue(is_datetime64_any_dtype('datetime64'))
820+
self.assertTrue(is_datetime64_any_dtype('datetime64[ns]'))
821+
822+
for tz in ['US/Eastern', 'UTC']:
823+
dtype = 'datetime64[ns, {}]'.format(tz)
824+
self.assertFalse(is_datetime64_dtype(dtype))
825+
self.assertTrue(is_datetime64tz_dtype(dtype))
826+
self.assertTrue(is_datetime64_ns_dtype(dtype))
827+
self.assertTrue(is_datetime64_any_dtype(dtype))
828+
808829
def test_is_timedelta(self):
809830
self.assertTrue(is_timedelta64_dtype('timedelta64'))
810831
self.assertTrue(is_timedelta64_dtype('timedelta64[ns]'))

pandas/tseries/tests/test_converter.py

+17-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
import nose
44

55
import numpy as np
6-
from pandas import Timestamp, Period
6+
from pandas import Timestamp, Period, Index
77
from pandas.compat import u
88
import pandas.util.testing as tm
9-
from pandas.tseries.offsets import Second, Milli, Micro
9+
from pandas.tseries.offsets import Second, Milli, Micro, Day
1010
from pandas.compat.numpy import np_datetime64_compat
1111

1212
try:
@@ -62,6 +62,21 @@ def test_conversion(self):
6262
np_datetime64_compat('2012-01-02 00:00:00+0000')]), None, None)
6363
self.assertEqual(rs[0], xp)
6464

65+
# we have a tz-aware date (constructed to that when we turn to utc it
66+
# is the same as our sample)
67+
ts = (Timestamp('2012-01-01')
68+
.tz_localize('UTC')
69+
.tz_convert('US/Eastern')
70+
)
71+
rs = self.dtc.convert(ts, None, None)
72+
self.assertEqual(rs, xp)
73+
74+
rs = self.dtc.convert(Index([ts - Day(1), ts]), None, None)
75+
self.assertEqual(rs[1], xp)
76+
77+
rs = self.dtc.convert(ts, None, None)
78+
self.assertEqual(rs, xp)
79+
6580
def test_conversion_float(self):
6681
decimals = 9
6782

pandas/types/common.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ def is_datetime64_ns_dtype(arr_or_dtype):
188188
tipo = _get_dtype(arr_or_dtype)
189189
except TypeError:
190190
return False
191-
return tipo == _NS_DTYPE
191+
return tipo == _NS_DTYPE or getattr(tipo, 'base', None) == _NS_DTYPE
192192

193193

194194
def is_timedelta64_ns_dtype(arr_or_dtype):

0 commit comments

Comments
 (0)