Skip to content

Commit 7214f85

Browse files
authored
TYP: move imports inside TYPE_CHECKING (#47968)
1 parent 8b5dfa2 commit 7214f85

28 files changed

+109
-45
lines changed

pandas/core/arrays/period.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@
7777

7878
import pandas.core.algorithms as algos
7979
from pandas.core.arrays import datetimelike as dtl
80-
from pandas.core.arrays.base import ExtensionArray
8180
import pandas.core.common as com
8281

8382
if TYPE_CHECKING:
@@ -91,6 +90,8 @@
9190
DatetimeArray,
9291
TimedeltaArray,
9392
)
93+
from pandas.core.arrays.base import ExtensionArray
94+
9495

9596
BaseOffsetT = TypeVar("BaseOffsetT", bound=BaseOffset)
9697

pandas/core/computation/engines.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,24 @@
44
from __future__ import annotations
55

66
import abc
7+
from typing import TYPE_CHECKING
78

89
from pandas.errors import NumExprClobberingError
910

1011
from pandas.core.computation.align import (
1112
align_terms,
1213
reconstruct_object,
1314
)
14-
from pandas.core.computation.expr import Expr
1515
from pandas.core.computation.ops import (
1616
MATHOPS,
1717
REDUCTIONS,
1818
)
1919

2020
import pandas.io.formats.printing as printing
2121

22+
if TYPE_CHECKING:
23+
from pandas.core.computation.expr import Expr
24+
2225
_ne_builtins = frozenset(MATHOPS + REDUCTIONS)
2326

2427

pandas/core/computation/eval.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from __future__ import annotations
55

66
import tokenize
7+
from typing import TYPE_CHECKING
78
import warnings
89

910
from pandas._libs.lib import no_default
@@ -15,12 +16,14 @@
1516
PARSERS,
1617
Expr,
1718
)
18-
from pandas.core.computation.ops import BinOp
1919
from pandas.core.computation.parsing import tokenize_string
2020
from pandas.core.computation.scope import ensure_scope
2121

2222
from pandas.io.formats.printing import pprint_thing
2323

24+
if TYPE_CHECKING:
25+
from pandas.core.computation.ops import BinOp
26+
2427

2528
def _check_engine(engine: str | None) -> str:
2629
"""

pandas/core/computation/pytables.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33

44
import ast
55
from functools import partial
6-
from typing import Any
6+
from typing import (
7+
TYPE_CHECKING,
8+
Any,
9+
)
710

811
import numpy as np
912

@@ -12,7 +15,6 @@
1215
Timestamp,
1316
)
1417
from pandas._typing import npt
15-
from pandas.compat.chainmap import DeepChainMap
1618
from pandas.errors import UndefinedVariableError
1719

1820
from pandas.core.dtypes.common import is_list_like
@@ -34,6 +36,9 @@
3436
pprint_thing_encoded,
3537
)
3638

39+
if TYPE_CHECKING:
40+
from pandas.compat.chainmap import DeepChainMap
41+
3742

3843
class PyTablesScope(_scope.Scope):
3944
__slots__ = ("queryables",)

pandas/core/groupby/categorical.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from __future__ import annotations
22

3+
from typing import TYPE_CHECKING
4+
35
import numpy as np
46

57
from pandas.core.algorithms import unique1d
@@ -8,7 +10,9 @@
810
CategoricalDtype,
911
recode_for_categories,
1012
)
11-
from pandas.core.indexes.api import CategoricalIndex
13+
14+
if TYPE_CHECKING:
15+
from pandas.core.indexes.api import CategoricalIndex
1216

1317

1418
def recode_for_groupby(

pandas/core/groupby/generic.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from functools import partial
1212
from textwrap import dedent
1313
from typing import (
14+
TYPE_CHECKING,
1415
Any,
1516
Callable,
1617
Hashable,
@@ -72,7 +73,6 @@
7273
import pandas.core.common as com
7374
from pandas.core.construction import create_series_with_explicit_dtype
7475
from pandas.core.frame import DataFrame
75-
from pandas.core.generic import NDFrame
7676
from pandas.core.groupby import base
7777
from pandas.core.groupby.groupby import (
7878
GroupBy,
@@ -93,6 +93,9 @@
9393

9494
from pandas.plotting import boxplot_frame_groupby
9595

96+
if TYPE_CHECKING:
97+
from pandas.core.generic import NDFrame
98+
9699
# TODO(typing) the return value on this callable should be any *scalar*.
97100
AggScalar = Union[str, Callable[..., Any]]
98101
# TODO: validate types on ScalarResult and move to _typing

pandas/core/groupby/ops.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import collections
1111
import functools
1212
from typing import (
13+
TYPE_CHECKING,
1314
Callable,
1415
Generic,
1516
Hashable,
@@ -77,7 +78,6 @@
7778
)
7879
from pandas.core.arrays.string_ import StringDtype
7980
from pandas.core.frame import DataFrame
80-
from pandas.core.generic import NDFrame
8181
from pandas.core.groupby import grouper
8282
from pandas.core.indexes.api import (
8383
CategoricalIndex,
@@ -95,6 +95,9 @@
9595
get_indexer_dict,
9696
)
9797

98+
if TYPE_CHECKING:
99+
from pandas.core.generic import NDFrame
100+
98101

99102
class WrappedCythonOp:
100103
"""

