From 3eef210ce3b851a6ba595f0fb09a502df47e95c2 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Tue, 27 Sep 2022 08:50:11 +0100 Subject: [PATCH 1/2] ENH: Add use_na_sentinal --- pandas-stubs/core/arrays/base.pyi | 5 ++++- pandas-stubs/core/arrays/sparse/array.pyi | 8 +++++++- pandas-stubs/core/indexes/range.pyi | 9 +++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/pandas-stubs/core/arrays/base.pyi b/pandas-stubs/core/arrays/base.pyi index 0d781377f..2ac8d2c0c 100644 --- a/pandas-stubs/core/arrays/base.pyi +++ b/pandas-stubs/core/arrays/base.pyi @@ -43,7 +43,10 @@ class ExtensionArray: def unique(self): ... def searchsorted(self, value, side: str = ..., sorter=...): ... def factorize( - self, na_sentinel: int = ... + self, + # Not actually positional-only, used to handle deprecations in 1.5.0 + *, + use_na_sentinel: bool = ..., ) -> tuple[np.ndarray, ABCExtensionArray]: ... def repeat(self, repeats, axis=...): ... def take( diff --git a/pandas-stubs/core/arrays/sparse/array.pyi b/pandas-stubs/core/arrays/sparse/array.pyi index 01c8daa8e..3aa4aedd3 100644 --- a/pandas-stubs/core/arrays/sparse/array.pyi +++ b/pandas-stubs/core/arrays/sparse/array.pyi @@ -42,7 +42,13 @@ class SparseArray(PandasObject, ExtensionArray, ExtensionOpsMixin): def fillna(self, value=..., method=..., limit=...): ... def shift(self, periods: int = ..., fill_value=...): ... def unique(self): ... - def factorize(self, na_sentinel: int = ...): ... + def factorize( + self, + na_sentinel: int = ..., + # Not actually positional-only, used to handle deprecations in 1.5.0 + *, + use_na_sentinel: bool = ..., + ): ... def value_counts(self, dropna: bool = ...): ... def __getitem__(self, key): ... def take(self, indices, allow_fill: bool = ..., fill_value=...): ... diff --git a/pandas-stubs/core/indexes/range.pyi b/pandas-stubs/core/indexes/range.pyi index fc88f0fe4..4539438bd 100644 --- a/pandas-stubs/core/indexes/range.pyi +++ b/pandas-stubs/core/indexes/range.pyi @@ -1,6 +1,8 @@ import numpy as np from pandas.core.indexes.numeric import Int64Index +from pandas._typing import npt + class RangeIndex(Int64Index): def __new__( cls, @@ -44,6 +46,13 @@ class RangeIndex(Int64Index): def min(self, axis=..., skipna: bool = ..., *args, **kwargs): ... def max(self, axis=..., skipna: bool = ..., *args, **kwargs): ... def argsort(self, *args, **kwargs): ... + def factorize( + self, + sort: bool = ..., + # Not actually positional-only, used to handle deprecations in 1.5.0 + *, + use_na_sentinel: bool = ..., + ) -> tuple[npt.NDArray[np.intp], RangeIndex]: ... def equals(self, other): ... def intersection(self, other, sort: bool = ...): ... def join( From 70cef8f0ce5c96318f34e24f32f0243fa9415017 Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Tue, 27 Sep 2022 16:59:38 +0100 Subject: [PATCH 2/2] ENH: Add return type --- pandas-stubs/core/arrays/sparse/array.pyi | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pandas-stubs/core/arrays/sparse/array.pyi b/pandas-stubs/core/arrays/sparse/array.pyi index 3aa4aedd3..c447b97a5 100644 --- a/pandas-stubs/core/arrays/sparse/array.pyi +++ b/pandas-stubs/core/arrays/sparse/array.pyi @@ -3,7 +3,7 @@ from pandas.core.arrays import ( ExtensionArray, ExtensionOpsMixin, ) -from pandas.core.base import PandasObject as PandasObject +from pandas.core.base import PandasObject class SparseArray(PandasObject, ExtensionArray, ExtensionOpsMixin): def __init__( @@ -42,13 +42,13 @@ class SparseArray(PandasObject, ExtensionArray, ExtensionOpsMixin): def fillna(self, value=..., method=..., limit=...): ... def shift(self, periods: int = ..., fill_value=...): ... def unique(self): ... - def factorize( + def factorize( # type: ignore[override] self, na_sentinel: int = ..., # Not actually positional-only, used to handle deprecations in 1.5.0 *, use_na_sentinel: bool = ..., - ): ... + ) -> tuple[np.ndarray, SparseArray]: ... def value_counts(self, dropna: bool = ...): ... def __getitem__(self, key): ... def take(self, indices, allow_fill: bool = ..., fill_value=...): ... @@ -68,5 +68,3 @@ class SparseArray(PandasObject, ExtensionArray, ExtensionOpsMixin): def T(self): ... def __array_ufunc__(self, ufunc, method, *inputs, **kwargs): ... def __abs__(self): ... - -def make_sparse(arr, kind: str = ..., fill_value=..., dtype=..., copy: bool = ...): ...