Skip to content

Commit bf753e6

Browse files
committed
lose less ExtensionArrayT. Make registry private. consolidate overload
1 parent 6a6a21f commit bf753e6

File tree

9 files changed

+30
-42
lines changed

9 files changed

+30
-42
lines changed

pandas/core/arrays/_mixins.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -255,13 +255,7 @@ def __getitem__(self: NDArrayBackedExtensionArrayT, key: int) -> Any:
255255

256256
@overload
257257
def __getitem__(
258-
self: NDArrayBackedExtensionArrayT, key: slice
259-
) -> NDArrayBackedExtensionArrayT:
260-
...
261-
262-
@overload
263-
def __getitem__(
264-
self: NDArrayBackedExtensionArrayT, key: np.ndarray
258+
self: NDArrayBackedExtensionArrayT, key: Union[slice, np.ndarray]
265259
) -> NDArrayBackedExtensionArrayT:
266260
...
267261

pandas/core/arrays/base.py

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -289,19 +289,15 @@ def _from_factorized(cls, values, original):
289289
# ------------------------------------------------------------------------
290290

291291
@overload
292-
def __getitem__(self: ExtensionArrayT, item: int) -> Any:
292+
def __getitem__(self, item: int) -> Any:
293293
...
294294

295295
@overload
296-
def __getitem__(self: ExtensionArrayT, item: slice) -> ExtensionArrayT:
297-
...
298-
299-
@overload
300-
def __getitem__(self: ExtensionArrayT, item: np.ndarray) -> ExtensionArrayT:
296+
def __getitem__(self, item: Union[slice, np.ndarray]) -> ExtensionArray:
301297
...
302298

303299
def __getitem__(
304-
self: ExtensionArrayT, item: Union[int, slice, np.ndarray]
300+
self, item: Union[int, slice, np.ndarray]
305301
) -> Union[ExtensionArray, Any]:
306302
"""
307303
Select a subset of self.
@@ -686,11 +682,11 @@ def argmax(self, skipna: bool = True) -> int:
686682
return nargminmax(self, "argmax")
687683

688684
def fillna(
689-
self: ExtensionArrayT,
685+
self: ExtensionArray,
690686
value: Optional[Union[Any, ArrayLike]] = None,
691687
method: Optional[Literal["backfill", "bfill", "ffill", "pad"]] = None,
692688
limit: Optional[int] = None,
693-
) -> ExtensionArrayT:
689+
) -> ExtensionArray:
694690
"""
695691
Fill NA/NaN values using the specified method.
696692
@@ -746,8 +742,8 @@ def dropna(self) -> ExtensionArrayT:
746742
return self[~self.isna()]
747743

748744
def shift(
749-
self: ExtensionArrayT, periods: int = 1, fill_value: object = None
750-
) -> ExtensionArrayT:
745+
self: ExtensionArray, periods: int = 1, fill_value: object = None
746+
) -> ExtensionArray:
751747
"""
752748
Shift values by desired number.
753749
@@ -795,13 +791,13 @@ def shift(
795791
)
796792
if periods > 0:
797793
a = empty
798-
b: ExtensionArrayT = self[:-periods]
794+
b = self[:-periods]
799795
else:
800796
a = self[abs(periods) :]
801797
b = empty
802798
return self._concat_same_type([a, b])
803799

804-
def unique(self: ExtensionArrayT) -> ExtensionArrayT:
800+
def unique(self: ExtensionArray) -> ExtensionArray:
805801
"""
806802
Compute the ExtensionArray of unique values.
807803
@@ -815,7 +811,7 @@ def unique(self: ExtensionArrayT) -> ExtensionArrayT:
815811
def searchsorted(
816812
self,
817813
value: ArrayLike,
818-
side: Optional[Literal["left", "right"]] = "left",
814+
side: Literal["left", "right"] = "left",
819815
sorter: Optional[ArrayLike] = None,
820816
) -> np.ndarray:
821817
"""
@@ -1033,10 +1029,10 @@ def factorize(self, na_sentinel: int = -1) -> Tuple[np.ndarray, ExtensionArray]:
10331029
@Substitution(klass="ExtensionArray")
10341030
@Appender(_extension_array_shared_docs["repeat"])
10351031
def repeat(
1036-
self: ExtensionArrayT,
1032+
self: ExtensionArray,
10371033
repeats: Union[int, Sequence[int]],
10381034
axis: Literal[None] = None,
1039-
) -> ExtensionArrayT:
1035+
) -> ExtensionArray:
10401036
nv.validate_repeat((), {"axis": axis})
10411037
ind = np.arange(len(self)).repeat(repeats)
10421038
return self.take(ind)
@@ -1046,12 +1042,12 @@ def repeat(
10461042
# ------------------------------------------------------------------------
10471043

10481044
def take(
1049-
self: ExtensionArrayT,
1045+
self: ExtensionArray,
10501046
indices: Sequence[int],
10511047
*,
10521048
allow_fill: bool = False,
10531049
fill_value: Any = None,
1054-
) -> ExtensionArrayT:
1050+
) -> ExtensionArray:
10551051
"""
10561052
Take elements from an array.
10571053
@@ -1140,7 +1136,7 @@ def take(self, indices, allow_fill=False, fill_value=None):
11401136
# pandas.api.extensions.take
11411137
raise AbstractMethodError(self)
11421138