pandas/core/indexes/extension.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from __future__ import annotations
55

66
from typing import (
7+
TYPE_CHECKING,
78
Callable,
89
TypeVar,
910
)
@@ -21,10 +22,12 @@
2122

2223
from pandas.core.dtypes.generic import ABCDataFrame
2324

24-
from pandas.core.arrays import IntervalArray
25-
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
2625
from pandas.core.indexes.base import Index
2726

27+
if TYPE_CHECKING:
28+
from pandas.core.arrays import IntervalArray
29+
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
30+
2831
_T = TypeVar("_T", bound="NDArrayBackedExtensionIndex")
2932
_ExtensionIndexT = TypeVar("_ExtensionIndexT", bound="ExtensionIndex")
3033

pandas/core/interchange/dataframe.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
from collections import abc
44
from typing import TYPE_CHECKING
55

6-
import pandas as pd
76
from pandas.core.interchange.column import PandasColumn
87
from pandas.core.interchange.dataframe_protocol import DataFrame as DataFrameXchg
98

109
if TYPE_CHECKING:
10+
import pandas as pd
1111
from pandas import Index
1212

1313

pandas/core/internals/blocks.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@
9898
PeriodArray,
9999
TimedeltaArray,
100100
)
101-
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
102101
from pandas.core.arrays.sparse import SparseDtype
103102
from pandas.core.base import PandasObject
104103
import pandas.core.common as com
@@ -115,6 +114,7 @@
115114
Float64Index,
116115
Index,
117116
)
117+
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
118118

119119
# comparison is faster than is_object_dtype
120120
_dtype_obj = np.dtype("object")

pandas/core/resample.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@
6868
)
6969
from pandas.core.groupby.grouper import Grouper
7070
from pandas.core.groupby.ops import BinGrouper
71-
from pandas.core.indexes.api import Index
7271
from pandas.core.indexes.datetimes import (
7372
DatetimeIndex,
7473
date_range,
@@ -96,6 +95,7 @@
9695
if TYPE_CHECKING:
9796
from pandas import (
9897
DataFrame,
98+
Index,
9999
Series,
100100
)
101101

pandas/core/reshape/merge.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
MultiIndex,
7474
Series,
7575
)
76-
from pandas.core import groupby
7776
import pandas.core.algorithms as algos
7877
from pandas.core.arrays import ExtensionArray
7978
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
@@ -85,6 +84,7 @@
8584

8685
if TYPE_CHECKING:
8786
from pandas import DataFrame
87+
from pandas.core import groupby
8888
from pandas.core.arrays import DatetimeArray
8989

9090

