Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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
29 changes: 17 additions & 12 deletions pandas-stubs/core/indexes/accessors.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -13,36 +13,33 @@ from typing import (
)

import numpy as np
from pandas import (
DatetimeIndex,
Index,
PeriodIndex,
Timedelta,
TimedeltaIndex,
Timestamp,
)
from pandas.core.accessor import PandasDelegate
from pandas.core.arrays import (
DatetimeArray,
PeriodArray,
)
from pandas.core.arrays.base import ExtensionArray
from pandas.core.arrays.categorical import Categorical
from pandas.core.arrays.datetimes import DatetimeArray
from pandas.core.arrays.interval import IntervalArray
from pandas.core.arrays.period import PeriodArray
from pandas.core.arrays.timedeltas import TimedeltaArray
from pandas.core.base import (
IndexOpsMixin,
NoNewAttributesMixin,
)
from pandas.core.frame import DataFrame
from pandas.core.indexes.base import Index
from pandas.core.indexes.datetimes import DatetimeIndex
from pandas.core.indexes.period import PeriodIndex
from pandas.core.indexes.timedeltas import TimedeltaIndex
from pandas.core.series import (
PeriodSeries,
Series,
)
from typing_extensions import Never

from pandas._libs.interval import Interval
from pandas._libs.tslibs import BaseOffset
from pandas._libs.tslibs.offsets import DateOffset
from pandas._libs.tslibs.timedeltas import Timedelta
from pandas._libs.tslibs.timestamps import Timestamp
from pandas._typing import (
TimeAmbiguous,
TimeNonexistent,
Expand Down Expand Up @@ -399,6 +396,8 @@ class CombinedDatetimelikeProperties(
_TimedeltaPropertiesNoRounding[Series[int], Series[float]],
_PeriodProperties,
): ...

@type_check_only
class TimestampProperties(
DatetimeProperties[
Series[int],
Expand Down Expand Up @@ -445,6 +444,8 @@ class TimedeltaIndexProperties(

@type_check_only
class DtDescriptor:
@overload
def __get__(self, instance: Series[Never], owner: type[Series]) -> Never: ...
@overload
def __get__(
self, instance: Series[Timestamp], owner: type[Series]
Expand All @@ -456,6 +457,10 @@ class DtDescriptor:

@type_check_only
class ArrayDescriptor:
@overload
def __get__(
self, instance: IndexOpsMixin[Never], owner: type[IndexOpsMixin]
) -> ExtensionArray: ...
@overload
def __get__(
self, instance: IndexOpsMixin[CategoricalDtype], owner: type[IndexOpsMixin]
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,16 @@ numpy = ">= 1.23.5"
mypy = "1.18.2"
pandas = "2.3.2"
pyarrow = ">=10.0.1"
pytest = ">=7.1.2"
pytest = ">=8.4.2"
pyright = ">=1.1.405"
ty = ">=0.0.1a21"
pyrefly = ">=0.33.1"
pyrefly = ">=0.34.0"
poethepoet = ">=0.16.5"
loguru = ">=0.6.0"
typing-extensions = ">=4.4.0"
matplotlib = ">=3.10.1"
pre-commit = ">=2.19.0"
black = ">=25.1.0"
black = ">=25.9.0"
isort = ">=6.0.1"
openpyxl = ">=3.0.10"
tables = { version = ">=3.10.1", python = "<4" }
Expand Down
1 change: 0 additions & 1 deletion tests/indexes/test_indexes.py
Original file line number Diff line number Diff line change
Expand Up @@ -1547,7 +1547,6 @@ def test_array_property() -> None:
TimedeltaArray,
pd.Timedelta,
)
# Should be NumpyExtensionArray
check(assert_type(Index([1]).array, ExtensionArray), ExtensionArray, np.integer)


Expand Down
12 changes: 6 additions & 6 deletions tests/series/test_properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@
)

if TYPE_CHECKING:
from pandas.core.indexes.accessors import ( # noqa: F401
TimedeltaProperties,
TimestampProperties,
)
from pandas.core.indexes.accessors import TimestampProperties # noqa: F401


def test_dt_property() -> None:
Expand All @@ -36,7 +33,9 @@ def test_dt_property() -> None:
)

if TYPE_CHECKING_INVALID_USAGE:
_ = pd.Series([1]).dt # type: ignore[arg-type] # pyright: ignore[reportAttributeAccessIssue]
# mypy gives Any
_0 = pd.Series([1, "s"]).dt # pyright: ignore[reportAttributeAccessIssue]
_1 = pd.Series([1]).dt # type: ignore[arg-type,var-annotated] # pyright: ignore[reportAttributeAccessIssue]


def test_array_property() -> None:
Expand All @@ -58,5 +57,6 @@ def test_array_property() -> None:
TimedeltaArray,
pd.Timedelta,
)
# Should be NumpyExtensionArray
check(assert_type(pd.Series([1]).array, ExtensionArray), ExtensionArray, np.integer)
# mypy gives Any
check(assert_type(pd.Series([1, "s"]).array, ExtensionArray), ExtensionArray) # type: ignore[assert-type]
Loading