Skip to content

Commit ffc06f1

Browse files
authored
BUG: recognize M8[ns, tzstr] (#33885)
1 parent 7c3f662 commit ffc06f1

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

pandas/core/dtypes/dtypes.py

+2
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,8 @@ def __hash__(self) -> int:
825825

826826
def __eq__(self, other: Any) -> bool:
827827
if isinstance(other, str):
828+
if other.startswith("M8["):
829+
other = "datetime64[" + other[3:]
828830
return other == self.name
829831

830832
return (

pandas/tests/dtypes/test_common.py

+4
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ def test_numpy_string_dtype(self):
7575
"datetime64[ns, US/Eastern]",
7676
"datetime64[ns, Asia/Tokyo]",
7777
"datetime64[ns, UTC]",
78+
# GH#33885 check that the M8 alias is understood
79+
"M8[ns, US/Eastern]",
80+
"M8[ns, Asia/Tokyo]",
81+
"M8[ns, UTC]",
7882
],
7983
)
8084
def test_datetimetz_dtype(self, dtype):

pandas/tests/dtypes/test_dtypes.py

+4
Original file line numberDiff line numberDiff line change
@@ -278,12 +278,14 @@ def test_is_dtype(self, dtype):
278278
assert not DatetimeTZDtype.is_dtype(None)
279279
assert DatetimeTZDtype.is_dtype(dtype)
280280
assert DatetimeTZDtype.is_dtype("datetime64[ns, US/Eastern]")
281+
assert DatetimeTZDtype.is_dtype("M8[ns, US/Eastern]")
281282
assert not DatetimeTZDtype.is_dtype("foo")
282283
assert DatetimeTZDtype.is_dtype(DatetimeTZDtype("ns", "US/Pacific"))
283284
assert not DatetimeTZDtype.is_dtype(np.float64)
284285

285286
def test_equality(self, dtype):
286287
assert is_dtype_equal(dtype, "datetime64[ns, US/Eastern]")
288+
assert is_dtype_equal(dtype, "M8[ns, US/Eastern]")
287289
assert is_dtype_equal(dtype, DatetimeTZDtype("ns", "US/Eastern"))
288290
assert not is_dtype_equal(dtype, "foo")
289291
assert not is_dtype_equal(dtype, DatetimeTZDtype("ns", "CET"))
@@ -294,6 +296,8 @@ def test_equality(self, dtype):
294296
# numpy compat
295297
assert is_dtype_equal(np.dtype("M8[ns]"), "datetime64[ns]")
296298

299+
assert dtype == "M8[ns, US/Eastern]"
300+
297301
def test_basic(self, dtype):
298302

299303
assert is_datetime64tz_dtype(dtype)

0 commit comments

Comments
 (0)