Skip to content

Commit 5a6d866

Browse files
committed
properties
1 parent c4d1baf commit 5a6d866

File tree

4 files changed

+30
-18
lines changed

4 files changed

+30
-18
lines changed

pandas-stubs/core/indexes/accessors.pyi

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ from typing import (
1414

1515
import numpy as np
1616
from pandas.core.accessor import PandasDelegate
17-
from pandas.core.arrays.base import ExtensionArray
1817
from pandas.core.arrays.categorical import Categorical
1918
from pandas.core.arrays.datetimes import DatetimeArray
2019
from pandas.core.arrays.interval import IntervalArray
20+
from pandas.core.arrays.numpy_ import NumpyExtensionArray
2121
from pandas.core.arrays.period import PeriodArray
2222
from pandas.core.arrays.timedeltas import TimedeltaArray
2323
from pandas.core.base import (
@@ -49,8 +49,6 @@ from pandas._typing import (
4949
np_ndarray_bool,
5050
)
5151

52-
from pandas.core.dtypes.dtypes import CategoricalDtype
53-
5452
class Properties(PandasDelegate, NoNewAttributesMixin): ...
5553

5654
_DTFieldOpsReturnType = TypeVar("_DTFieldOpsReturnType", bound=Series[int] | Index[int])
@@ -462,26 +460,31 @@ class DtDescriptor:
462460
class ArrayDescriptor:
463461
@overload
464462
def __get__(
465-
self, instance: IndexOpsMixin[Never], owner: type[IndexOpsMixin]
466-
) -> ExtensionArray: ...
463+
self, instance: IndexOpsMixin[Never, Never], owner: type[IndexOpsMixin]
464+
) -> NumpyExtensionArray: ...
467465
@overload
468466
def __get__(
469-
self, instance: IndexOpsMixin[CategoricalDtype], owner: type[IndexOpsMixin]
467+
self, instance: IndexOpsMixin[Never, Categorical], owner: type[IndexOpsMixin]
470468
) -> Categorical: ...
471469
@overload
472470
def __get__(
473-
self, instance: IndexOpsMixin[Interval], owner: type[IndexOpsMixin]
471+
self,
472+
instance: IndexOpsMixin[Interval, IntervalArray],
473+
owner: type[IndexOpsMixin],
474474
) -> IntervalArray: ...
475475
@overload
476476
def __get__(
477-
self, instance: IndexOpsMixin[Timestamp], owner: type[IndexOpsMixin]
477+
self,
478+
instance: IndexOpsMixin[Timestamp, DatetimeArray],
479+
owner: type[IndexOpsMixin],
478480
) -> DatetimeArray: ...
479481
@overload
480482
def __get__(
481-
self, instance: IndexOpsMixin[Timedelta], owner: type[IndexOpsMixin]
483+
self,
484+
instance: IndexOpsMixin[Timedelta, TimedeltaArray],
485+
owner: type[IndexOpsMixin],
482486
) -> TimedeltaArray: ...
483-
# should be NumpyExtensionArray
484487
@overload
485488
def __get__(
486-
self, instance: IndexOpsMixin, owner: type[IndexOpsMixin]
487-
) -> ExtensionArray: ...
489+
self, instance: IndexOpsMixin[int, Never], owner: type[IndexOpsMixin]
490+
) -> NumpyExtensionArray: ...

pandas-stubs/core/indexes/interval.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ from typing import (
1111

1212
import numpy as np
1313
import pandas as pd
14+
from pandas.core.arrays.interval import IntervalArray
1415
from pandas.core.indexes.base import Index
1516
from pandas.core.indexes.extension import ExtensionIndex
1617

@@ -61,7 +62,7 @@ _TimestampLike: TypeAlias = pd.Timestamp | np.datetime64 | dt.datetime
6162
_TimedeltaLike: TypeAlias = pd.Timedelta | np.timedelta64 | dt.timedelta
6263

6364
class IntervalIndex(
64-
ExtensionIndex[IntervalT, IntervalIndex, np.object_], IntervalMixin
65+
ExtensionIndex[IntervalT, IntervalArray, np.object_], IntervalMixin
6566
):
6667
closed: IntervalClosedType
6768

tests/indexes/test_indexes.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
import numpy as np
1313
from numpy import typing as npt
1414
import pandas as pd
15-
from pandas.core.arrays.base import ExtensionArray
1615
from pandas.core.arrays.categorical import Categorical
1716
from pandas.core.arrays.datetimes import DatetimeArray
1817
from pandas.core.arrays.interval import IntervalArray
18+
from pandas.core.arrays.numpy_ import NumpyExtensionArray
1919
from pandas.core.arrays.timedeltas import TimedeltaArray
2020
from pandas.core.indexes.base import Index
2121
from pandas.core.indexes.category import CategoricalIndex
@@ -1476,7 +1476,11 @@ def test_array_property() -> None:
14761476
TimedeltaArray,
14771477
pd.Timedelta,
14781478
)
1479-
check(assert_type(Index([1]).array, ExtensionArray), ExtensionArray, np.integer)
1479+
check(
1480+
assert_type(Index([1]).array, NumpyExtensionArray),
1481+
NumpyExtensionArray,
1482+
np.integer,
1483+
)
14801484

14811485

14821486
def test_to_series() -> None:

tests/series/test_properties.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import numpy as np
44
from pandas.core.arrays import DatetimeArray
5-
from pandas.core.arrays.base import ExtensionArray
65
from pandas.core.arrays.categorical import Categorical
76
from pandas.core.arrays.interval import IntervalArray
7+
from pandas.core.arrays.numpy_ import NumpyExtensionArray
88
from pandas.core.arrays.timedeltas import TimedeltaArray
99
from pandas.core.frame import DataFrame
1010
from pandas.core.indexes.accessors import (
@@ -77,7 +77,11 @@ def test_property_array() -> None:
7777
TimedeltaArray,
7878
Timedelta,
7979
)
80-
check(assert_type(Series([1]).array, ExtensionArray), ExtensionArray, np.integer)
80+
check(
81+
assert_type(Series([1]).array, NumpyExtensionArray),
82+
NumpyExtensionArray,
83+
np.integer,
84+
)
8185
# python/mypy#19952: mypy believes ExtensionArray and its subclasses have a
8286
# conflict and gives Any for s.array
83-
check(assert_type(Series([1, "s"]).array, ExtensionArray), ExtensionArray) # type: ignore[assert-type]
87+
# check(assert_type(Series([1, "s"]).array, NumpyExtensionArray), NumpyExtensionArray) # type: ignore[assert-type]

0 commit comments

Comments
 (0)