Skip to content

STYLE start enabling TCH #51687

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 3 commits into from
Mar 2, 2023
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
6 changes: 2 additions & 4 deletions pandas/_config/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,8 @@
)
import warnings

from pandas._typing import (
F,
T,
)
from pandas._typing import F # noqa: TCH001
from pandas._typing import T # noqa: TCH001
from pandas.util._exceptions import find_stack_level


Expand Down
11 changes: 6 additions & 5 deletions pandas/_testing/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@
set_locale,
)

from pandas._typing import (
Dtype,
Frequency,
NpDtype,
)
from pandas.compat import pa_version_under7p0

from pandas.core.dtypes.common import (
Expand Down Expand Up @@ -118,6 +113,12 @@
from pandas.core.construction import extract_array

if TYPE_CHECKING:
from pandas._typing import (
Dtype,
Frequency,
NpDtype,
)

from pandas import (
PeriodIndex,
TimedeltaIndex,
Expand Down
9 changes: 5 additions & 4 deletions pandas/_testing/_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@
)
import zipfile

from pandas._typing import (
FilePath,
ReadPickleBuffer,
)
from pandas.compat import get_lzma_file
from pandas.compat._optional import import_optional_dependency

Expand All @@ -27,6 +23,11 @@
from pandas.io.common import urlopen

if TYPE_CHECKING:
from pandas._typing import (
FilePath,
ReadPickleBuffer,
)

from pandas import (
DataFrame,
Series,
Expand Down
7 changes: 5 additions & 2 deletions pandas/_testing/_random.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
from __future__ import annotations

import string
from typing import TYPE_CHECKING

import numpy as np

from pandas._typing import NpDtype

if TYPE_CHECKING:
from pandas._typing import NpDtype
RANDS_CHARS = np.array(list(string.ascii_letters + string.digits), dtype=(np.str_, 1))


Expand Down
7 changes: 6 additions & 1 deletion pandas/_testing/compat.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
"""
Helpers for sharing tests between DataFrame/Series
"""
from pandas._typing import DtypeObj
from __future__ import annotations

from typing import TYPE_CHECKING

from pandas import DataFrame

if TYPE_CHECKING:
from pandas._typing import DtypeObj


def get_dtype(obj) -> DtypeObj:
if isinstance(obj, DataFrame):
Expand Down
13 changes: 8 additions & 5 deletions pandas/_testing/contexts.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,26 @@
import tempfile
from typing import (
IO,
TYPE_CHECKING,
Any,
Generator,
)
import uuid

from pandas._typing import (
BaseBuffer,
CompressionOptions,
FilePath,
)
from pandas.compat import PYPY
from pandas.errors import ChainedAssignmentError

from pandas import set_option

from pandas.io.common import get_handle

if TYPE_CHECKING:
from pandas._typing import (
BaseBuffer,
CompressionOptions,
FilePath,
)


@contextmanager
def decompress_file(
Expand Down
5 changes: 4 additions & 1 deletion pandas/compat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
import os
import platform
import sys
from typing import TYPE_CHECKING

from pandas._typing import F
from pandas.compat._constants import (
IS64,
PY39,
Expand All @@ -33,6 +33,9 @@
pa_version_under11p0,
)

if TYPE_CHECKING:
from pandas._typing import F


def set_function_name(f: F, name: str, cls) -> F:
"""
Expand Down
5 changes: 4 additions & 1 deletion pandas/compat/_optional.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@

import importlib
import sys
import types
from typing import TYPE_CHECKING
import warnings

from pandas.util._exceptions import find_stack_level

from pandas.util.version import Version

if TYPE_CHECKING:
import types

# Update install.rst & setup.cfg when updating versions!

VERSIONS = {
Expand Down
13 changes: 8 additions & 5 deletions pandas/compat/numpy/function.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from __future__ import annotations

from typing import (
TYPE_CHECKING,
Any,
TypeVar,
cast,
Expand All @@ -30,18 +31,20 @@
is_bool,
is_integer,
)
from pandas._typing import (
Axis,
AxisInt,
)
from pandas.errors import UnsupportedFunctionCall
from pandas.util._validators import (
validate_args,
validate_args_and_kwargs,
validate_kwargs,
)

AxisNoneT = TypeVar("AxisNoneT", Axis, None)
if TYPE_CHECKING:
from pandas._typing import (
Axis,
AxisInt,
)

AxisNoneT = TypeVar("AxisNoneT", Axis, None)


class CompatValidator:
Expand Down
4 changes: 3 additions & 1 deletion pandas/core/_numba/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
Callable,
)

if TYPE_CHECKING:
from pandas._typing import Scalar

import numpy as np

from pandas._typing import Scalar
from pandas.compat._optional import import_optional_dependency


Expand Down
6 changes: 5 additions & 1 deletion pandas/core/_numba/kernels/shared.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
from __future__ import annotations

from typing import TYPE_CHECKING

import numba
import numpy as np

if TYPE_CHECKING:
import numpy as np


@numba.jit(
Expand Down
5 changes: 4 additions & 1 deletion pandas/core/computation/expressions.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
from __future__ import annotations

import operator
from typing import TYPE_CHECKING
import warnings

import numpy as np

from pandas._config import get_option

from pandas._typing import FuncType
from pandas.util._exceptions import find_stack_level

from pandas.core.computation.check import NUMEXPR_INSTALLED
Expand All @@ -23,6 +23,9 @@
if NUMEXPR_INSTALLED:
import numexpr as ne

if TYPE_CHECKING:
from pandas._typing import FuncType

_TEST_MODE: bool | None = None
_TEST_RESULT: list[bool] = []
USE_NUMEXPR = NUMEXPR_INSTALLED
Expand Down
9 changes: 7 additions & 2 deletions pandas/core/computation/pytables.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,17 @@

import ast
from functools import partial
from typing import Any
from typing import (
TYPE_CHECKING,
Any,
)

import numpy as np

from pandas._libs.tslibs import (
Timedelta,
Timestamp,
)
from pandas._typing import npt
from pandas.errors import UndefinedVariableError

from pandas.core.dtypes.common import is_list_like
Expand All @@ -33,6 +35,9 @@
pprint_thing_encoded,
)

if TYPE_CHECKING:
from pandas._typing import npt


class PyTablesScope(_scope.Scope):
__slots__ = ("queryables",)
Expand Down
9 changes: 5 additions & 4 deletions pandas/core/indexing.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@

from pandas._libs.indexing import NDFrameIndexerBase
from pandas._libs.lib import item_from_zerodim
from pandas._typing import (
Axis,
AxisInt,
)
from pandas.compat import PYPY
from pandas.errors import (
AbstractMethodError,
Expand Down Expand Up @@ -79,6 +75,11 @@
)

if TYPE_CHECKING:
from pandas._typing import (
Axis,
AxisInt,
)

from pandas import (
DataFrame,
Series,
Expand Down
5 changes: 3 additions & 2 deletions pandas/core/interchange/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@

import numpy as np

from pandas._typing import DtypeObj

import pandas as pd
from pandas.api.types import is_datetime64_dtype

if typing.TYPE_CHECKING:
from pandas._typing import DtypeObj


class ArrowCTypes:
"""
Expand Down
3 changes: 2 additions & 1 deletion pandas/core/sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@
import numpy as np

from pandas._libs import lib
from pandas._typing import AxisInt

from pandas.core.dtypes.generic import (
ABCDataFrame,
ABCSeries,
)

if TYPE_CHECKING:
from pandas._typing import AxisInt

from pandas.core.generic import NDFrame


Expand Down
38 changes: 38 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@ select = [
"TID",
# implicit string concatenation
"ISC",
# type-checking imports
"TCH",
]

ignore = [
Expand Down Expand Up @@ -282,6 +284,42 @@ exclude = [
[tool.ruff.per-file-ignores]
# relative imports allowed for asv_bench
"asv_bench/*" = ["TID"]
# TCH to be enabled gradually
"pandas/core/arrays/*" = ["TCH"]
"pandas/core/io/*" = ["TCH"]
"pandas/core/indexers/*" = ["TCH"]
"pandas/core/indexes/*" = ["TCH"]
"pandas/core/internals/*" = ["TCH"]
"pandas/core/groupby/*" = ["TCH"]
"pandas/core/methods/*" = ["TCH"]
"pandas/core/array_algos/*" = ["TCH"]
"pandas/core/dtypes/*" = ["TCH"]
"pandas/core/generic.py" = ["TCH"]
"pandas/core/frame.py" = ["TCH"]
"pandas/core/series.py" = ["TCH"]
"pandas/core/resample.py" = ["TCH"]
"pandas/core/nanops.py" = ["TCH"]
"pandas/core/apply.py" = ["TCH"]
"pandas/core/base.py" = ["TCH"]
"pandas/core/algorithms.py" = ["TCH"]
"pandas/core/ops/*" = ["TCH"]
"pandas/core/sorting.py" = ["TCH"]
"pandas/core/construction.py" = ["TCH"]
"pandas/core/common.py" = ["TCH"]
"pandas/core/missing.py" = ["TCH"]
"pandas/core/util/*" = ["TCH"]
"pandas/core/reshape/*" = ["TCH"]
"pandas/core/strings/*" = ["TCH"]
"pandas/core/tools/*" = ["TCH"]
"pandas/core/window/*" = ["TCH"]
"pandas/io/*" = ["TCH"]
"pandas/tseries/*" = ["TCH"]
"pandas/tests/*" = ["TCH"]
"pandas/plotting/*" = ["TCH"]
"pandas/util/*" = ["TCH"]
"pandas/_libs/*" = ["TCH"]
# Keep this one enabled
"pandas/_typing.py" = ["TCH"]

[tool.pylint.messages_control]
max-line-length = 88
Expand Down
Loading