From a82f0fc196849f9985feb265deb7f409a63d6d53 Mon Sep 17 00:00:00 2001 From: junheng Date: Sat, 4 Mar 2023 13:01:13 -0500 Subject: [PATCH 1/5] added changes to array with pre-commit run --- pandas/core/arrays/_ranges.py | 6 ++++- pandas/core/arrays/arrow/dtype.py | 17 ++++++------- pandas/core/arrays/arrow/extension_types.py | 6 +++-- pandas/core/arrays/base.py | 26 +++++++++----------- pandas/core/arrays/boolean.py | 12 ++++----- pandas/core/arrays/categorical.py | 25 ++++++++++--------- pandas/core/arrays/datetimes.py | 15 ++++++------ pandas/core/arrays/numeric.py | 11 +++++---- pandas/core/arrays/numpy_.py | 18 ++++++++------ pandas/core/arrays/period.py | 10 +++----- pandas/core/arrays/sparse/array.py | 27 +++++++++++---------- pandas/core/arrays/sparse/dtype.py | 11 +++++---- pandas/core/arrays/sparse/scipy_sparse.py | 12 ++++----- pandas/core/arrays/string_.py | 12 ++++----- pandas/core/arrays/string_arrow.py | 21 ++++++++++++---- pandas/core/arrays/timedeltas.py | 15 ++++++------ pyproject.toml | 1 - 17 files changed, 131 insertions(+), 114 deletions(-) diff --git a/pandas/core/arrays/_ranges.py b/pandas/core/arrays/_ranges.py index c93fc94685358..f2582cd6f2e58 100644 --- a/pandas/core/arrays/_ranges.py +++ b/pandas/core/arrays/_ranges.py @@ -4,6 +4,8 @@ """ from __future__ import annotations +from typing import TYPE_CHECKING + import numpy as np from pandas._libs.lib import i8max @@ -14,7 +16,9 @@ Timestamp, iNaT, ) -from pandas._typing import npt + +if TYPE_CHECKING: + from pandas._typing import npt def generate_regular_range( diff --git a/pandas/core/arrays/arrow/dtype.py b/pandas/core/arrays/arrow/dtype.py index b6515c2875718..bb5c0aad99b33 100644 --- a/pandas/core/arrays/arrow/dtype.py +++ b/pandas/core/arrays/arrow/dtype.py @@ -8,6 +8,7 @@ ) from decimal import Decimal import re +from typing import TYPE_CHECKING import numpy as np @@ -15,11 +16,6 @@ Timedelta, Timestamp, ) -from pandas._typing import ( - TYPE_CHECKING, - DtypeObj, - type_t, -) from pandas.compat import pa_version_under7p0 from pandas.util._decorators import cache_readonly @@ -32,6 +28,11 @@ import pyarrow as pa if TYPE_CHECKING: + from pandas._typing import ( + DtypeObj, + type_t, + ) + from pandas.core.arrays.arrow import ArrowExtensionArray @@ -108,11 +109,7 @@ def type(self): return float elif pa.types.is_string(pa_type): return str - elif ( - pa.types.is_binary(pa_type) - or pa.types.is_fixed_size_binary(pa_type) - or pa.types.is_large_binary(pa_type) - ): + elif pa.types.is_binary(pa_type): return bytes elif pa.types.is_boolean(pa_type): return bool diff --git a/pandas/core/arrays/arrow/extension_types.py b/pandas/core/arrays/arrow/extension_types.py index 25f597af5e3cf..05b70afc2e24c 100644 --- a/pandas/core/arrays/arrow/extension_types.py +++ b/pandas/core/arrays/arrow/extension_types.py @@ -1,13 +1,15 @@ from __future__ import annotations import json +from typing import TYPE_CHECKING import pyarrow -from pandas._typing import IntervalClosedType - from pandas.core.arrays.interval import VALID_CLOSED +if TYPE_CHECKING: + from pandas._typing import IntervalClosedType + class ArrowPeriodType(pyarrow.ExtensionType): def __init__(self, freq) -> None: diff --git a/pandas/core/arrays/base.py b/pandas/core/arrays/base.py index 1a082a7579dc3..4adc09be2f09d 100644 --- a/pandas/core/arrays/base.py +++ b/pandas/core/arrays/base.py @@ -25,20 +25,6 @@ import numpy as np from pandas._libs import lib -from pandas._typing import ( - ArrayLike, - AstypeArg, - AxisInt, - Dtype, - FillnaOptions, - PositionalIndexer, - ScalarIndexer, - SequenceIndexer, - Shape, - SortKind, - TakeIndexer, - npt, -) from pandas.compat import set_function_name from pandas.compat.numpy import function as nv from pandas.errors import AbstractMethodError @@ -90,8 +76,20 @@ if TYPE_CHECKING: from pandas._typing import ( + ArrayLike, + AstypeArg, + AxisInt, + Dtype, + FillnaOptions, NumpySorter, NumpyValueArrayLike, + PositionalIndexer, + ScalarIndexer, + SequenceIndexer, + Shape, + SortKind, + TakeIndexer, + npt, ) _extension_array_shared_docs: dict[str, str] = {} diff --git a/pandas/core/arrays/boolean.py b/pandas/core/arrays/boolean.py index 2dba557eda169..54bd4220bc060 100644 --- a/pandas/core/arrays/boolean.py +++ b/pandas/core/arrays/boolean.py @@ -12,11 +12,6 @@ lib, missing as libmissing, ) -from pandas._typing import ( - Dtype, - DtypeObj, - type_t, -) from pandas.core.dtypes.common import ( is_list_like, @@ -35,7 +30,12 @@ if TYPE_CHECKING: import pyarrow - from pandas._typing import npt + from pandas._typing import ( + Dtype, + DtypeObj, + npt, + type_t, + ) @register_extension_dtype diff --git a/pandas/core/arrays/categorical.py b/pandas/core/arrays/categorical.py index dd48da9ab6c16..09861f0c3749e 100644 --- a/pandas/core/arrays/categorical.py +++ b/pandas/core/arrays/categorical.py @@ -25,18 +25,6 @@ lib, ) from pandas._libs.arrays import NDArrayBacked -from pandas._typing import ( - ArrayLike, - AstypeArg, - AxisInt, - Dtype, - NpDtype, - Ordered, - Shape, - SortKind, - npt, - type_t, -) from pandas.compat.numpy import function as nv from pandas.util._validators import validate_bool_kwarg @@ -109,6 +97,19 @@ from pandas.io.formats import console if TYPE_CHECKING: + from pandas._typing import ( + ArrayLike, + AstypeArg, + AxisInt, + Dtype, + NpDtype, + Ordered, + Shape, + SortKind, + npt, + type_t, + ) + from pandas import ( DataFrame, Index, diff --git a/pandas/core/arrays/datetimes.py b/pandas/core/arrays/datetimes.py index 1624870705b8f..2a014e3b1b49c 100644 --- a/pandas/core/arrays/datetimes.py +++ b/pandas/core/arrays/datetimes.py @@ -42,13 +42,6 @@ tzconversion, ) from pandas._libs.tslibs.dtypes import abbrev_to_npy_unit -from pandas._typing import ( - DateTimeErrorChoices, - IntervalClosedType, - TimeAmbiguous, - TimeNonexistent, - npt, -) from pandas.errors import PerformanceWarning from pandas.util._exceptions import find_stack_level from pandas.util._validators import validate_inclusive @@ -87,6 +80,14 @@ ) if TYPE_CHECKING: + from pandas._typing import ( + DateTimeErrorChoices, + IntervalClosedType, + TimeAmbiguous, + TimeNonexistent, + npt, + ) + from pandas import DataFrame from pandas.core.arrays import PeriodArray diff --git a/pandas/core/arrays/numeric.py b/pandas/core/arrays/numeric.py index 2d9a3ae63259d..d5fd759adc202 100644 --- a/pandas/core/arrays/numeric.py +++ b/pandas/core/arrays/numeric.py @@ -15,11 +15,6 @@ lib, missing as libmissing, ) -from pandas._typing import ( - Dtype, - DtypeObj, - npt, -) from pandas.errors import AbstractMethodError from pandas.util._decorators import cache_readonly @@ -40,6 +35,12 @@ if TYPE_CHECKING: import pyarrow + from pandas._typing import ( + Dtype, + DtypeObj, + npt, + ) + T = TypeVar("T", bound="NumericArray") diff --git a/pandas/core/arrays/numpy_.py b/pandas/core/arrays/numpy_.py index 216dbede39a6a..35182cb3a58de 100644 --- a/pandas/core/arrays/numpy_.py +++ b/pandas/core/arrays/numpy_.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING + import numpy as np from pandas._libs import lib @@ -7,13 +9,6 @@ get_unit_from_dtype, is_supported_unit, ) -from pandas._typing import ( - AxisInt, - Dtype, - NpDtype, - Scalar, - npt, -) from pandas.compat.numpy import function as nv from pandas.core.dtypes.astype import astype_array @@ -35,6 +30,15 @@ from pandas.core.construction import ensure_wrapped_if_datetimelike from pandas.core.strings.object_array import ObjectStringArrayMixin +if TYPE_CHECKING: + from pandas._typing import ( + AxisInt, + Dtype, + NpDtype, + Scalar, + npt, + ) + class PandasArray( OpsMixin, diff --git a/pandas/core/arrays/period.py b/pandas/core/arrays/period.py index f9404fbf57382..54190b0fdcaf7 100644 --- a/pandas/core/arrays/period.py +++ b/pandas/core/arrays/period.py @@ -45,12 +45,6 @@ get_period_field_arr, period_asfreq_arr, ) -from pandas._typing import ( - AnyArrayLike, - Dtype, - NpDtype, - npt, -) from pandas.util._decorators import ( cache_readonly, doc, @@ -81,8 +75,12 @@ if TYPE_CHECKING: from pandas._typing import ( + AnyArrayLike, + Dtype, + NpDtype, NumpySorter, NumpyValueArrayLike, + npt, ) from pandas.core.arrays import ( diff --git a/pandas/core/arrays/sparse/array.py b/pandas/core/arrays/sparse/array.py index fcebd17ace2d3..31f404c30c262 100644 --- a/pandas/core/arrays/sparse/array.py +++ b/pandas/core/arrays/sparse/array.py @@ -28,19 +28,6 @@ SparseIndex, ) from pandas._libs.tslibs import NaT -from pandas._typing import ( - ArrayLike, - AstypeArg, - Axis, - AxisInt, - Dtype, - NpDtype, - PositionalIndexer, - Scalar, - ScalarIndexer, - SequenceIndexer, - npt, -) from pandas.compat.numpy import function as nv from pandas.errors import PerformanceWarning from pandas.util._exceptions import find_stack_level @@ -120,6 +107,20 @@ class ellipsis(Enum): SparseIndexKind = Literal["integer", "block"] + from pandas._typing import ( + ArrayLike, + AstypeArg, + Axis, + AxisInt, + Dtype, + NpDtype, + PositionalIndexer, + Scalar, + ScalarIndexer, + SequenceIndexer, + npt, + ) + from pandas import Series else: diff --git a/pandas/core/arrays/sparse/dtype.py b/pandas/core/arrays/sparse/dtype.py index c7a44d3606fa6..dadd161ceeb38 100644 --- a/pandas/core/arrays/sparse/dtype.py +++ b/pandas/core/arrays/sparse/dtype.py @@ -10,11 +10,6 @@ import numpy as np -from pandas._typing import ( - Dtype, - DtypeObj, - type_t, -) from pandas.errors import PerformanceWarning from pandas.util._exceptions import find_stack_level @@ -36,6 +31,12 @@ ) if TYPE_CHECKING: + from pandas._typing import ( + Dtype, + DtypeObj, + type_t, + ) + from pandas.core.arrays.sparse.array import SparseArray diff --git a/pandas/core/arrays/sparse/scipy_sparse.py b/pandas/core/arrays/sparse/scipy_sparse.py index 723449dfcd4a3..1d190ad1919b3 100644 --- a/pandas/core/arrays/sparse/scipy_sparse.py +++ b/pandas/core/arrays/sparse/scipy_sparse.py @@ -10,13 +10,7 @@ Iterable, ) -import numpy as np - from pandas._libs import lib -from pandas._typing import ( - IndexLabel, - npt, -) from pandas.core.dtypes.missing import notna @@ -25,8 +19,14 @@ from pandas.core.series import Series if TYPE_CHECKING: + import numpy as np import scipy.sparse + from pandas._typing import ( + IndexLabel, + npt, + ) + def _check_is_partition(parts: Iterable, whole: Iterable): whole = set(whole) diff --git a/pandas/core/arrays/string_.py b/pandas/core/arrays/string_.py index 30b18bac7b73b..89f44de3386c7 100644 --- a/pandas/core/arrays/string_.py +++ b/pandas/core/arrays/string_.py @@ -14,13 +14,6 @@ missing as libmissing, ) from pandas._libs.arrays import NDArrayBacked -from pandas._typing import ( - AxisInt, - Dtype, - Scalar, - npt, - type_t, -) from pandas.compat import pa_version_under7p0 from pandas.compat.numpy import function as nv from pandas.util._decorators import doc @@ -58,8 +51,13 @@ import pyarrow from pandas._typing import ( + AxisInt, + Dtype, NumpySorter, NumpyValueArrayLike, + Scalar, + npt, + type_t, ) from pandas import Series diff --git a/pandas/core/arrays/string_arrow.py b/pandas/core/arrays/string_arrow.py index 4d2b39ec61fca..afec3a9340510 100644 --- a/pandas/core/arrays/string_arrow.py +++ b/pandas/core/arrays/string_arrow.py @@ -2,6 +2,7 @@ import re from typing import ( + TYPE_CHECKING, Callable, Union, ) @@ -12,11 +13,12 @@ lib, missing as libmissing, ) -from pandas._typing import ( - Dtype, - Scalar, - npt, -) + +# from pandas._typing import ( +# Dtype, +# Scalar, +# npt, +# ) from pandas.compat import pa_version_under7p0 from pandas.core.dtypes.common import ( @@ -46,6 +48,15 @@ from pandas.core.arrays.arrow._arrow_utils import fallback_performancewarning + +if TYPE_CHECKING: + from pandas._typing import ( + Dtype, + Scalar, + npt, + ) + + ArrowStringScalarOrNAT = Union[str, libmissing.NAType] diff --git a/pandas/core/arrays/timedeltas.py b/pandas/core/arrays/timedeltas.py index d38145295a4db..9c63dc92ca28b 100644 --- a/pandas/core/arrays/timedeltas.py +++ b/pandas/core/arrays/timedeltas.py @@ -39,13 +39,6 @@ parse_timedelta_unit, truediv_object_array, ) -from pandas._typing import ( - AxisInt, - DateTimeErrorChoices, - DtypeObj, - NpDtype, - npt, -) from pandas.compat.numpy import function as nv from pandas.util._validators import validate_endpoints @@ -72,6 +65,14 @@ from pandas.core.ops.common import unpack_zerodim_and_defer if TYPE_CHECKING: + from pandas._typing import ( + AxisInt, + DateTimeErrorChoices, + DtypeObj, + NpDtype, + npt, + ) + from pandas import DataFrame diff --git a/pyproject.toml b/pyproject.toml index edcf6384c432b..3c4de03fb6fcb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -291,7 +291,6 @@ exclude = [ # relative imports allowed for asv_bench "asv_bench/*" = ["TID"] # TCH to be enabled gradually -"pandas/core/arrays/*" = ["TCH"] "pandas/core/io/*" = ["TCH"] "pandas/core/array_algos/*" = ["TCH"] "pandas/core/dtypes/*" = ["TCH"] From eeed2691ff879569a61279906724c554665fb9ce Mon Sep 17 00:00:00 2001 From: Clark-W Date: Tue, 7 Mar 2023 12:53:32 -0500 Subject: [PATCH 2/5] updated dtype.py --- pandas/core/arrays/arrow/dtype.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pandas/core/arrays/arrow/dtype.py b/pandas/core/arrays/arrow/dtype.py index bb5c0aad99b33..50bb287e54365 100644 --- a/pandas/core/arrays/arrow/dtype.py +++ b/pandas/core/arrays/arrow/dtype.py @@ -109,7 +109,11 @@ def type(self): return float elif pa.types.is_string(pa_type): return str - elif pa.types.is_binary(pa_type): + elif ( + pa.types.is_binary(pa_type) + or pa.types.is_fixed_size_binary(pa_type) + or pa.types.is_large_binary(pa_type) + ): return bytes elif pa.types.is_boolean(pa_type): return bool From 7d023eee815da402aa2c74357813f1c28c9cff07 Mon Sep 17 00:00:00 2001 From: Clark-W Date: Wed, 8 Mar 2023 12:20:24 -0500 Subject: [PATCH 3/5] Updated string_arrow.py to remove added comments thanks for the feedback, really appreciate it! --- pandas/core/arrays/string_arrow.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pandas/core/arrays/string_arrow.py b/pandas/core/arrays/string_arrow.py index afec3a9340510..c003d2948a49d 100644 --- a/pandas/core/arrays/string_arrow.py +++ b/pandas/core/arrays/string_arrow.py @@ -13,12 +13,11 @@ lib, missing as libmissing, ) - -# from pandas._typing import ( -# Dtype, -# Scalar, -# npt, -# ) +from pandas._typing import ( + Dtype, + Scalar, + npt, +) from pandas.compat import pa_version_under7p0 from pandas.core.dtypes.common import ( From de863d2ef19bff12f103e0191b1c35954cd330de Mon Sep 17 00:00:00 2001 From: Clark-W Date: Wed, 8 Mar 2023 12:42:13 -0500 Subject: [PATCH 4/5] removed the comments they were in typechecking --- pandas/core/arrays/string_arrow.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pandas/core/arrays/string_arrow.py b/pandas/core/arrays/string_arrow.py index c003d2948a49d..ea7670a54cc20 100644 --- a/pandas/core/arrays/string_arrow.py +++ b/pandas/core/arrays/string_arrow.py @@ -13,11 +13,7 @@ lib, missing as libmissing, ) -from pandas._typing import ( - Dtype, - Scalar, - npt, -) + from pandas.compat import pa_version_under7p0 from pandas.core.dtypes.common import ( From 1d552987f41bfe33bb0ad6b65b3041f06ff4cb6a Mon Sep 17 00:00:00 2001 From: Junheng Date: Fri, 10 Mar 2023 16:13:40 -0500 Subject: [PATCH 5/5] run pre-commit --- pandas/core/arrays/string_arrow.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pandas/core/arrays/string_arrow.py b/pandas/core/arrays/string_arrow.py index fe45da139fb7d..d5c1f98e63f14 100644 --- a/pandas/core/arrays/string_arrow.py +++ b/pandas/core/arrays/string_arrow.py @@ -14,7 +14,6 @@ lib, missing as libmissing, ) - from pandas.compat import pa_version_under7p0 from pandas.util._exceptions import find_stack_level