From c1db09c61a0004e9f270d09a0628890cd89b3272 Mon Sep 17 00:00:00 2001 From: Ekaterina Kuzkina Date: Mon, 7 Mar 2022 22:10:47 +0000 Subject: [PATCH 1/2] TYP: annotation of __init__ return type (PEP 484) --- pandas/core/arrays/_arrow_utils.py | 4 ++-- pandas/core/arrays/_mixins.py | 2 +- pandas/core/arrays/boolean.py | 2 +- pandas/core/arrays/categorical.py | 4 ++-- pandas/core/arrays/datetimelike.py | 2 +- pandas/core/arrays/datetimes.py | 2 +- pandas/core/arrays/masked.py | 2 +- pandas/core/arrays/numeric.py | 2 +- pandas/core/arrays/numpy_.py | 2 +- pandas/core/arrays/period.py | 2 +- pandas/core/arrays/sparse/accessor.py | 2 +- pandas/core/arrays/sparse/array.py | 2 +- pandas/core/arrays/sparse/dtype.py | 2 +- pandas/core/arrays/string_.py | 4 ++-- pandas/core/arrays/string_arrow.py | 2 +- pandas/core/arrays/timedeltas.py | 2 +- 16 files changed, 19 insertions(+), 19 deletions(-) diff --git a/pandas/core/arrays/_arrow_utils.py b/pandas/core/arrays/_arrow_utils.py index 112772bc9e842..dae8e2c394abc 100644 --- a/pandas/core/arrays/_arrow_utils.py +++ b/pandas/core/arrays/_arrow_utils.py @@ -48,7 +48,7 @@ def pyarrow_array_to_numpy_and_mask(arr, dtype: np.dtype): class ArrowPeriodType(pyarrow.ExtensionType): - def __init__(self, freq): + def __init__(self, freq) -> None: # attributes need to be set first before calling # super init (as that calls serialize) self._freq = freq @@ -88,7 +88,7 @@ def to_pandas_dtype(self): class ArrowIntervalType(pyarrow.ExtensionType): - def __init__(self, subtype, closed): + def __init__(self, subtype, closed) -> None: # attributes need to be set first before calling # super init (as that calls serialize) assert closed in VALID_CLOSED diff --git a/pandas/core/arrays/_mixins.py b/pandas/core/arrays/_mixins.py index 3fe2d56a2ccb2..d86c60d78195b 100644 --- a/pandas/core/arrays/_mixins.py +++ b/pandas/core/arrays/_mixins.py @@ -532,7 +532,7 @@ class ArrowExtensionArray(ExtensionArray): _data: pa.ChunkedArray - def __init__(self, values: pa.ChunkedArray): + def __init__(self, values: pa.ChunkedArray) -> None: self._data = values def __arrow_array__(self, type=None): diff --git a/pandas/core/arrays/boolean.py b/pandas/core/arrays/boolean.py index 10469f2aef9ea..89dbe272e0a70 100644 --- a/pandas/core/arrays/boolean.py +++ b/pandas/core/arrays/boolean.py @@ -297,7 +297,7 @@ class BooleanArray(BaseMaskedArray): _TRUE_VALUES = {"True", "TRUE", "true", "1", "1.0"} _FALSE_VALUES = {"False", "FALSE", "false", "0", "0.0"} - def __init__(self, values: np.ndarray, mask: np.ndarray, copy: bool = False): + def __init__(self, values: np.ndarray, mask: np.ndarray, copy: bool = False) -> None: if not (isinstance(values, np.ndarray) and values.dtype == np.bool_): raise TypeError( "values should be boolean numpy array. Use " diff --git a/pandas/core/arrays/categorical.py b/pandas/core/arrays/categorical.py index 016a19e474066..9d649c533619e 100644 --- a/pandas/core/arrays/categorical.py +++ b/pandas/core/arrays/categorical.py @@ -367,7 +367,7 @@ def __init__( dtype: Dtype | None = None, fastpath: bool = False, copy: bool = True, - ): + ) -> None: dtype = CategoricalDtype._from_values_or_dtype( values, categories, ordered, dtype @@ -2704,7 +2704,7 @@ class CategoricalAccessor(PandasDelegate, PandasObject, NoNewAttributesMixin): Categories (3, object): ['a', 'b', 'c'] """ - def __init__(self, data): + def __init__(self, data) -> None: self._validate(data) self._parent = data.values self._index = data.index diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index dc079c3431ba3..93d32217ef322 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -169,7 +169,7 @@ class DatetimeLikeArrayMixin(OpsMixin, NDArrayBackedExtensionArray): def _can_hold_na(self) -> bool: return True - def __init__(self, data, dtype: Dtype | None = None, freq=None, copy=False): + def __init__(self, data, dtype: Dtype | None = None, freq=None, copy=False) -> None: raise AbstractMethodError(self) @property diff --git a/pandas/core/arrays/datetimes.py b/pandas/core/arrays/datetimes.py index 01347401c67c5..7a6be695457b7 100644 --- a/pandas/core/arrays/datetimes.py +++ b/pandas/core/arrays/datetimes.py @@ -254,7 +254,7 @@ class DatetimeArray(dtl.TimelikeOps, dtl.DatelikeOps): _dtype: np.dtype | DatetimeTZDtype _freq = None - def __init__(self, values, dtype=DT64NS_DTYPE, freq=None, copy: bool = False): + def __init__(self, values, dtype=DT64NS_DTYPE, freq=None, copy: bool = False) -> None: values = extract_array(values, extract_numpy=True) if isinstance(values, IntegerArray): values = values.to_numpy("int64", na_value=iNaT) diff --git a/pandas/core/arrays/masked.py b/pandas/core/arrays/masked.py index f2cf74fa41ba0..95363e598a06c 100644 --- a/pandas/core/arrays/masked.py +++ b/pandas/core/arrays/masked.py @@ -107,7 +107,7 @@ class BaseMaskedArray(OpsMixin, ExtensionArray): def __init__( self, values: np.ndarray, mask: npt.NDArray[np.bool_], copy: bool = False - ): + ) -> None: # values is supposed to already be validated in the subclass if not (isinstance(mask, np.ndarray) and mask.dtype == np.bool_): raise TypeError( diff --git a/pandas/core/arrays/numeric.py b/pandas/core/arrays/numeric.py index 3d957a2a1f34b..98d43db9904c8 100644 --- a/pandas/core/arrays/numeric.py +++ b/pandas/core/arrays/numeric.py @@ -222,7 +222,7 @@ class NumericArray(BaseMaskedArray): def __init__( self, values: np.ndarray, mask: npt.NDArray[np.bool_], copy: bool = False - ): + ) -> None: checker = self._dtype_cls._checker if not (isinstance(values, np.ndarray) and checker(values.dtype)): descr = ( diff --git a/pandas/core/arrays/numpy_.py b/pandas/core/arrays/numpy_.py index bf41457ad6109..3d6e721ec273b 100644 --- a/pandas/core/arrays/numpy_.py +++ b/pandas/core/arrays/numpy_.py @@ -66,7 +66,7 @@ class PandasArray( # ------------------------------------------------------------------------ # Constructors - def __init__(self, values: np.ndarray | PandasArray, copy: bool = False): + def __init__(self, values: np.ndarray | PandasArray, copy: bool = False) -> None: if isinstance(values, type(self)): values = values._ndarray if not isinstance(values, np.ndarray): diff --git a/pandas/core/arrays/period.py b/pandas/core/arrays/period.py index c0d913794c5f9..762f681f97e6d 100644 --- a/pandas/core/arrays/period.py +++ b/pandas/core/arrays/period.py @@ -201,7 +201,7 @@ class PeriodArray(dtl.DatelikeOps): def __init__( self, values, dtype: Dtype | None = None, freq=None, copy: bool = False - ): + ) -> None: freq = validate_dtype_freq(dtype, freq) if freq is not None: diff --git a/pandas/core/arrays/sparse/accessor.py b/pandas/core/arrays/sparse/accessor.py index 015ca8842ec78..41af7d4ccd506 100644 --- a/pandas/core/arrays/sparse/accessor.py +++ b/pandas/core/arrays/sparse/accessor.py @@ -17,7 +17,7 @@ class BaseAccessor: _validation_msg = "Can only use the '.sparse' accessor with Sparse data." - def __init__(self, data=None): + def __init__(self, data=None) -> None: self._parent = data self._validate(data) diff --git a/pandas/core/arrays/sparse/array.py b/pandas/core/arrays/sparse/array.py index fe49a003cd863..25c4a15127200 100644 --- a/pandas/core/arrays/sparse/array.py +++ b/pandas/core/arrays/sparse/array.py @@ -373,7 +373,7 @@ def __init__( kind: SparseIndexKind = "integer", dtype: Dtype | None = None, copy: bool = False, - ): + ) -> None: if fill_value is None and isinstance(dtype, SparseDtype): fill_value = dtype.fill_value diff --git a/pandas/core/arrays/sparse/dtype.py b/pandas/core/arrays/sparse/dtype.py index 89c6f4da98f30..8c1644eda5234 100644 --- a/pandas/core/arrays/sparse/dtype.py +++ b/pandas/core/arrays/sparse/dtype.py @@ -81,7 +81,7 @@ class SparseDtype(ExtensionDtype): # hash(nan) is (sometimes?) 0. _metadata = ("_dtype", "_fill_value", "_is_na_fill_value") - def __init__(self, dtype: Dtype = np.float64, fill_value: Any = None): + def __init__(self, dtype: Dtype = np.float64, fill_value: Any = None) -> None: if isinstance(dtype, type(self)): if fill_value is None: diff --git a/pandas/core/arrays/string_.py b/pandas/core/arrays/string_.py index fce1942433cf7..b5432f0d1346c 100644 --- a/pandas/core/arrays/string_.py +++ b/pandas/core/arrays/string_.py @@ -97,7 +97,7 @@ class StringDtype(ExtensionDtype): na_value = libmissing.NA _metadata = ("storage",) - def __init__(self, storage=None): + def __init__(self, storage=None) -> None: if storage is None: storage = get_option("mode.string_storage") if storage not in {"python", "pyarrow"}: @@ -317,7 +317,7 @@ class StringArray(BaseStringArray, PandasArray): # undo the PandasArray hack _typ = "extension" - def __init__(self, values, copy=False): + def __init__(self, values, copy=False) -> None: values = extract_array(values) super().__init__(values, copy=copy) diff --git a/pandas/core/arrays/string_arrow.py b/pandas/core/arrays/string_arrow.py index 63fdf930f9ee6..e39ebd3afd2ff 100644 --- a/pandas/core/arrays/string_arrow.py +++ b/pandas/core/arrays/string_arrow.py @@ -141,7 +141,7 @@ class ArrowStringArray( Length: 4, dtype: string """ - def __init__(self, values): + def __init__(self, values) -> None: self._dtype = StringDtype(storage="pyarrow") if isinstance(values, pa.Array): self._data = pa.chunked_array([values]) diff --git a/pandas/core/arrays/timedeltas.py b/pandas/core/arrays/timedeltas.py index 255b6e732ed9a..afc20fcc54376 100644 --- a/pandas/core/arrays/timedeltas.py +++ b/pandas/core/arrays/timedeltas.py @@ -182,7 +182,7 @@ def dtype(self) -> np.dtype: # type: ignore[override] def __init__( self, values, dtype=TD64NS_DTYPE, freq=lib.no_default, copy: bool = False - ): + ) -> None: values = extract_array(values, extract_numpy=True) if isinstance(values, IntegerArray): values = values.to_numpy("int64", na_value=tslibs.iNaT) From a1ed5246e2fa802ffe43c227bacc4abb201ae9c0 Mon Sep 17 00:00:00 2001 From: Ekaterina Kuzkina Date: Mon, 7 Mar 2022 22:27:08 +0000 Subject: [PATCH 2/2] Fix PEP8 --- pandas/core/arrays/boolean.py | 4 +++- pandas/core/arrays/datetimes.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pandas/core/arrays/boolean.py b/pandas/core/arrays/boolean.py index 89dbe272e0a70..5294b4061ad44 100644 --- a/pandas/core/arrays/boolean.py +++ b/pandas/core/arrays/boolean.py @@ -297,7 +297,9 @@ class BooleanArray(BaseMaskedArray): _TRUE_VALUES = {"True", "TRUE", "true", "1", "1.0"} _FALSE_VALUES = {"False", "FALSE", "false", "0", "0.0"} - def __init__(self, values: np.ndarray, mask: np.ndarray, copy: bool = False) -> None: + def __init__( + self, values: np.ndarray, mask: np.ndarray, copy: bool = False + ) -> None: if not (isinstance(values, np.ndarray) and values.dtype == np.bool_): raise TypeError( "values should be boolean numpy array. Use " diff --git a/pandas/core/arrays/datetimes.py b/pandas/core/arrays/datetimes.py index 7a6be695457b7..87be8c4cf34ec 100644 --- a/pandas/core/arrays/datetimes.py +++ b/pandas/core/arrays/datetimes.py @@ -254,7 +254,9 @@ class DatetimeArray(dtl.TimelikeOps, dtl.DatelikeOps): _dtype: np.dtype | DatetimeTZDtype _freq = None - def __init__(self, values, dtype=DT64NS_DTYPE, freq=None, copy: bool = False) -> None: + def __init__( + self, values, dtype=DT64NS_DTYPE, freq=None, copy: bool = False + ) -> None: values = extract_array(values, extract_numpy=True) if isinstance(values, IntegerArray): values = values.to_numpy("int64", na_value=iNaT)