Skip to content
Open
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
38 changes: 38 additions & 0 deletions pandas-stubs/_libs/arrays.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
from collections.abc import Sequence
from typing import Any

import numpy as np
from typing_extensions import Self

from pandas._typing import (
AnyArrayLikeInt,
AxisInt,
DtypeObj,
Shape,
)

class NDArrayBacked:
_dtype: DtypeObj
_ndarray: np.ndarray
def __setstate__(self, state: Any) -> None: ...
def __len__(self) -> int: ...
@property
def shape(self) -> Shape: ...
@property
def ndim(self) -> int: ...
@property
def size(self) -> int: ...
@property
def nbytes(self) -> int: ...
def copy(self, order=...) -> Self: ...
def delete(self, loc, axis=...) -> Self: ...
def swapaxes(self, axis1, axis2) -> Self: ...
def repeat(
self,
repeats: int | Sequence[int] | AnyArrayLikeInt,
axis: AxisInt | None = None,
) -> Self: ...
def reshape(self, *args: Any, **kwargs: Any) -> Self: ...
def ravel(self, order=...) -> Self: ...
@property
def T(self) -> Self: ...
39 changes: 29 additions & 10 deletions pandas-stubs/arrays/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,12 +1,31 @@
from pandas.core.arrays import (
BooleanArray as BooleanArray,
Categorical as Categorical,
DatetimeArray as DatetimeArray,
IntegerArray as IntegerArray,
IntervalArray as IntervalArray,
PandasArray as PandasArray,
PeriodArray as PeriodArray,
SparseArray as SparseArray,
StringArray as StringArray,
TimedeltaArray as TimedeltaArray,
ArrowExtensionArray,
ArrowStringArray,
BooleanArray,
Categorical,
DatetimeArray,
FloatingArray,
IntegerArray,
IntervalArray,
NumpyExtensionArray,
PeriodArray,
SparseArray,
StringArray,
TimedeltaArray,
)

__all__ = [
"ArrowExtensionArray",
"ArrowStringArray",
"BooleanArray",
"Categorical",
"DatetimeArray",
"FloatingArray",
"IntegerArray",
"IntervalArray",
"NumpyExtensionArray",
"PeriodArray",
"SparseArray",
"StringArray",
"TimedeltaArray",
]
54 changes: 41 additions & 13 deletions pandas-stubs/core/arrays/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,15 +1,43 @@
from pandas.core.arrays.arrow import ArrowExtensionArray
from pandas.core.arrays.base import (
ExtensionArray as ExtensionArray,
ExtensionOpsMixin as ExtensionOpsMixin,
ExtensionScalarOpsMixin as ExtensionScalarOpsMixin,
ExtensionArray,
ExtensionOpsMixin,
ExtensionScalarOpsMixin,
)
from pandas.core.arrays.boolean import BooleanArray as BooleanArray
from pandas.core.arrays.categorical import Categorical as Categorical
from pandas.core.arrays.datetimes import DatetimeArray as DatetimeArray
from pandas.core.arrays.integer import IntegerArray as IntegerArray
from pandas.core.arrays.interval import IntervalArray as IntervalArray
from pandas.core.arrays.numpy_ import PandasArray as PandasArray
from pandas.core.arrays.period import PeriodArray as PeriodArray
from pandas.core.arrays.sparse import SparseArray as SparseArray
from pandas.core.arrays.string_ import StringArray as StringArray
from pandas.core.arrays.timedeltas import TimedeltaArray as TimedeltaArray
from pandas.core.arrays.boolean import BooleanArray
from pandas.core.arrays.categorical import Categorical
from pandas.core.arrays.datetimes import DatetimeArray
from pandas.core.arrays.floating import FloatingArray
from pandas.core.arrays.integer import IntegerArray
from pandas.core.arrays.interval import IntervalArray
from pandas.core.arrays.masked import BaseMaskedArray
from pandas.core.arrays.numpy_ import NumpyExtensionArray
from pandas.core.arrays.period import (
PeriodArray,
period_array,
)
from pandas.core.arrays.sparse import SparseArray
from pandas.core.arrays.string_ import StringArray
from pandas.core.arrays.string_arrow import ArrowStringArray
from pandas.core.arrays.timedeltas import TimedeltaArray

__all__ = [
"ArrowExtensionArray",
"ArrowStringArray",
"BaseMaskedArray",
"BooleanArray",
"Categorical",
"DatetimeArray",
"ExtensionArray",
"ExtensionOpsMixin",
"ExtensionScalarOpsMixin",
"FloatingArray",
"IntegerArray",
"IntervalArray",
"NumpyExtensionArray",
"PeriodArray",
"SparseArray",
"StringArray",
"TimedeltaArray",
"period_array",
]
1 change: 1 addition & 0 deletions pandas-stubs/core/arrays/_arrow_string_mixins.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
class ArrowStringArrayMixin: ...
15 changes: 15 additions & 0 deletions pandas-stubs/core/arrays/_mixins.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from pandas.core.arrays.base import ExtensionArray
from pandas.core.series import Series
from typing_extensions import Self

from pandas._libs.arrays import NDArrayBacked
from pandas._typing import (
AxisInt,
Scalar,
)

class NDArrayBackedExtensionArray(NDArrayBacked, ExtensionArray):
def argmin(self, axis: AxisInt = 0, skipna: bool = True) -> int: ...
def argmax(self, axis: AxisInt = 0, skipna: bool = True) -> int: ...
def insert(self, loc: int, item: Scalar) -> Self: ...
def value_counts(self, dropna: bool = True) -> Series[int]: ...
7 changes: 7 additions & 0 deletions pandas-stubs/core/arrays/arrow/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from pandas.core.arrays.arrow.accessors import (
ListAccessor,
StructAccessor,
)
from pandas.core.arrays.arrow.array import ArrowExtensionArray