1143-
def copy(self: ExtensionArrayT) -> ExtensionArrayT:
1139+
def copy(self: ExtensionArray) -> ExtensionArray:
11441140
"""
11451141
Return a copy of the array.
11461142
@@ -1220,7 +1216,7 @@ def _formatter(self, boxed: bool = False) -> Callable[[Any], Optional[str]]:
12201216
# Reshaping
12211217
# ------------------------------------------------------------------------
12221218

1223-
def transpose(self: ExtensionArrayT, *axes: int) -> ExtensionArrayT:
1219+
def transpose(self: ExtensionArray, *axes: int) -> ExtensionArray:
12241220
"""
12251221
Return a transposed view on this array.
12261222
@@ -1230,12 +1226,12 @@ def transpose(self: ExtensionArrayT, *axes: int) -> ExtensionArrayT:
12301226
return self[:]
12311227

12321228
@property
1233-
def T(self: ExtensionArrayT) -> ExtensionArrayT:
1229+
def T(self: ExtensionArray) -> ExtensionArray:
12341230
return self.transpose()
12351231

12361232
def ravel(
1237-
self: ExtensionArrayT, order: Optional[Literal["C", "F", "A", "K"]] = "C"
1238-
) -> ExtensionArrayT:
1233+
self: ExtensionArray, order: Optional[Literal["C", "F", "A", "K"]] = "C"
1234+
) -> ExtensionArray:
12391235
"""
12401236
Return a flattened view on this array.
12411237
@@ -1257,7 +1253,7 @@ def ravel(
12571253
@classmethod
12581254
def _concat_same_type(
12591255
cls: Type[ExtensionArrayT], to_concat: Sequence[ExtensionArrayT]
1260-
):
1256+
) -> ExtensionArrayT:
12611257
"""
12621258
Concatenate multiple array of this dtype.
12631259
@@ -1315,9 +1311,7 @@ def __hash__(self) -> int:
13151311
# ------------------------------------------------------------------------
13161312
# Non-Optimized Default Methods
13171313

1318-
def delete(
1319-
self: ExtensionArrayT, loc: Union[int, Sequence[int]]
1320-
) -> ExtensionArrayT:
1314+
def delete(self: ExtensionArray, loc: Union[int, Sequence[int]]) -> ExtensionArray:
13211315
indexer = np.delete(np.arange(len(self)), loc)
13221316
return self.take(indexer)
13231317

pandas/core/construction.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
from pandas.core.dtypes.base import (
3535
ExtensionDtype,
36-
registry,
36+
_registry as registry,
3737
)
3838
from pandas.core.dtypes.cast import (
3939
construct_1d_arraylike_from_scalar,

pandas/core/dtypes/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ def register_extension_dtype(cls: Type[ExtensionDtype]) -> Type[ExtensionDtype]:
389389
... class MyExtensionDtype(ExtensionDtype):
390390
... name = "myextension"
391391
"""
392-
registry.register(cls)
392+
_registry.register(cls)
393393
return cls
394394

395395

@@ -451,4 +451,4 @@ def find(self, dtype: Union[Type[ExtensionDtype], str]) -> Optional[ExtensionDty
451451
return None
452452

453453

454-
registry: Registry = Registry()
454+
_registry = Registry()

pandas/core/dtypes/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
Optional,
2424
)
2525

26-
from pandas.core.dtypes.base import registry
26+
from pandas.core.dtypes.base import _registry as registry
2727
from pandas.core.dtypes.dtypes import (
2828
CategoricalDtype,
2929
DatetimeTZDtype,

pandas/tests/arrays/test_array.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import pytest
66
import pytz
77

8-
from pandas.core.dtypes.base import registry
8+
from pandas.core.dtypes.base import _registry as registry
99

1010
import pandas as pd
1111
import pandas._testing as tm

pandas/tests/arrays/test_period.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from pandas._libs.tslibs import iNaT
55
from pandas._libs.tslibs.period import IncompatibleFrequency
66

7-
from pandas.core.dtypes.base import registry
7+
from pandas.core.dtypes.base import _registry as registry
88
from pandas.core.dtypes.dtypes import PeriodDtype
99

1010
import pandas as pd

pandas/tests/dtypes/test_dtypes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pytest
55
import pytz
66

7-
from pandas.core.dtypes.base import registry
7+
from pandas.core.dtypes.base import _registry as registry
88
from pandas.core.dtypes.common import (
99
is_bool_dtype,
1010
is_categorical,

pandas/tests/frame/indexing/test_setitem.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import numpy as np
44
import pytest
55

6-
from pandas.core.dtypes.base import registry as ea_registry
6+
from pandas.core.dtypes.base import _registry as ea_registry
77
from pandas.core.dtypes.common import (
88
is_categorical_dtype,
99
is_interval_dtype,

0 commit comments

Comments
 (0)