Skip to content

CLN: Numpy compat functions namespace #39092

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jan 21, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pandas/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
del hard_dependencies, dependency, missing_dependencies

# numpy compat
from pandas.compat.numpy import (
from pandas.compat import (
np_version_under1p17 as _np_version_under1p17,
np_version_under1p18 as _np_version_under1p18,
is_numpy_dev as _is_numpy_dev,
Expand Down
20 changes: 20 additions & 0 deletions pandas/compat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@
import warnings

from pandas._typing import F
from pandas.compat.numpy import (
is_numpy_dev,
np_array_datetime64_compat,
np_datetime64_compat,
np_version_under1p17,
np_version_under1p18,
np_version_under1p19,
np_version_under1p20,
)

PY38 = sys.version_info >= (3, 8)
PY39 = sys.version_info >= (3, 9)
Expand Down Expand Up @@ -118,3 +127,14 @@ def get_lzma_file(lzma):
"might be required to solve this issue."
)
return lzma.LZMAFile


__all__ = [
"is_numpy_dev",
"np_array_datetime64_compat",
"np_datetime64_compat",
"np_version_under1p17",
"np_version_under1p18",
"np_version_under1p19",
"np_version_under1p20",
]
4 changes: 2 additions & 2 deletions pandas/compat/numpy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
_nlv = LooseVersion(_np_version)
np_version_under1p17 = _nlv < LooseVersion("1.17")
np_version_under1p18 = _nlv < LooseVersion("1.18")
_np_version_under1p19 = _nlv < LooseVersion("1.19")
_np_version_under1p20 = _nlv < LooseVersion("1.20")
np_version_under1p19 = _nlv < LooseVersion("1.19")
np_version_under1p20 = _nlv < LooseVersion("1.20")
is_numpy_dev = ".dev" in str(_nlv)
_min_numpy_ver = "1.16.5"

Expand Down
2 changes: 1 addition & 1 deletion pandas/core/array_algos/masked_reductions.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import numpy as np

from pandas._libs import missing as libmissing
from pandas.compat.numpy import np_version_under1p17
from pandas.compat import np_version_under1p17

from pandas.core.nanops import check_below_min_count

Expand Down
2 changes: 1 addition & 1 deletion pandas/core/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

from pandas._libs import lib
from pandas._typing import AnyArrayLike, NpDtype, Scalar, T
from pandas.compat.numpy import np_version_under1p18
from pandas.compat import np_version_under1p18

from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike
from pandas.core.dtypes.common import (
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/arithmetic/test_datetime64.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from pandas._libs.tslibs.conversion import localize_pydatetime
from pandas._libs.tslibs.offsets import shift_months
from pandas.compat.numpy import np_datetime64_compat
from pandas.compat import np_datetime64_compat
from pandas.errors import PerformanceWarning

import pandas as pd
Expand Down
4 changes: 2 additions & 2 deletions pandas/tests/arrays/integer/test_arithmetic.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import _np_version_under1p20
from pandas.compat import np_version_under1p20

import pandas as pd
import pandas._testing as tm
Expand Down Expand Up @@ -208,7 +208,7 @@ def test_arith_coerce_scalar(data, all_arithmetic_operators):
expected = op(s.astype(float), other)
expected = expected.astype("Float64")
# rfloordiv results in nan instead of inf
if all_arithmetic_operators == "__rfloordiv__" and _np_version_under1p20:
if all_arithmetic_operators == "__rfloordiv__" and np_version_under1p20:
# for numpy 1.20 https://github.com/numpy/numpy/pull/16161
# updated floordiv, now matches our behavior defined in core.ops
mask = (
Expand Down
8 changes: 4 additions & 4 deletions pandas/tests/arrays/sparse/test_arithmetics.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import _np_version_under1p20
from pandas.compat import np_version_under1p20

import pandas as pd
import pandas._testing as tm
Expand Down Expand Up @@ -122,7 +122,7 @@ def test_float_scalar(
):
op = all_arithmetic_functions

if not _np_version_under1p20:
if not np_version_under1p20:
if op in [operator.floordiv, ops.rfloordiv]:
mark = pytest.mark.xfail(strict=False, reason="GH#38172")
request.node.add_marker(mark)
Expand Down Expand Up @@ -169,7 +169,7 @@ def test_float_same_index_with_nans(
# when sp_index are the same
op = all_arithmetic_functions

if not _np_version_under1p20:
if not np_version_under1p20:
if op in [operator.floordiv, ops.rfloordiv]:
mark = pytest.mark.xfail(strict=False, reason="GH#38172")
request.node.add_marker(mark)
Expand Down Expand Up @@ -349,7 +349,7 @@ def test_bool_array_logical(self, kind, fill_value):
def test_mixed_array_float_int(self, kind, mix, all_arithmetic_functions, request):
op = all_arithmetic_functions

if not _np_version_under1p20:
if not np_version_under1p20:
if op in [operator.floordiv, ops.rfloordiv] and mix:
mark = pytest.mark.xfail(strict=True, reason="GH#38172")
request.node.add_marker(mark)
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/arrays/test_datetimelike.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import pytest

from pandas._libs import NaT, OutOfBoundsDatetime, Timestamp
from pandas.compat.numpy import np_version_under1p18
from pandas.compat import np_version_under1p18

import pandas as pd
from pandas import DatetimeIndex, Index, Period, PeriodIndex, TimedeltaIndex
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/base/test_value_counts.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import pytest

from pandas._libs import iNaT
from pandas.compat.numpy import np_array_datetime64_compat
from pandas.compat import np_array_datetime64_compat

from pandas.core.dtypes.common import needs_i8_conversion

Expand Down
3 changes: 1 addition & 2 deletions pandas/tests/computation/test_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
import numpy as np
import pytest

from pandas.compat import is_platform_windows
from pandas.compat.numpy import np_version_under1p17
from pandas.compat import is_platform_windows, np_version_under1p17
from pandas.errors import PerformanceWarning
import pandas.util._test_decorators as td

Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/frame/methods/test_sample.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import np_version_under1p17
from pandas.compat import np_version_under1p17

from pandas import DataFrame, Series
import pandas._testing as tm
Expand Down
4 changes: 2 additions & 2 deletions pandas/tests/frame/test_constructors.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import pytest
import pytz

from pandas.compat.numpy import _np_version_under1p19
from pandas.compat import np_version_under1p19

from pandas.core.dtypes.common import is_integer_dtype
from pandas.core.dtypes.dtypes import DatetimeTZDtype, IntervalDtype, PeriodDtype
Expand Down Expand Up @@ -149,7 +149,7 @@ def test_constructor_dtype_list_data(self):
assert df.loc[1, 0] is None
assert df.loc[0, 1] == "2"

@pytest.mark.skipif(_np_version_under1p19, reason="NumPy change.")
@pytest.mark.skipif(np_version_under1p19, reason="NumPy change.")
def test_constructor_list_of_2d_raises(self):
# https://github.com/pandas-dev/pandas/issues/32289
a = DataFrame()
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/indexes/multi/test_analytics.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import np_version_under1p17
from pandas.compat import np_version_under1p17

import pandas as pd
from pandas import Index, MultiIndex, date_range, period_range
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/indexes/period/test_searchsorted.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import pytest

from pandas._libs.tslibs import IncompatibleFrequency
from pandas.compat.numpy import np_version_under1p18
from pandas.compat import np_version_under1p18

from pandas import NaT, Period, PeriodIndex, Series, array
import pandas._testing as tm
Expand Down
3 changes: 1 addition & 2 deletions pandas/tests/indexes/test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
import pytest

from pandas._libs.tslib import Timestamp
from pandas.compat import IS64
from pandas.compat.numpy import np_datetime64_compat
from pandas.compat import IS64, np_datetime64_compat
from pandas.util._test_decorators import async_mark

import pandas as pd
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/indexes/test_numpy_compat.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import np_version_under1p17, np_version_under1p18
from pandas.compat import np_version_under1p17, np_version_under1p18

from pandas import (
DatetimeIndex,
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/indexing/test_loc.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import is_numpy_dev
from pandas.compat import is_numpy_dev
import pandas.util._test_decorators as td

import pandas as pd
Expand Down
3 changes: 1 addition & 2 deletions pandas/tests/io/parser/test_parse_dates.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
from pandas._libs.tslib import Timestamp
from pandas._libs.tslibs import parsing
from pandas._libs.tslibs.parsing import parse_datetime_string
from pandas.compat import is_platform_windows
from pandas.compat.numpy import np_array_datetime64_compat
from pandas.compat import is_platform_windows, np_array_datetime64_compat
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OT: we can prob remove this np_array_datetime64_compat it is pretty old stuff


import pandas as pd
from pandas import DataFrame, DatetimeIndex, Index, MultiIndex, Series
Expand Down
3 changes: 1 addition & 2 deletions pandas/tests/plotting/test_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

import pandas._config.config as cf

from pandas.compat import is_platform_windows
from pandas.compat.numpy import np_datetime64_compat
from pandas.compat import is_platform_windows, np_datetime64_compat
import pandas.util._test_decorators as td

from pandas import Index, Period, Series, Timestamp, date_range
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/scalar/period/test_period.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from pandas._libs.tslibs.parsing import DateParseError
from pandas._libs.tslibs.period import INVALID_FREQ_ERR_MSG, IncompatibleFrequency
from pandas._libs.tslibs.timezones import dateutil_gettz, maybe_get_tz
from pandas.compat.numpy import np_datetime64_compat
from pandas.compat import np_datetime64_compat
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this too (but just make a new issue for now)


import pandas as pd
from pandas import NaT, Period, Timedelta, Timestamp, offsets
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/scalar/timedelta/test_arithmetic.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import is_numpy_dev
from pandas.compat import is_numpy_dev

import pandas as pd
from pandas import NaT, Timedelta, Timestamp, compat, offsets
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/scalar/timestamp/test_timestamp.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from pytz import timezone, utc

from pandas._libs.tslibs.timezones import dateutil_gettz as gettz, get_timezone
from pandas.compat.numpy import np_datetime64_compat
from pandas.compat import np_datetime64_compat
import pandas.util._test_decorators as td

from pandas import NaT, Timedelta, Timestamp
Expand Down
3 changes: 1 addition & 2 deletions pandas/tests/test_algos.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
import pytest

from pandas._libs import algos as libalgos, hashtable as ht
from pandas.compat import IS64
from pandas.compat.numpy import np_array_datetime64_compat
from pandas.compat import IS64, np_array_datetime64_compat
import pandas.util._test_decorators as td

from pandas.core.dtypes.common import (
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/test_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import numpy as np
import pytest

from pandas.compat.numpy import np_version_under1p17
from pandas.compat import np_version_under1p17

import pandas as pd
from pandas import Series
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/tseries/offsets/test_business_day.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import pytest

from pandas._libs.tslibs.offsets import ApplyTypeError, BDay, BMonthEnd, CDay
from pandas.compat.numpy import np_datetime64_compat
from pandas.compat import np_datetime64_compat

from pandas import DatetimeIndex, _testing as tm, read_pickle
from pandas.tests.tseries.offsets.common import (
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/tseries/offsets/test_offsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import pandas._libs.tslibs.offsets as liboffsets
from pandas._libs.tslibs.offsets import _get_offset, _offset_map
from pandas._libs.tslibs.period import INVALID_FREQ_ERR_MSG
from pandas.compat.numpy import np_datetime64_compat
from pandas.compat import np_datetime64_compat
from pandas.errors import PerformanceWarning

from pandas import DatetimeIndex
Expand Down
2 changes: 1 addition & 1 deletion pandas/tests/tslibs/test_array_to_datetime.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import pytz

from pandas._libs import iNaT, tslib
from pandas.compat.numpy import np_array_datetime64_compat
from pandas.compat import np_array_datetime64_compat

from pandas import Timestamp
import pandas._testing as tm
Expand Down