Skip to content

Commit e999029

Browse files
authored
Remove numpy compat functions (#44895)
1 parent 5bb694c commit e999029

File tree

14 files changed

+50
-132
lines changed

14 files changed

+50
-132
lines changed

pandas/compat/__init__.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
from pandas._typing import F
1414
from pandas.compat.numpy import (
1515
is_numpy_dev,
16-
np_array_datetime64_compat,
17-
np_datetime64_compat,
1816
np_version_under1p19,
1917
np_version_under1p20,
2018
)
@@ -130,8 +128,6 @@ def get_lzma_file():
130128

131129
__all__ = [
132130
"is_numpy_dev",
133-
"np_array_datetime64_compat",
134-
"np_datetime64_compat",
135131
"np_version_under1p19",
136132
"np_version_under1p20",
137133
"pa_version_under1p01",

pandas/compat/numpy/__init__.py

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
""" support numpy compatibility across versions """
2-
3-
import re
4-
52
import numpy as np
63

74
from pandas.util.version import Version
@@ -29,44 +26,6 @@
2926
)
3027

3128

32-
_tz_regex = re.compile("[+-]0000$")
33-
34-
35-
def _tz_replacer(tstring):
36-
if isinstance(tstring, str):
37-
if tstring.endswith("Z"):
38-
tstring = tstring[:-1]
39-
elif _tz_regex.search(tstring):
40-
tstring = tstring[:-5]
41-
return tstring
42-
43-
44-
def np_datetime64_compat(tstring: str, unit: str = "ns"):
45-
"""
46-
provide compat for construction of strings to numpy datetime64's with
47-
tz-changes in 1.11 that make '2015-01-01 09:00:00Z' show a deprecation
48-
warning, when need to pass '2015-01-01 09:00:00'
49-
"""
50-
tstring = _tz_replacer(tstring)
51-
return np.datetime64(tstring, unit)
52-
53-
54-
def np_array_datetime64_compat(arr, dtype="M8[ns]"):
55-
"""
56-
provide compat for construction of an array of strings to a
57-
np.array(..., dtype=np.datetime64(..))
58-
tz-changes in 1.11 that make '2015-01-01 09:00:00Z' show a deprecation
59-
warning, when need to pass '2015-01-01 09:00:00'
60-
"""
61-
# is_list_like; can't import as it would be circular
62-
if hasattr(arr, "__iter__") and not isinstance(arr, (str, bytes)):
63-
arr = [_tz_replacer(s) for s in arr]
64-
else:
65-
arr = _tz_replacer(arr)
66-
67-
return np.array(arr, dtype=dtype)
68-
69-
7029
__all__ = [
7130
"np",
7231
"_np_version",

pandas/tests/arithmetic/test_datetime64.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
from pandas._libs.tslibs.conversion import localize_pydatetime
2121
from pandas._libs.tslibs.offsets import shift_months
22-
from pandas.compat import np_datetime64_compat
2322
from pandas.errors import PerformanceWarning
2423

2524
import pandas as pd
@@ -487,12 +486,12 @@ def test_dti_cmp_nat_behaves_like_float_cmp_nan(self):
487486
)
488487
darr = np.array(
489488
[
490-
np_datetime64_compat("2014-02-01 00:00Z"),
491-
np_datetime64_compat("2014-03-01 00:00Z"),
492-
np_datetime64_compat("nat"),
489+
np.datetime64("2014-02-01 00:00"),
490+
np.datetime64("2014-03-01 00:00"),
493491
np.datetime64("nat"),
494-
np_datetime64_compat("2014-06-01 00:00Z"),
495-
np_datetime64_compat("2014-07-01 00:00Z"),
492+
np.datetime64("nat"),
493+
np.datetime64("2014-06-01 00:00"),
494+
np.datetime64("2014-07-01 00:00"),
496495
]
497496
)
498497

pandas/tests/base/test_value_counts.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import numpy as np
55
import pytest
66

7-
from pandas.compat import np_array_datetime64_compat
8-
97
import pandas as pd
108
from pandas import (
119
DatetimeIndex,
@@ -212,7 +210,7 @@ def test_value_counts_datetime64(index_or_series):
212210
expected_s = Series([3, 2, 1], index=idx)
213211
tm.assert_series_equal(s.value_counts(), expected_s)
214212

215-
expected = np_array_datetime64_compat(
213+
expected = np.array(
216214
["2010-01-01 00:00:00", "2009-01-01 00:00:00", "2008-09-09 00:00:00"],
217215
dtype="datetime64[ns]",
218216
)

pandas/tests/indexes/test_index_new.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import numpy as np
1111
import pytest
1212

13-
from pandas.compat import np_datetime64_compat
14-
1513
from pandas.core.dtypes.common import is_unsigned_integer_dtype
1614

1715
from pandas import (
@@ -273,9 +271,7 @@ def test_constructor_dtypes_to_float64(self, vals):
273271
[
274272
[1, 2, 3],
275273
np.array([1, 2, 3], dtype=int),
276-
np.array(
277-
[np_datetime64_compat("2011-01-01"), np_datetime64_compat("2011-01-02")]
278-
),
274+
np.array(["2011-01-01", "2011-01-02"], dtype="datetime64[ns]"),
279275
[datetime(2011, 1, 1), datetime(2011, 1, 2)],
280276
],
281277
)
@@ -287,14 +283,7 @@ def test_constructor_dtypes_to_categorical(self, vals):
287283
@pytest.mark.parametrize(
288284
"vals",
289285
[
290-
Index(
291-
np.array(
292-
[
293-
np_datetime64_compat("2011-01-01"),
294-
np_datetime64_compat("2011-01-02"),
295-
]
296-
)
297-
),
286+
Index(np.array([np.datetime64("2011-01-01"), np.datetime64("2011-01-02")])),
298287
Index([datetime(2011, 1, 1), datetime(2011, 1, 2)]),
299288
],
300289
)

pandas/tests/io/parser/test_parse_dates.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
from pandas._libs.tslibs import parsing
2323
from pandas._libs.tslibs.parsing import parse_datetime_string
24-
from pandas.compat import np_array_datetime64_compat
2524
from pandas.compat.pyarrow import pa_version_under6p0
2625

2726
import pandas as pd
@@ -1541,7 +1540,7 @@ def test_date_parser_resolution_if_not_ns(all_parsers):
15411540
"""
15421541

15431542
def date_parser(dt, time):
1544-
return np_array_datetime64_compat(dt + "T" + time + "Z", dtype="datetime64[s]")
1543+
return np.array(dt + "T" + time, dtype="datetime64[s]")
15451544

15461545
result = parser.read_csv(
15471546
StringIO(data),
@@ -1550,9 +1549,7 @@ def date_parser(dt, time):
15501549
index_col=["datetime", "prn"],
15511550
)
15521551

1553-
datetimes = np_array_datetime64_compat(
1554-
["2013-11-03T19:00:00Z"] * 3, dtype="datetime64[s]"
1555-
)
1552+
datetimes = np.array(["2013-11-03T19:00:00"] * 3, dtype="datetime64[s]")
15561553
expected = DataFrame(
15571554
data={"rxstatus": ["00E80000"] * 3},
15581555
index=MultiIndex.from_tuples(

pandas/tests/plotting/test_converter.py

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import pandas._config.config as cf
1212

13-
from pandas.compat import np_datetime64_compat
1413
import pandas.util._test_decorators as td
1514

1615
from pandas import (
@@ -185,21 +184,14 @@ def test_conversion(self):
185184
assert rs == xp
186185

187186
# also testing datetime64 dtype (GH8614)
188-
rs = self.dtc.convert(np_datetime64_compat("2012-01-01"), None, None)
187+
rs = self.dtc.convert("2012-01-01", None, None)
189188
assert rs == xp
190189

191-
rs = self.dtc.convert(
192-
np_datetime64_compat("2012-01-01 00:00:00+0000"), None, None
193-
)
190+
rs = self.dtc.convert("2012-01-01 00:00:00+0000", None, None)
194191
assert rs == xp
195192

196193
rs = self.dtc.convert(
197-
np.array(
198-
[
199-
np_datetime64_compat("2012-01-01 00:00:00+0000"),
200-
np_datetime64_compat("2012-01-02 00:00:00+0000"),
201-
]
202-
),
194+
np.array(["2012-01-01 00:00:00+0000", "2012-01-02 00:00:00+0000"]),
203195
None,
204196
None,
205197
)
@@ -334,20 +326,16 @@ def test_conversion(self):
334326
rs = self.pc.convert(Timestamp("2012-1-1"), None, self.axis)
335327
assert rs == xp
336328

337-
rs = self.pc.convert(np_datetime64_compat("2012-01-01"), None, self.axis)
329+
rs = self.pc.convert("2012-01-01", None, self.axis)
338330
assert rs == xp
339331

340-
rs = self.pc.convert(
341-
np_datetime64_compat("2012-01-01 00:00:00+0000"), None, self.axis
342-
)
332+
rs = self.pc.convert("2012-01-01 00:00:00+0000", None, self.axis)
343333
assert rs == xp
344334

345335
rs = self.pc.convert(
346336
np.array(
347-
[
348-
np_datetime64_compat("2012-01-01 00:00:00+0000"),
349-
np_datetime64_compat("2012-01-02 00:00:00+0000"),
350-
]
337+
["2012-01-01 00:00:00+0000", "2012-01-02 00:00:00+0000"],
338+
dtype="datetime64[ns]",
351339
),
352340
None,
353341
self.axis,

pandas/tests/scalar/period/test_period.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
dateutil_gettz,
2727
maybe_get_tz,
2828
)
29-
from pandas.compat import np_datetime64_compat
3029

3130
import pandas as pd
3231
from pandas import (
@@ -92,14 +91,14 @@ def test_construction(self):
9291
expected = Period(datetime(2007, 1, 1, 9, 0, 0, 1000), freq="L")
9392
assert i1 == expected
9493

95-
expected = Period(np_datetime64_compat("2007-01-01 09:00:00.001Z"), freq="L")
94+
expected = Period("2007-01-01 09:00:00.001", freq="L")
9695
assert i1 == expected
9796

9897
i1 = Period("2007-01-01 09:00:00.00101")
9998
expected = Period(datetime(2007, 1, 1, 9, 0, 0, 1010), freq="U")
10099
assert i1 == expected
101100

102-
expected = Period(np_datetime64_compat("2007-01-01 09:00:00.00101Z"), freq="U")
101+
expected = Period("2007-01-01 09:00:00.00101", freq="U")
103102
assert i1 == expected
104103

105104
msg = "Must supply freq for ordinal value"
@@ -190,8 +189,8 @@ def test_construction_month(self):
190189
i1 = Period(date(2007, 1, 1), freq="M")
191190
i2 = Period(datetime(2007, 1, 1), freq="M")
192191
i3 = Period(np.datetime64("2007-01-01"), freq="M")
193-
i4 = Period(np_datetime64_compat("2007-01-01 00:00:00Z"), freq="M")
194-
i5 = Period(np_datetime64_compat("2007-01-01 00:00:00.000Z"), freq="M")
192+
i4 = Period("2007-01-01 00:00:00", freq="M")
193+
i5 = Period("2007-01-01 00:00:00.000", freq="M")
195194
assert i1 == i2
196195
assert i1 == i3
197196
assert i1 == i4
@@ -245,8 +244,8 @@ def test_period_constructor_offsets(self):
245244
i1 = Period(date(2007, 1, 1), freq="M")
246245
i2 = Period(datetime(2007, 1, 1), freq="M")
247246
i3 = Period(np.datetime64("2007-01-01"), freq="M")
248-
i4 = Period(np_datetime64_compat("2007-01-01 00:00:00Z"), freq="M")
249-
i5 = Period(np_datetime64_compat("2007-01-01 00:00:00.000Z"), freq="M")
247+
i4 = Period("2007-01-01 00:00:00", freq="M")
248+
i5 = Period("2007-01-01 00:00:00.000", freq="M")
250249
assert i1 == i2
251250
assert i1 == i3
252251
assert i1 == i4
@@ -256,14 +255,14 @@ def test_period_constructor_offsets(self):
256255
expected = Period(datetime(2007, 1, 1, 9, 0, 0, 1000), freq="L")
257256
assert i1 == expected
258257

259-
expected = Period(np_datetime64_compat("2007-01-01 09:00:00.001Z"), freq="L")
258+
expected = Period("2007-01-01 09:00:00.001", freq="L")
260259
assert i1 == expected
261260

262261
i1 = Period("2007-01-01 09:00:00.00101")
263262
expected = Period(datetime(2007, 1, 1, 9, 0, 0, 1010), freq="U")
264263
assert i1 == expected
265264

266-
expected = Period(np_datetime64_compat("2007-01-01 09:00:00.00101Z"), freq="U")
265+
expected = Period("2007-01-01 09:00:00.00101", freq="U")
267266
assert i1 == expected
268267

269268
def test_invalid_arguments(self):

pandas/tests/scalar/timestamp/test_timestamp.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
dateutil_gettz as gettz,
2323
get_timezone,
2424
)
25-
from pandas.compat import np_datetime64_compat
2625
import pandas.util._test_decorators as td
2726

2827
from pandas import (
@@ -492,7 +491,7 @@ def test_nanosecond_timestamp(self):
492491
assert t.value == expected
493492
assert t.nanosecond == 5
494493

495-
t = Timestamp(np_datetime64_compat("2011-01-01 00:00:00.000000005Z"))
494+
t = Timestamp("2011-01-01 00:00:00.000000005")
496495
assert repr(t) == "Timestamp('2011-01-01 00:00:00.000000005')"
497496
assert t.value == expected
498497
assert t.nanosecond == 5
@@ -508,7 +507,7 @@ def test_nanosecond_timestamp(self):
508507
assert t.value == expected
509508
assert t.nanosecond == 10
510509

511-
t = Timestamp(np_datetime64_compat("2011-01-01 00:00:00.000000010Z"))
510+
t = Timestamp("2011-01-01 00:00:00.000000010")
512511
assert repr(t) == "Timestamp('2011-01-01 00:00:00.000000010')"
513512
assert t.value == expected
514513
assert t.nanosecond == 10

pandas/tests/series/methods/test_asof.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import pytest
33

44
from pandas._libs.tslibs import IncompatibleFrequency
5-
from pandas.compat import np_datetime64_compat
65

76
from pandas import (
87
DatetimeIndex,
@@ -28,7 +27,7 @@ def test_asof_nanosecond_index_access(self):
2827
# handle nanoseconds
2928
assert first_value == ser["2013-01-01 00:00:00.000000050+0000"]
3029

31-
expected_ts = np_datetime64_compat("2013-01-01 00:00:00.000000050+0000", "ns")
30+
expected_ts = np.datetime64("2013-01-01 00:00:00.000000050", "ns")
3231
assert first_value == ser[Timestamp(expected_ts)]
3332

3433
def test_basic(self):

pandas/tests/test_algos.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
algos as libalgos,
1010
hashtable as ht,
1111
)
12-
from pandas.compat import np_array_datetime64_compat
1312
import pandas.util._test_decorators as td
1413

1514
from pandas.core.dtypes.common import (
@@ -541,10 +540,10 @@ def test_dtype_preservation(self, any_numpy_dtype):
541540

542541
def test_datetime64_dtype_array_returned(self):
543542
# GH 9431
544-
expected = np_array_datetime64_compat(
543+
expected = np.array(
545544
[
546-
"2015-01-03T00:00:00.000000000+0000",
547-
"2015-01-01T00:00:00.000000000+0000",
545+
"2015-01-03T00:00:00.000000000",
546+
"2015-01-01T00:00:00.000000000",
548547
],
549548
dtype="M8[ns]",
550549
)

pandas/tests/tseries/offsets/test_business_day.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
timedelta,
88
)
99

10+
import numpy as np
1011
import pytest
1112

1213
from pandas._libs.tslibs.offsets import (
1314
ApplyTypeError,
1415
BDay,
1516
BMonthEnd,
1617
)
17-
from pandas.compat import np_datetime64_compat
1818

1919
from pandas import (
2020
DatetimeIndex,
@@ -36,7 +36,7 @@ class TestBusinessDay(Base):
3636

3737
def setup_method(self, method):
3838
self.d = datetime(2008, 1, 1)
39-
self.nd = np_datetime64_compat("2008-01-01 00:00:00Z")
39+
self.nd = np.datetime64("2008-01-01 00:00:00")
4040

4141
self.offset = self._offset()
4242
self.offset1 = self.offset

0 commit comments

Comments
 (0)