__all__ = ["ArrowExtensionArray", "ListAccessor", "StructAccessor"]
5 changes: 5 additions & 0 deletions pandas-stubs/core/arrays/arrow/accessors.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from abc import ABCMeta

class ArrowAccessor(metaclass=ABCMeta): ...
class ListAccessor(ArrowAccessor): ...
class StructAccessor(ArrowAccessor): ...
7 changes: 7 additions & 0 deletions pandas-stubs/core/arrays/arrow/array.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from pandas.core.arraylike import OpsMixin
from pandas.core.arrays._arrow_string_mixins import ArrowStringArrayMixin
from pandas.core.arrays.base import ExtensionArraySupportsAnyAll

class ArrowExtensionArray(
OpsMixin, ExtensionArraySupportsAnyAll, ArrowStringArrayMixin
): ...
4 changes: 3 additions & 1 deletion pandas-stubs/core/arrays/base.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class ExtensionArray:
) -> np.intp: ...
def factorize(self, use_na_sentinel: bool = True) -> tuple[np_1darray, Self]: ...
def repeat(
self, repeats: int | AnyArrayLikeInt | Sequence[int], axis: None = None
self, repeats: int | Sequence[int] | AnyArrayLikeInt, axis: None = None
) -> Self: ...
def take(
self,
Expand All @@ -112,6 +112,8 @@ class ExtensionArray:
**kwargs: Any,
) -> Self: ...

class ExtensionArraySupportsAnyAll(ExtensionArray): ...

class ExtensionOpsMixin:
@classmethod
def _add_arithmetic_ops(cls) -> None: ...
Expand Down
6 changes: 5 additions & 1 deletion pandas-stubs/core/arrays/floating.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
from pandas.core.arrays.numeric import NumericDtype
from pandas.core.arrays.numeric import (
NumericArray,
NumericDtype,
)

class Float32Dtype(NumericDtype): ...
class Float64Dtype(NumericDtype): ...
class FloatingArray(NumericArray): ...
8 changes: 8 additions & 0 deletions pandas-stubs/core/arrays/numeric.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
from pandas.core.arrays.masked import BaseMaskedArray

from pandas._libs.properties import cache_readonly

from pandas.core.dtypes.dtypes import BaseMaskedDtype

class NumericDtype(BaseMaskedDtype): ...

class NumericArray(BaseMaskedArray):
@cache_readonly
def dtype(self) -> NumericDtype: ...
21 changes: 6 additions & 15 deletions pandas-stubs/core/arrays/numpy_.pyi
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
import numpy as np
from numpy.lib.mixins import NDArrayOperatorsMixin
from pandas.core.arrays.base import (
ExtensionArray,
ExtensionOpsMixin,
)
from pandas.core.arraylike import OpsMixin
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
from pandas.core.strings.object_array import ObjectStringArrayMixin

from pandas.core.dtypes.dtypes import ExtensionDtype

class PandasDtype(ExtensionDtype):
@property
def numpy_dtype(self) -> np.dtype: ...
@property
def itemsize(self) -> int: ...

class PandasArray(ExtensionArray, ExtensionOpsMixin, NDArrayOperatorsMixin): ...
class NumpyExtensionArray(
OpsMixin, NDArrayBackedExtensionArray, ObjectStringArrayMixin
): ...
13 changes: 13 additions & 0 deletions pandas-stubs/core/arrays/period.pyi
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
from collections.abc import Sequence

from pandas import PeriodDtype
from pandas.core.arrays.datetimelike import (
DatelikeOps,
DatetimeLikeArrayMixin,
)

from pandas._libs.tslibs import Timestamp
from pandas._libs.tslibs.offsets import (
BaseOffset,
Tick,
)
from pandas._libs.tslibs.period import Period
from pandas._typing import (
AnyArrayLike,
NpDtype,
PeriodFrequency,
np_1darray,
Expand Down Expand Up @@ -47,3 +54,9 @@ class PeriodArray(DatetimeLikeArrayMixin, DatelikeOps):
self, freq: PeriodFrequency | None = None, how: str = ...
) -> Timestamp: ...
def asfreq(self, freq: str | None = ..., how: str = "E") -> Period: ...

def period_array(
data: Sequence[Period | str | None] | AnyArrayLike,
freq: str | Tick | BaseOffset | None = None,
copy: bool = False,
) -> PeriodArray: ...
7 changes: 5 additions & 2 deletions pandas-stubs/core/arrays/string_.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from typing import Literal

from pandas.core.arrays import PandasArray
from pandas.core.arrays.base import ExtensionArray
from pandas.core.arrays.numpy_ import NumpyExtensionArray

from pandas._libs.missing import NAType

Expand All @@ -11,7 +12,9 @@ class StringDtype(ExtensionDtype):
@property
def na_value(self) -> NAType: ...

class StringArray(PandasArray):
class BaseStringArray(ExtensionArray): ...

class StringArray(BaseStringArray, NumpyExtensionArray):
def __init__(self, values, copy: bool = ...) -> None: ...
def __arrow_array__(self, type=...): ...
def __setitem__(self, key, value) -> None: ...
Expand Down
7 changes: 7 additions & 0 deletions pandas-stubs/core/arrays/string_arrow.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from pandas.core.arrays.arrow.array import ArrowExtensionArray
from pandas.core.arrays.string_ import BaseStringArray
from pandas.core.strings.object_array import ObjectStringArrayMixin

class ArrowStringArray(
ObjectStringArrayMixin, ArrowExtensionArray, BaseStringArray
): ...
1 change: 1 addition & 0 deletions pandas-stubs/core/strings/object_array.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
class ObjectStringArrayMixin: ...