Skip to content

STYLE keep local imports relative #39902

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

Closed
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
3 changes: 2 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,8 @@ repos:
hooks:
- id: no-string-hints
- repo: https://github.com/MarcoGorelli/abs-imports
rev: v0.1.2
rev: c434798
hooks:
- id: abs-imports
files: ^pandas/
args: [--keep-local-imports-relative]
30 changes: 15 additions & 15 deletions pandas/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
del hard_dependencies, dependency, missing_dependencies

# numpy compat
from pandas.compat import (
from .compat import (
np_version_under1p17 as _np_version_under1p17,
np_version_under1p18 as _np_version_under1p18,
is_numpy_dev as _is_numpy_dev,
)

try:
from pandas._libs import hashtable as _hashtable, lib as _lib, tslib as _tslib
from ._libs import hashtable as _hashtable, lib as _lib, tslib as _tslib
except ImportError as e: # pragma: no cover
# hack but overkill to use re
module = str(e).replace("cannot import name ", "")
Expand All @@ -36,7 +36,7 @@
"'python setup.py build_ext --force' to build the C extensions first."
) from e

from pandas._config import (
from ._config import (
get_option,
set_option,
reset_option,
Expand All @@ -48,7 +48,7 @@
# let init-time option registration happen
import pandas.core.config_init

from pandas.core.api import (
from .core.api import (
# dtype
Int8Dtype,
Int16Dtype,
Expand Down Expand Up @@ -115,14 +115,14 @@
DataFrame,
)

from pandas.core.arrays.sparse import SparseDtype
from .core.arrays.sparse import SparseDtype

from pandas.tseries.api import infer_freq
from pandas.tseries import offsets
from .tseries.api import infer_freq
from .tseries import offsets

from pandas.core.computation.api import eval
from .core.computation.api import eval

from pandas.core.reshape.api import (
from .core.reshape.api import (
concat,
lreshape,
melt,
Expand All @@ -139,9 +139,9 @@
)

import pandas.api
from pandas.util._print_versions import show_versions
from .util._print_versions import show_versions

from pandas.io.api import (
from .io.api import (
# excel
ExcelFile,
ExcelWriter,
Expand Down Expand Up @@ -173,14 +173,14 @@
read_spss,
)

from pandas.io.json import _json_normalize as json_normalize
from .io.json import _json_normalize as json_normalize

from pandas.util._tester import test
from .util._tester import test
import pandas.testing
import pandas.arrays

# use the closest tagged version if possible
from pandas._version import get_versions
from ._version import get_versions

v = get_versions()
__version__ = v.get("closest-tag", v["version"])
Expand Down Expand Up @@ -237,7 +237,7 @@ def __getattr__(name):
FutureWarning,
stacklevel=2,
)
from pandas.core.arrays.sparse import SparseArray as _SparseArray
from .core.arrays.sparse import SparseArray as _SparseArray

return _SparseArray

Expand Down
8 changes: 4 additions & 4 deletions pandas/_config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
"option_context",
"options",
]
from pandas._config import config
from pandas._config import dates # noqa:F401
from pandas._config.config import (
from . import config
from . import dates # noqa:F401
from .config import (
describe_option,
get_option,
option_context,
options,
reset_option,
set_option,
)
from pandas._config.display import detect_console_encoding
from .display import detect_console_encoding
2 changes: 1 addition & 1 deletion pandas/_config/dates.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
config for datetime formatting
"""
from pandas._config import config as cf
from . import config as cf

pc_date_dayfirst_doc = """
: boolean
Expand Down
2 changes: 1 addition & 1 deletion pandas/_config/display.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import sys
from typing import Optional

from pandas._config import config as cf
from . import config as cf

# -----------------------------------------------------------------------------
# Global formatting options
Expand Down
2 changes: 1 addition & 1 deletion pandas/_config/localization.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import re
import subprocess

from pandas._config.config import options
from .config import options


@contextmanager
Expand Down
4 changes: 2 additions & 2 deletions pandas/_libs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
]


from pandas._libs.interval import Interval
from pandas._libs.tslibs import (
from .interval import Interval
from .tslibs import (
NaT,
NaTType,
OutOfBoundsDatetime,
Expand Down
24 changes: 12 additions & 12 deletions pandas/_libs/tslibs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,38 +27,38 @@
"tz_compare",
]

from pandas._libs.tslibs import dtypes
from pandas._libs.tslibs.conversion import (
from . import dtypes
from .conversion import (
OutOfBoundsTimedelta,
localize_pydatetime,
)
from pandas._libs.tslibs.dtypes import Resolution
from pandas._libs.tslibs.nattype import (
from .dtypes import Resolution
from .nattype import (
NaT,
NaTType,
iNaT,
is_null_datetimelike,
nat_strings,
)
from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime
from pandas._libs.tslibs.offsets import (
from .np_datetime import OutOfBoundsDatetime
from .offsets import (
BaseOffset,
Tick,
to_offset,
)
from pandas._libs.tslibs.period import (
from .period import (
IncompatibleFrequency,
Period,
)
from pandas._libs.tslibs.timedeltas import (
from .timedeltas import (
Timedelta,
delta_to_nanoseconds,
ints_to_pytimedelta,
)
from pandas._libs.tslibs.timestamps import Timestamp
from pandas._libs.tslibs.timezones import tz_compare
from pandas._libs.tslibs.tzconversion import tz_convert_from_utc_single
from pandas._libs.tslibs.vectorized import (
from .timestamps import Timestamp
from .timezones import tz_compare
from .tzconversion import tz_convert_from_utc_single
from .vectorized import (
dt64arr_to_periodarr,
get_resolution,
ints_to_pydatetime,
Expand Down
25 changes: 13 additions & 12 deletions pandas/_testing/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,14 @@
Series,
bdate_range,
)
from pandas._testing._io import ( # noqa:F401
from pandas.core.arrays import (
DatetimeArray,
PeriodArray,
TimedeltaArray,
period_array,
)

from ._io import ( # noqa:F401
close,
network,
round_trip_localpath,
Expand All @@ -58,14 +65,14 @@
with_connectivity_check,
write_to_compressed,
)
from pandas._testing._random import ( # noqa:F401
from ._random import ( # noqa:F401
randbool,
rands,
rands_array,
randu_array,
)
from pandas._testing._warnings import assert_produces_warning # noqa:F401
from pandas._testing.asserters import ( # noqa:F401
from ._warnings import assert_produces_warning # noqa:F401
from .asserters import ( # noqa:F401
assert_almost_equal,
assert_attr_equal,
assert_categorical_equal,
Expand All @@ -88,8 +95,8 @@
assert_timedelta_array_equal,
raise_assert_detail,
)
from pandas._testing.compat import get_dtype # noqa:F401
from pandas._testing.contexts import ( # noqa:F401
from .compat import get_dtype # noqa:F401
from .contexts import ( # noqa:F401
RNGContext,
decompress_file,
ensure_clean,
Expand All @@ -99,12 +106,6 @@
use_numexpr,
with_csv_dialect,
)
from pandas.core.arrays import (
DatetimeArray,
PeriodArray,
TimedeltaArray,
period_array,
)

if TYPE_CHECKING:
from pandas import (
Expand Down
5 changes: 3 additions & 2 deletions pandas/_testing/_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@
)

import pandas as pd
from pandas._testing._random import rands
from pandas._testing.contexts import ensure_clean

from pandas.io.common import urlopen

from ._random import rands
from .contexts import ensure_clean

_RAISE_NETWORK_ERROR_DEFAULT = False

lzma = import_lzma()
Expand Down
29 changes: 13 additions & 16 deletions pandas/_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,32 +38,29 @@
if TYPE_CHECKING:
from typing import final

from pandas._libs import (
from . import Interval
from ._libs import (
Period,
Timedelta,
Timestamp,
)

from pandas.core.dtypes.dtypes import ExtensionDtype

from pandas import Interval
from pandas.core.arrays.base import ExtensionArray # noqa: F401
from pandas.core.frame import DataFrame
from pandas.core.generic import NDFrame # noqa: F401
from pandas.core.groupby.generic import (
from .core.arrays.base import ExtensionArray # noqa: F401
from .core.dtypes.dtypes import ExtensionDtype
from .core.frame import DataFrame
from .core.generic import NDFrame # noqa: F401
from .core.groupby.generic import (
DataFrameGroupBy,
SeriesGroupBy,
)
from pandas.core.indexes.base import Index
from pandas.core.internals import (
from .core.indexes.base import Index
from .core.internals import (
ArrayManager,
BlockManager,
)
from pandas.core.resample import Resampler
from pandas.core.series import Series
from pandas.core.window.rolling import BaseWindow

from pandas.io.formats.format import EngFormatter
from .core.resample import Resampler
from .core.series import Series
from .core.window.rolling import BaseWindow
from .io.formats.format import EngFormatter
else:
# typing.final does not exist until py38
final = lambda x: x
Expand Down
2 changes: 1 addition & 1 deletion pandas/api/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
""" public toolkit API """
from pandas.api import ( # noqa
from . import ( # noqa
extensions,
indexers,
types,
Expand Down
3 changes: 2 additions & 1 deletion pandas/compat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
import warnings

from pandas._typing import F
from pandas.compat.numpy import (

from .numpy import (
is_numpy_dev,
np_array_datetime64_compat,
np_datetime64_compat,
Expand Down
18 changes: 9 additions & 9 deletions pandas/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,23 +45,23 @@

import pandas.util._test_decorators as td

from pandas.core.dtypes.dtypes import (
DatetimeTZDtype,
IntervalDtype,
)

import pandas as pd
from pandas import (
import pandas._testing as tm

from . import (
DataFrame,
Interval,
Period,
Series,
Timedelta,
Timestamp,
)
import pandas._testing as tm
from pandas.core import ops
from pandas.core.indexes.api import (
from .core import ops
from .core.dtypes.dtypes import (
DatetimeTZDtype,
IntervalDtype,
)
from .core.indexes.api import (
Index,
MultiIndex,
)
Expand Down
Loading