pandas/core/reshape/reshape.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
Index,
3131
MultiIndex,
3232
)
33-
from pandas.core.indexes.frozen import FrozenList
3433
from pandas.core.series import Series
3534
from pandas.core.sorting import (
3635
compress_group_index,
@@ -42,6 +41,7 @@
4241

4342
if TYPE_CHECKING:
4443
from pandas.core.arrays import ExtensionArray
44+
from pandas.core.indexes.frozen import FrozenList
4545

4646

4747
class _Unstacker:

pandas/io/excel/_odswriter.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from collections import defaultdict
44
import datetime
55
from typing import (
6+
TYPE_CHECKING,
67
Any,
78
DefaultDict,
89
Tuple,
@@ -21,7 +22,9 @@
2122
combine_kwargs,
2223
validate_freeze_panes,
2324
)
24-
from pandas.io.formats.excel import ExcelCell
25+
26+
if TYPE_CHECKING:
27+
from pandas.io.formats.excel import ExcelCell
2528

2629

2730
class ODSWriter(ExcelWriter):

pandas/io/formats/info.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@
2121
WriteBuffer,
2222
)
2323

24-
from pandas.core.indexes.api import Index
25-
2624
from pandas.io.formats import format as fmt
2725
from pandas.io.formats.printing import pprint_thing
2826

2927
if TYPE_CHECKING:
30-
from pandas.core.frame import (
28+
from pandas import (
3129
DataFrame,
30+
Index,
3231
Series,
3332
)
3433

pandas/io/formats/latex.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
abstractmethod,
99
)
1010
from typing import (
11+
TYPE_CHECKING,
1112
Iterator,
1213
Sequence,
1314
)
@@ -16,7 +17,8 @@
1617

1718
from pandas.core.dtypes.generic import ABCMultiIndex
1819

19-
from pandas.io.formats.format import DataFrameFormatter
20+
if TYPE_CHECKING:
21+
from pandas.io.formats.format import DataFrameFormatter
2022

2123

2224
def _split_into_full_short_caption(

pandas/io/formats/string.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@
44
from __future__ import annotations
55

66
from shutil import get_terminal_size
7-
from typing import Iterable
7+
from typing import (
8+
TYPE_CHECKING,
9+
Iterable,
10+
)
811

912
import numpy as np
1013

11-
from pandas.io.formats.format import DataFrameFormatter
1214
from pandas.io.formats.printing import pprint_thing
1315

16+
if TYPE_CHECKING:
17+
from pandas.io.formats.format import DataFrameFormatter
18+
1419

1520
class StringFormatter:
1621
"""Formatter for string representation of a dataframe."""

pandas/io/formats/xml.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55

66
import codecs
77
import io
8-
from typing import Any
8+
from typing import (
9+
TYPE_CHECKING,
10+
Any,
11+
)
912

1013
from pandas._typing import (
1114
CompressionOptions,
@@ -20,7 +23,6 @@
2023
from pandas.core.dtypes.common import is_list_like
2124
from pandas.core.dtypes.missing import isna
2225

23-
from pandas.core.frame import DataFrame
2426
from pandas.core.shared_docs import _shared_docs
2527

2628
from pandas.io.common import get_handle
@@ -29,6 +31,9 @@
2931
preprocess_data,
3032
)
3133

34+
if TYPE_CHECKING:
35+
from pandas import DataFrame
36+
3237

3338
@doc(
3439
storage_options=_shared_docs["storage_options"],

pandas/io/html.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import numbers
1111
import re
1212
from typing import (
13+
TYPE_CHECKING,
1314
Iterable,
1415
Pattern,
1516
Sequence,
@@ -30,7 +31,6 @@
3031
from pandas.core.dtypes.common import is_list_like
3132

3233
from pandas.core.construction import create_series_with_explicit_dtype
33-
from pandas.core.frame import DataFrame
3434

3535
from pandas.io.common import (
3636
file_exists,
@@ -43,6 +43,9 @@
4343
from pandas.io.formats.printing import pprint_thing
4444
from pandas.io.parsers import TextParser
4545

46+
if TYPE_CHECKING:
47+
from pandas import DataFrame
48+
4649
_IMPORTS = False
4750
_HAS_BS4 = False
4851
_HAS_LXML = False

0 commit comments

Comments
 (0)