done
This commit is contained in:
		| @ -0,0 +1,428 @@ | ||||
| import datetime as dt | ||||
| from datetime import ( | ||||
|     timedelta, | ||||
|     tzinfo as _tzinfo, | ||||
| ) | ||||
| from typing import ( | ||||
|     Generic, | ||||
|     Literal, | ||||
|     TypeVar, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| from pandas import ( | ||||
|     DatetimeIndex, | ||||
|     Index, | ||||
|     PeriodIndex, | ||||
|     Timedelta, | ||||
|     TimedeltaIndex, | ||||
| ) | ||||
| from pandas.core.accessor import PandasDelegate | ||||
| from pandas.core.arrays import ( | ||||
|     DatetimeArray, | ||||
|     PeriodArray, | ||||
| ) | ||||
| from pandas.core.base import NoNewAttributesMixin | ||||
| from pandas.core.frame import DataFrame | ||||
| from pandas.core.series import ( | ||||
|     PeriodSeries, | ||||
|     Series, | ||||
|     TimedeltaSeries, | ||||
|     TimestampSeries, | ||||
| ) | ||||
|  | ||||
| from pandas._libs.tslibs import BaseOffset | ||||
| from pandas._libs.tslibs.offsets import DateOffset | ||||
| from pandas._typing import ( | ||||
|     TimeAmbiguous, | ||||
|     TimeNonexistent, | ||||
|     TimestampConvention, | ||||
|     TimeUnit, | ||||
|     TimeZones, | ||||
|     np_1darray, | ||||
|     np_ndarray_bool, | ||||
| ) | ||||
|  | ||||
| class Properties(PandasDelegate, NoNewAttributesMixin): ... | ||||
|  | ||||
| _DTFieldOpsReturnType = TypeVar("_DTFieldOpsReturnType", bound=Series[int] | Index[int]) | ||||
|  | ||||
| class _DayLikeFieldOps(Generic[_DTFieldOpsReturnType]): | ||||
|     @property | ||||
|     def year(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def month(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def day(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def hour(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def minute(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def second(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def weekday(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def dayofweek(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def day_of_week(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def dayofyear(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def day_of_year(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def quarter(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def days_in_month(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def daysinmonth(self) -> _DTFieldOpsReturnType: ... | ||||
|  | ||||
| class _MiniSeconds(Generic[_DTFieldOpsReturnType]): | ||||
|     @property | ||||
|     def microsecond(self) -> _DTFieldOpsReturnType: ... | ||||
|     @property | ||||
|     def nanosecond(self) -> _DTFieldOpsReturnType: ... | ||||
|  | ||||
| class _DatetimeFieldOps( | ||||
|     _DayLikeFieldOps[_DTFieldOpsReturnType], _MiniSeconds[_DTFieldOpsReturnType] | ||||
| ): ... | ||||
|  | ||||
| _DTBoolOpsReturnType = TypeVar( | ||||
|     "_DTBoolOpsReturnType", bound=Series[bool] | np_1darray[np.bool] | ||||
| ) | ||||
|  | ||||
| class _IsLeapYearProperty(Generic[_DTBoolOpsReturnType]): | ||||
|     @property | ||||
|     def is_leap_year(self) -> _DTBoolOpsReturnType: ... | ||||
|  | ||||
| class _DatetimeBoolOps( | ||||
|     _IsLeapYearProperty[_DTBoolOpsReturnType], Generic[_DTBoolOpsReturnType] | ||||
| ): | ||||
|     @property | ||||
|     def is_month_start(self) -> _DTBoolOpsReturnType: ... | ||||
|     @property | ||||
|     def is_month_end(self) -> _DTBoolOpsReturnType: ... | ||||
|     @property | ||||
|     def is_quarter_start(self) -> _DTBoolOpsReturnType: ... | ||||
|     @property | ||||
|     def is_quarter_end(self) -> _DTBoolOpsReturnType: ... | ||||
|     @property | ||||
|     def is_year_start(self) -> _DTBoolOpsReturnType: ... | ||||
|     @property | ||||
|     def is_year_end(self) -> _DTBoolOpsReturnType: ... | ||||
|  | ||||
| _DTFreqReturnType = TypeVar("_DTFreqReturnType", bound=str | BaseOffset) | ||||
|  | ||||
| class _FreqProperty(Generic[_DTFreqReturnType]): | ||||
|     @property | ||||
|     def freq(self) -> _DTFreqReturnType | None: ... | ||||
|  | ||||
| class _TZProperty: | ||||
|     @property | ||||
|     def tz(self) -> _tzinfo | None: ... | ||||
|  | ||||
| class _DatetimeObjectOps( | ||||
|     _FreqProperty[_DTFreqReturnType], _TZProperty, Generic[_DTFreqReturnType] | ||||
| ): ... | ||||
|  | ||||
| _DTOtherOpsDateReturnType = TypeVar( | ||||
|     "_DTOtherOpsDateReturnType", bound=Series[dt.date] | np_1darray[np.object_] | ||||
| ) | ||||
| _DTOtherOpsTimeReturnType = TypeVar( | ||||
|     "_DTOtherOpsTimeReturnType", bound=Series[dt.time] | np_1darray[np.object_] | ||||
| ) | ||||
|  | ||||
| class _DatetimeOtherOps(Generic[_DTOtherOpsDateReturnType, _DTOtherOpsTimeReturnType]): | ||||
|     @property | ||||
|     def date(self) -> _DTOtherOpsDateReturnType: ... | ||||
|     @property | ||||
|     def time(self) -> _DTOtherOpsTimeReturnType: ... | ||||
|     @property | ||||
|     def timetz(self) -> _DTOtherOpsTimeReturnType: ... | ||||
|  | ||||
| class _DatetimeLikeOps( | ||||
|     _DatetimeFieldOps[_DTFieldOpsReturnType], | ||||
|     _DatetimeObjectOps[_DTFreqReturnType], | ||||
|     _DatetimeBoolOps[_DTBoolOpsReturnType], | ||||
|     _DatetimeOtherOps[_DTOtherOpsDateReturnType, _DTOtherOpsTimeReturnType], | ||||
|     Generic[ | ||||
|         _DTFieldOpsReturnType, | ||||
|         _DTBoolOpsReturnType, | ||||
|         _DTOtherOpsDateReturnType, | ||||
|         _DTOtherOpsTimeReturnType, | ||||
|         _DTFreqReturnType, | ||||
|     ], | ||||
| ): ... | ||||
|  | ||||
| # Ideally, the rounding methods would return TimestampSeries when `Series.dt.method` | ||||
| # is invoked, but because of how Series.dt is hooked in and that we may not know the | ||||
| # type of the series, we don't know which kind of series was ...ed | ||||
| # in to the dt accessor | ||||
|  | ||||
| _DTTimestampTimedeltaReturnType = TypeVar( | ||||
|     "_DTTimestampTimedeltaReturnType", | ||||
|     bound=Series | TimestampSeries | TimedeltaSeries | DatetimeIndex | TimedeltaIndex, | ||||
| ) | ||||
|  | ||||
| class _DatetimeRoundingMethods(Generic[_DTTimestampTimedeltaReturnType]): | ||||
|     def round( | ||||
|         self, | ||||
|         freq: str | BaseOffset | None, | ||||
|         ambiguous: Literal["raise", "infer", "NaT"] | bool | np_ndarray_bool = ..., | ||||
|         nonexistent: ( | ||||
|             Literal["shift_forward", "shift_backward", "NaT", "raise"] | ||||
|             | timedelta | ||||
|             | Timedelta | ||||
|         ) = ..., | ||||
|     ) -> _DTTimestampTimedeltaReturnType: ... | ||||
|     def floor( | ||||
|         self, | ||||
|         freq: str | BaseOffset | None, | ||||
|         ambiguous: Literal["raise", "infer", "NaT"] | bool | np_ndarray_bool = ..., | ||||
|         nonexistent: ( | ||||
|             Literal["shift_forward", "shift_backward", "NaT", "raise"] | ||||
|             | timedelta | ||||
|             | Timedelta | ||||
|         ) = ..., | ||||
|     ) -> _DTTimestampTimedeltaReturnType: ... | ||||
|     def ceil( | ||||
|         self, | ||||
|         freq: str | BaseOffset | None, | ||||
|         ambiguous: Literal["raise", "infer", "NaT"] | bool | np_ndarray_bool = ..., | ||||
|         nonexistent: ( | ||||
|             Literal["shift_forward", "shift_backward", "NaT", "raise"] | ||||
|             | timedelta | ||||
|             | Timedelta | ||||
|         ) = ..., | ||||
|     ) -> _DTTimestampTimedeltaReturnType: ... | ||||
|  | ||||
| _DTNormalizeReturnType = TypeVar( | ||||
|     "_DTNormalizeReturnType", TimestampSeries, DatetimeIndex | ||||
| ) | ||||
| _DTStrKindReturnType = TypeVar("_DTStrKindReturnType", bound=Series[str] | Index) | ||||
| _DTToPeriodReturnType = TypeVar( | ||||
|     "_DTToPeriodReturnType", bound=PeriodSeries | PeriodIndex | ||||
| ) | ||||
|  | ||||
| class _DatetimeLikeNoTZMethods( | ||||
|     _DatetimeRoundingMethods[_DTTimestampTimedeltaReturnType], | ||||
|     Generic[ | ||||
|         _DTTimestampTimedeltaReturnType, | ||||
|         _DTNormalizeReturnType, | ||||
|         _DTStrKindReturnType, | ||||
|         _DTToPeriodReturnType, | ||||
|     ], | ||||
| ): | ||||
|     def to_period( | ||||
|         self, freq: str | BaseOffset | None = ... | ||||
|     ) -> _DTToPeriodReturnType: ... | ||||
|     def tz_localize( | ||||
|         self, | ||||
|         tz: TimeZones, | ||||
|         ambiguous: TimeAmbiguous = ..., | ||||
|         nonexistent: TimeNonexistent = ..., | ||||
|     ) -> _DTNormalizeReturnType: ... | ||||
|     def tz_convert(self, tz: TimeZones) -> _DTNormalizeReturnType: ... | ||||
|     def normalize(self) -> _DTNormalizeReturnType: ... | ||||
|     def strftime(self, date_format: str) -> _DTStrKindReturnType: ... | ||||
|     def month_name(self, locale: str | None = ...) -> _DTStrKindReturnType: ... | ||||
|     def day_name(self, locale: str | None = ...) -> _DTStrKindReturnType: ... | ||||
|  | ||||
| class _DatetimeNoTZProperties( | ||||
|     _DatetimeLikeOps[ | ||||
|         _DTFieldOpsReturnType, | ||||
|         _DTBoolOpsReturnType, | ||||
|         _DTOtherOpsDateReturnType, | ||||
|         _DTOtherOpsTimeReturnType, | ||||
|         _DTFreqReturnType, | ||||
|     ], | ||||
|     _DatetimeLikeNoTZMethods[ | ||||
|         _DTTimestampTimedeltaReturnType, | ||||
|         _DTNormalizeReturnType, | ||||
|         _DTStrKindReturnType, | ||||
|         _DTToPeriodReturnType, | ||||
|     ], | ||||
|     Generic[ | ||||
|         _DTFieldOpsReturnType, | ||||
|         _DTBoolOpsReturnType, | ||||
|         _DTTimestampTimedeltaReturnType, | ||||
|         _DTOtherOpsDateReturnType, | ||||
|         _DTOtherOpsTimeReturnType, | ||||
|         _DTFreqReturnType, | ||||
|         _DTNormalizeReturnType, | ||||
|         _DTStrKindReturnType, | ||||
|         _DTToPeriodReturnType, | ||||
|     ], | ||||
| ): ... | ||||
|  | ||||
| class DatetimeProperties( | ||||
|     Properties, | ||||
|     _DatetimeNoTZProperties[ | ||||
|         _DTFieldOpsReturnType, | ||||
|         _DTBoolOpsReturnType, | ||||
|         _DTTimestampTimedeltaReturnType, | ||||
|         _DTOtherOpsDateReturnType, | ||||
|         _DTOtherOpsTimeReturnType, | ||||
|         _DTFreqReturnType, | ||||
|         _DTNormalizeReturnType, | ||||
|         _DTStrKindReturnType, | ||||
|         _DTToPeriodReturnType, | ||||
|     ], | ||||
|     Generic[ | ||||
|         _DTFieldOpsReturnType, | ||||
|         _DTBoolOpsReturnType, | ||||
|         _DTTimestampTimedeltaReturnType, | ||||
|         _DTOtherOpsDateReturnType, | ||||
|         _DTOtherOpsTimeReturnType, | ||||
|         _DTFreqReturnType, | ||||
|         _DTNormalizeReturnType, | ||||
|         _DTStrKindReturnType, | ||||
|         _DTToPeriodReturnType, | ||||
|     ], | ||||
| ): | ||||
|     def to_pydatetime(self) -> np_1darray[np.object_]: ... | ||||
|     def isocalendar(self) -> DataFrame: ... | ||||
|     @property | ||||
|     def unit(self) -> TimeUnit: ... | ||||
|     def as_unit(self, unit: TimeUnit) -> _DTTimestampTimedeltaReturnType: ... | ||||
|  | ||||
| _TDNoRoundingMethodReturnType = TypeVar( | ||||
|     "_TDNoRoundingMethodReturnType", bound=Series[int] | Index | ||||
| ) | ||||
| _TDTotalSecondsReturnType = TypeVar( | ||||
|     "_TDTotalSecondsReturnType", bound=Series[float] | Index | ||||
| ) | ||||
|  | ||||
| class _TimedeltaPropertiesNoRounding( | ||||
|     Generic[_TDNoRoundingMethodReturnType, _TDTotalSecondsReturnType] | ||||
| ): | ||||
|     def to_pytimedelta(self) -> np_1darray[np.object_]: ... | ||||
|     @property | ||||
|     def components(self) -> DataFrame: ... | ||||
|     @property | ||||
|     def days(self) -> _TDNoRoundingMethodReturnType: ... | ||||
|     @property | ||||
|     def seconds(self) -> _TDNoRoundingMethodReturnType: ... | ||||
|     @property | ||||
|     def microseconds(self) -> _TDNoRoundingMethodReturnType: ... | ||||
|     @property | ||||
|     def nanoseconds(self) -> _TDNoRoundingMethodReturnType: ... | ||||
|     def total_seconds(self) -> _TDTotalSecondsReturnType: ... | ||||
|  | ||||
| class TimedeltaProperties( | ||||
|     Properties, | ||||
|     _TimedeltaPropertiesNoRounding[Series[int], Series[float]], | ||||
|     _DatetimeRoundingMethods[TimedeltaSeries], | ||||
| ): | ||||
|     @property | ||||
|     def unit(self) -> TimeUnit: ... | ||||
|     def as_unit(self, unit: TimeUnit) -> TimedeltaSeries: ... | ||||
|  | ||||
| _PeriodDTReturnTypes = TypeVar( | ||||
|     "_PeriodDTReturnTypes", bound=TimestampSeries | DatetimeIndex | ||||
| ) | ||||
| _PeriodIntReturnTypes = TypeVar("_PeriodIntReturnTypes", bound=Series[int] | Index[int]) | ||||
| _PeriodStrReturnTypes = TypeVar("_PeriodStrReturnTypes", bound=Series[str] | Index) | ||||
| _PeriodDTAReturnTypes = TypeVar( | ||||
|     "_PeriodDTAReturnTypes", bound=DatetimeArray | DatetimeIndex | ||||
| ) | ||||
| _PeriodPAReturnTypes = TypeVar("_PeriodPAReturnTypes", bound=PeriodArray | PeriodIndex) | ||||
|  | ||||
| class _PeriodProperties( | ||||
|     Generic[ | ||||
|         _PeriodDTReturnTypes, | ||||
|         _PeriodIntReturnTypes, | ||||
|         _PeriodStrReturnTypes, | ||||
|         _PeriodDTAReturnTypes, | ||||
|         _PeriodPAReturnTypes, | ||||
|     ] | ||||
| ): | ||||
|     @property | ||||
|     def start_time(self) -> _PeriodDTReturnTypes: ... | ||||
|     @property | ||||
|     def end_time(self) -> _PeriodDTReturnTypes: ... | ||||
|     @property | ||||
|     def qyear(self) -> _PeriodIntReturnTypes: ... | ||||
|     def strftime(self, date_format: str) -> _PeriodStrReturnTypes: ... | ||||
|     def to_timestamp( | ||||
|         self, | ||||
|         freq: str | DateOffset | None = ..., | ||||
|         how: TimestampConvention = ..., | ||||
|     ) -> _PeriodDTAReturnTypes: ... | ||||
|     def asfreq( | ||||
|         self, | ||||
|         freq: str | DateOffset | None = ..., | ||||
|         how: Literal["E", "END", "FINISH", "S", "START", "BEGIN"] = ..., | ||||
|     ) -> _PeriodPAReturnTypes: ... | ||||
|  | ||||
| class PeriodIndexFieldOps( | ||||
|     _DayLikeFieldOps[Index[int]], | ||||
|     _PeriodProperties[DatetimeIndex, Index[int], Index, DatetimeIndex, PeriodIndex], | ||||
| ): ... | ||||
| class PeriodProperties( | ||||
|     Properties, | ||||
|     _PeriodProperties[ | ||||
|         TimestampSeries, Series[int], Series[str], DatetimeArray, PeriodArray | ||||
|     ], | ||||
|     _DatetimeFieldOps[Series[int]], | ||||
|     _IsLeapYearProperty, | ||||
|     _FreqProperty[BaseOffset], | ||||
| ): ... | ||||
| class CombinedDatetimelikeProperties( | ||||
|     DatetimeProperties[ | ||||
|         Series[int], | ||||
|         Series[bool], | ||||
|         Series, | ||||
|         Series[dt.date], | ||||
|         Series[dt.time], | ||||
|         str, | ||||
|         TimestampSeries, | ||||
|         Series[str], | ||||
|         PeriodSeries, | ||||
|     ], | ||||
|     _TimedeltaPropertiesNoRounding[Series[int], Series[float]], | ||||
|     _PeriodProperties, | ||||
| ): ... | ||||
| class TimestampProperties( | ||||
|     DatetimeProperties[ | ||||
|         Series[int], | ||||
|         Series[bool], | ||||
|         TimestampSeries, | ||||
|         Series[dt.date], | ||||
|         Series[dt.time], | ||||
|         str, | ||||
|         TimestampSeries, | ||||
|         Series[str], | ||||
|         PeriodSeries, | ||||
|     ] | ||||
| ): ... | ||||
|  | ||||
| class DatetimeIndexProperties( | ||||
|     Properties, | ||||
|     _DatetimeNoTZProperties[ | ||||
|         Index[int], | ||||
|         np_1darray[np.bool], | ||||
|         DatetimeIndex, | ||||
|         np_1darray[np.object_], | ||||
|         np_1darray[np.object_], | ||||
|         BaseOffset, | ||||
|         DatetimeIndex, | ||||
|         Index, | ||||
|         PeriodIndex, | ||||
|     ], | ||||
|     _TZProperty, | ||||
| ): | ||||
|     @property | ||||
|     def is_normalized(self) -> bool: ... | ||||
|     @property | ||||
|     def tzinfo(self) -> _tzinfo | None: ... | ||||
|     def to_pydatetime(self) -> np_1darray[np.object_]: ... | ||||
|     def std( | ||||
|         self, axis: int | None = ..., ddof: int = ..., skipna: bool = ... | ||||
|     ) -> Timedelta: ... | ||||
|  | ||||
| class TimedeltaIndexProperties( | ||||
|     Properties, | ||||
|     _TimedeltaPropertiesNoRounding[Index, Index], | ||||
|     _DatetimeRoundingMethods[TimedeltaIndex], | ||||
| ): ... | ||||
| @ -0,0 +1,8 @@ | ||||
| from pandas.core.indexes.base import Index as Index | ||||
| from pandas.core.indexes.category import CategoricalIndex as CategoricalIndex | ||||
| from pandas.core.indexes.datetimes import DatetimeIndex as DatetimeIndex | ||||
| from pandas.core.indexes.interval import IntervalIndex as IntervalIndex | ||||
| from pandas.core.indexes.multi import MultiIndex as MultiIndex | ||||
| from pandas.core.indexes.period import PeriodIndex as PeriodIndex | ||||
| from pandas.core.indexes.range import RangeIndex as RangeIndex | ||||
| from pandas.core.indexes.timedeltas import TimedeltaIndex as TimedeltaIndex | ||||
							
								
								
									
										535
									
								
								lib/python3.11/site-packages/pandas-stubs/core/indexes/base.pyi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										535
									
								
								lib/python3.11/site-packages/pandas-stubs/core/indexes/base.pyi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,535 @@ | ||||
| from builtins import str as _str | ||||
| from collections.abc import ( | ||||
|     Callable, | ||||
|     Hashable, | ||||
|     Iterable, | ||||
|     Iterator, | ||||
|     Sequence, | ||||
| ) | ||||
| from datetime import ( | ||||
|     datetime, | ||||
|     timedelta, | ||||
| ) | ||||
| from typing import ( | ||||
|     Any, | ||||
|     ClassVar, | ||||
|     Generic, | ||||
|     Literal, | ||||
|     final, | ||||
|     overload, | ||||
|     type_check_only, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| from pandas import ( | ||||
|     DataFrame, | ||||
|     DatetimeIndex, | ||||
|     Interval, | ||||
|     IntervalIndex, | ||||
|     MultiIndex, | ||||
|     Period, | ||||
|     PeriodDtype, | ||||
|     PeriodIndex, | ||||
|     Series, | ||||
|     TimedeltaIndex, | ||||
| ) | ||||
| from pandas.core.arrays import ExtensionArray | ||||
| from pandas.core.base import IndexOpsMixin | ||||
| from pandas.core.strings.accessor import StringMethods | ||||
| from typing_extensions import ( | ||||
|     Never, | ||||
|     Self, | ||||
| ) | ||||
|  | ||||
| from pandas._libs.interval import _OrderableT | ||||
| from pandas._typing import ( | ||||
|     C2, | ||||
|     S1, | ||||
|     AnyAll, | ||||
|     ArrayLike, | ||||
|     AxesData, | ||||
|     DropKeep, | ||||
|     Dtype, | ||||
|     DtypeArg, | ||||
|     DTypeLike, | ||||
|     DtypeObj, | ||||
|     GenericT, | ||||
|     GenericT_co, | ||||
|     HashableT, | ||||
|     IgnoreRaise, | ||||
|     Label, | ||||
|     Level, | ||||
|     MaskType, | ||||
|     NaPosition, | ||||
|     ReindexMethod, | ||||
|     Scalar, | ||||
|     SequenceNotStr, | ||||
|     SliceType, | ||||
|     SupportsDType, | ||||
|     TimedeltaDtypeArg, | ||||
|     TimestampDtypeArg, | ||||
|     np_1darray, | ||||
|     np_ndarray_anyint, | ||||
|     np_ndarray_complex, | ||||
|     np_ndarray_float, | ||||
|     type_t, | ||||
| ) | ||||
|  | ||||
| class InvalidIndexError(Exception): ... | ||||
|  | ||||
| class Index(IndexOpsMixin[S1]): | ||||
|     __hash__: ClassVar[None]  # type: ignore[assignment] | ||||
|     # overloads with additional dtypes | ||||
|     @overload | ||||
|     def __new__(  # pyright: ignore[reportOverlappingOverload] | ||||
|         cls, | ||||
|         data: Sequence[int | np.integer] | IndexOpsMixin[int] | np_ndarray_anyint, | ||||
|         *, | ||||
|         dtype: Literal["int"] | type_t[int | np.integer] = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Index[int]: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: Literal["int"] | type_t[int | np.integer], | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Index[int]: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Sequence[float | np.floating] | IndexOpsMixin[float] | np_ndarray_float, | ||||
|         *, | ||||
|         dtype: Literal["float"] | type_t[float | np.floating] = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Index[float]: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: Literal["float"] | type_t[float | np.floating], | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Index[float]: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: ( | ||||
|             Sequence[complex | np.complexfloating] | ||||
|             | IndexOpsMixin[complex] | ||||
|             | np_ndarray_complex | ||||
|         ), | ||||
|         *, | ||||
|         dtype: Literal["complex"] | type_t[complex | np.complexfloating] = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Index[complex]: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: Literal["complex"] | type_t[complex | np.complexfloating], | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Index[complex]: ... | ||||
|     # special overloads with dedicated Index-subclasses | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Sequence[np.datetime64 | datetime] | IndexOpsMixin[datetime], | ||||
|         *, | ||||
|         dtype: TimestampDtypeArg = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> DatetimeIndex: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: TimestampDtypeArg, | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> DatetimeIndex: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Sequence[Period] | IndexOpsMixin[Period], | ||||
|         *, | ||||
|         dtype: PeriodDtype = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> PeriodIndex: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: PeriodDtype, | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> PeriodIndex: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Sequence[np.timedelta64 | timedelta] | IndexOpsMixin[timedelta], | ||||
|         *, | ||||
|         dtype: TimedeltaDtypeArg = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> TimedeltaIndex: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: TimedeltaDtypeArg, | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> TimedeltaIndex: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Sequence[Interval[_OrderableT]] | IndexOpsMixin[Interval[_OrderableT]], | ||||
|         *, | ||||
|         dtype: Literal["Interval"] = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> IntervalIndex[Interval[_OrderableT]]: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: Literal["Interval"], | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> IntervalIndex[Interval[Any]]: ... | ||||
|     # generic overloads | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Iterable[S1] | IndexOpsMixin[S1], | ||||
|         *, | ||||
|         dtype: type[S1] = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Self: ... | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData = ..., | ||||
|         *, | ||||
|         dtype: type[S1], | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Self: ... | ||||
|     # fallback overload | ||||
|     @overload | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         *, | ||||
|         dtype: Dtype = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         tupleize_cols: bool = ..., | ||||
|     ) -> Self: ... | ||||
|     @property | ||||
|     def str( | ||||
|         self, | ||||
|     ) -> StringMethods[ | ||||
|         Self, | ||||
|         MultiIndex, | ||||
|         np_1darray[np.bool], | ||||
|         Index[list[_str]], | ||||
|         Index[int], | ||||
|         Index[bytes], | ||||
|         Index[_str], | ||||
|         Index, | ||||
|     ]: ... | ||||
|     @final | ||||
|     def is_(self, other) -> bool: ... | ||||
|     def __len__(self) -> int: ... | ||||
|     def __array__( | ||||
|         self, dtype: _str | np.dtype = ..., copy: bool | None = ... | ||||
|     ) -> np_1darray: ... | ||||
|     def __array_wrap__(self, result, context=...): ... | ||||
|     @property | ||||
|     def dtype(self) -> DtypeObj: ... | ||||
|     @final | ||||
|     def ravel(self, order: _str = ...): ... | ||||
|     def view(self, cls=...): ... | ||||
|     def astype(self, dtype: DtypeArg, copy: bool = True) -> Index: ... | ||||
|     def take( | ||||
|         self, | ||||
|         indices, | ||||
|         axis: int = 0, | ||||
|         allow_fill: bool = True, | ||||
|         fill_value: Scalar | None = None, | ||||
|         **kwargs, | ||||
|     ): ... | ||||
|     def repeat(self, repeats, axis=...): ... | ||||
|     def copy(self, name: Hashable = ..., deep: bool = False) -> Self: ... | ||||
|     @final | ||||
|     def __copy__(self, **kwargs): ... | ||||
|     @final | ||||
|     def __deepcopy__(self, memo=...): ... | ||||
|     def format( | ||||
|         self, name: bool = ..., formatter: Callable | None = ..., na_rep: _str = ... | ||||
|     ) -> list[_str]: ... | ||||
|     def to_flat_index(self): ... | ||||
|     def to_series(self, index=..., name: Hashable = ...) -> Series: ... | ||||
|     def to_frame(self, index: bool = True, name=...) -> DataFrame: ... | ||||
|     @property | ||||
|     def name(self) -> Hashable | None: ... | ||||
|     @name.setter | ||||
|     def name(self, value: Hashable) -> None: ... | ||||
|     @property | ||||
|     def names(self) -> list[Hashable | None]: ... | ||||
|     @names.setter | ||||
|     def names(self, names: SequenceNotStr[Hashable | None]) -> None: ... | ||||
|     def set_names(self, names, *, level=..., inplace: bool = ...): ... | ||||
|     @overload | ||||
|     def rename(self, name, *, inplace: Literal[False] = False) -> Self: ... | ||||
|     @overload | ||||
|     def rename(self, name, *, inplace: Literal[True]) -> None: ... | ||||
|     @property | ||||
|     def nlevels(self) -> int: ... | ||||
|     def get_level_values(self, level: int | _str) -> Index: ... | ||||
|     def droplevel(self, level: Level | list[Level] = 0): ... | ||||
|     @property | ||||
|     def is_monotonic_increasing(self) -> bool: ... | ||||
|     @property | ||||
|     def is_monotonic_decreasing(self) -> bool: ... | ||||
|     @property | ||||
|     def is_unique(self) -> bool: ... | ||||
|     @property | ||||
|     def has_duplicates(self) -> bool: ... | ||||
|     @property | ||||
|     def inferred_type(self) -> _str: ... | ||||
|     def __reduce__(self): ... | ||||
|     @property | ||||
|     def hasnans(self) -> bool: ... | ||||
|     @final | ||||
|     def isna(self): ... | ||||
|     isnull = ... | ||||
|     @final | ||||
|     def notna(self): ... | ||||
|     notnull = ... | ||||
|     def fillna(self, value=...): ... | ||||
|     def dropna(self, how: AnyAll = "any") -> Self: ... | ||||
|     def unique(self, level=...) -> Self: ... | ||||
|     def drop_duplicates(self, *, keep: DropKeep = ...) -> Self: ... | ||||
|     def duplicated(self, keep: DropKeep = "first") -> np_1darray[np.bool]: ... | ||||
|     def __and__(self, other: Never) -> Never: ... | ||||
|     def __rand__(self, other: Never) -> Never: ... | ||||
|     def __or__(self, other: Never) -> Never: ... | ||||
|     def __ror__(self, other: Never) -> Never: ... | ||||
|     def __xor__(self, other: Never) -> Never: ... | ||||
|     def __rxor__(self, other: Never) -> Never: ... | ||||
|     def __neg__(self) -> Self: ... | ||||
|     @final | ||||
|     def __nonzero__(self) -> None: ... | ||||
|     __bool__ = ... | ||||
|     def union( | ||||
|         self, other: list[HashableT] | Self, sort: bool | None = None | ||||
|     ) -> Index: ... | ||||
|     def intersection( | ||||
|         self, other: list[S1] | Self, sort: bool | None = False | ||||
|     ) -> Self: ... | ||||
|     def difference(self, other: list | Self, sort: bool | None = None) -> Self: ... | ||||
|     def symmetric_difference( | ||||
|         self, | ||||
|         other: list[S1] | Self, | ||||
|         result_name: Hashable = ..., | ||||
|         sort: bool | None = None, | ||||
|     ) -> Self: ... | ||||
|     def get_loc(self, key: Label) -> int | slice | np_1darray[np.bool]: ... | ||||
|     def get_indexer( | ||||
|         self, target, method: ReindexMethod | None = ..., limit=..., tolerance=... | ||||
|     ): ... | ||||
|     def reindex( | ||||
|         self, | ||||
|         target, | ||||
|         method: ReindexMethod | None = ..., | ||||
|         level=..., | ||||
|         limit=..., | ||||
|         tolerance=..., | ||||
|     ): ... | ||||
|     def join( | ||||
|         self, | ||||
|         other, | ||||
|         *, | ||||
|         how: _str = ..., | ||||
|         level=..., | ||||
|         return_indexers: bool = ..., | ||||
|         sort: bool = ..., | ||||
|     ): ... | ||||
|     @property | ||||
|     def values(self) -> np_1darray: ... | ||||
|     @property | ||||
|     def array(self) -> ExtensionArray: ... | ||||
|     def memory_usage(self, deep: bool = False): ... | ||||
|     def where(self, cond, other: Scalar | ArrayLike | None = None): ... | ||||
|     def __contains__(self, key) -> bool: ... | ||||
|     @final | ||||
|     def __setitem__(self, key, value) -> None: ... | ||||
|     @overload | ||||
|     def __getitem__( | ||||
|         self, | ||||
|         idx: slice | np_ndarray_anyint | Sequence[int] | Index | MaskType, | ||||
|     ) -> Self: ... | ||||
|     @overload | ||||
|     def __getitem__(self, idx: int | tuple[np_ndarray_anyint, ...]) -> S1: ... | ||||
|     @overload | ||||
|     def append( | ||||
|         self: Index[C2], other: Index[C2] | Sequence[Index[C2]] | ||||
|     ) -> Index[C2]: ... | ||||
|     @overload | ||||
|     def append(self, other: Index | Sequence[Index]) -> Index: ... | ||||
|     def putmask(self, mask, value): ... | ||||
|     def equals(self, other) -> bool: ... | ||||
|     @final | ||||
|     def identical(self, other) -> bool: ... | ||||
|     @final | ||||
|     def asof(self, label): ... | ||||
|     def asof_locs(self, where, mask): ... | ||||
|     def sort_values( | ||||
|         self, | ||||
|         *, | ||||
|         return_indexer: bool = ..., | ||||
|         ascending: bool = ..., | ||||
|         na_position: NaPosition = ..., | ||||
|         key: Callable[[Index], Index] | None = None, | ||||
|     ): ... | ||||
|     @final | ||||
|     def sort(self, *args, **kwargs) -> None: ... | ||||
|     def argsort(self, *args, **kwargs): ... | ||||
|     def get_indexer_non_unique(self, target): ... | ||||
|     @final | ||||
|     def get_indexer_for(self, target, **kwargs): ... | ||||
|     @final | ||||
|     def groupby(self, values) -> dict[Hashable, np.ndarray]: ... | ||||
|     def map(self, mapper, na_action=...) -> Index: ... | ||||
|     def isin(self, values, level=...) -> np_1darray[np.bool]: ... | ||||
|     def slice_indexer( | ||||
|         self, | ||||
|         start: Label | None = None, | ||||
|         end: Label | None = None, | ||||
|         step: int | None = None, | ||||
|     ): ... | ||||
|     def get_slice_bound(self, label, side): ... | ||||
|     def slice_locs( | ||||
|         self, start: SliceType = None, end: SliceType = None, step: int | None = None | ||||
|     ): ... | ||||
|     def delete(self, loc) -> Self: ... | ||||
|     def insert(self, loc, item) -> Self: ... | ||||
|     def drop(self, labels, errors: IgnoreRaise = "raise") -> Self: ... | ||||
|     @property | ||||
|     def shape(self) -> tuple[int, ...]: ... | ||||
|     # Extra methods from old stubs | ||||
|     def __eq__(self, other: object) -> np_1darray[np.bool]: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     def __iter__(self) -> Iterator[S1]: ... | ||||
|     def __ne__(self, other: object) -> np_1darray[np.bool]: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     def __le__(self, other: Self | S1) -> np_1darray[np.bool]: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     def __ge__(self, other: Self | S1) -> np_1darray[np.bool]: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     def __lt__(self, other: Self | S1) -> np_1darray[np.bool]: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     def __gt__(self, other: Self | S1) -> np_1darray[np.bool]: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     # overwrite inherited methods from OpsMixin | ||||
|     @overload | ||||
|     def __mul__( | ||||
|         self: Index[int] | Index[float], other: timedelta | ||||
|     ) -> TimedeltaIndex: ... | ||||
|     @overload | ||||
|     def __mul__(self, other: Any) -> Self: ... | ||||
|     def __floordiv__( | ||||
|         self, | ||||
|         other: ( | ||||
|             float | ||||
|             | IndexOpsMixin[int] | ||||
|             | IndexOpsMixin[float] | ||||
|             | Sequence[int] | ||||
|             | Sequence[float] | ||||
|         ), | ||||
|     ) -> Self: ... | ||||
|     def __rfloordiv__( | ||||
|         self, | ||||
|         other: ( | ||||
|             float | ||||
|             | IndexOpsMixin[int] | ||||
|             | IndexOpsMixin[float] | ||||
|             | Sequence[int] | ||||
|             | Sequence[float] | ||||
|         ), | ||||
|     ) -> Self: ... | ||||
|     def __truediv__( | ||||
|         self, | ||||
|         other: ( | ||||
|             float | ||||
|             | IndexOpsMixin[int] | ||||
|             | IndexOpsMixin[float] | ||||
|             | Sequence[int] | ||||
|             | Sequence[float] | ||||
|         ), | ||||
|     ) -> Self: ... | ||||
|     def __rtruediv__( | ||||
|         self, | ||||
|         other: ( | ||||
|             float | ||||
|             | IndexOpsMixin[int] | ||||
|             | IndexOpsMixin[float] | ||||
|             | Sequence[int] | ||||
|             | Sequence[float] | ||||
|         ), | ||||
|     ) -> Self: ... | ||||
|     def infer_objects(self, copy: bool = True) -> Self: ... | ||||
|  | ||||
| @type_check_only | ||||
| class _IndexSubclassBase(Index[S1], Generic[S1, GenericT_co]): | ||||
|     @overload | ||||
|     def to_numpy(  # pyrefly: ignore | ||||
|         self, | ||||
|         dtype: None = None, | ||||
|         copy: bool = False, | ||||
|         na_value: Scalar = ..., | ||||
|         **kwargs, | ||||
|     ) -> np_1darray[GenericT_co]: ... | ||||
|     @overload | ||||
|     def to_numpy( | ||||
|         self, | ||||
|         dtype: np.dtype[GenericT] | SupportsDType[GenericT] | type[GenericT], | ||||
|         copy: bool = False, | ||||
|         na_value: Scalar = ..., | ||||
|         **kwargs, | ||||
|     ) -> np_1darray[GenericT]: ... | ||||
|     @overload | ||||
|     def to_numpy( | ||||
|         self, | ||||
|         dtype: DTypeLike, | ||||
|         copy: bool = False, | ||||
|         na_value: Scalar = ..., | ||||
|         **kwargs, | ||||
|     ) -> np_1darray: ... | ||||
| @ -0,0 +1,53 @@ | ||||
| from collections.abc import ( | ||||
|     Hashable, | ||||
|     Iterable, | ||||
| ) | ||||
| from typing import ( | ||||
|     final, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| from pandas.core import accessor | ||||
| from pandas.core.indexes.base import Index | ||||
| from pandas.core.indexes.extension import ExtensionIndex | ||||
| from typing_extensions import Self | ||||
|  | ||||
| from pandas._typing import ( | ||||
|     S1, | ||||
|     DtypeArg, | ||||
| ) | ||||
|  | ||||
| class CategoricalIndex(ExtensionIndex[S1], accessor.PandasDelegate): | ||||
|     codes: np.ndarray = ... | ||||
|     categories: Index = ... | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Iterable[S1] = ..., | ||||
|         categories=..., | ||||
|         ordered=..., | ||||
|         dtype=..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|     ) -> Self: ... | ||||
|     def equals(self, other): ... | ||||
|     @property | ||||
|     def inferred_type(self) -> str: ... | ||||
|     @property | ||||
|     def values(self): ... | ||||
|     def __contains__(self, key) -> bool: ... | ||||
|     def __array__( | ||||
|         self, dtype: DtypeArg = ..., copy: bool | None = ... | ||||
|     ) -> np.ndarray: ... | ||||
|     @property | ||||
|     def is_unique(self) -> bool: ... | ||||
|     @property | ||||
|     def is_monotonic_increasing(self) -> bool: ... | ||||
|     @property | ||||
|     def is_monotonic_decreasing(self) -> bool: ... | ||||
|     def unique(self, level=...): ... | ||||
|     def reindex(self, target, method=..., level=..., limit=..., tolerance=...): ... | ||||
|     @final | ||||
|     def get_indexer(self, target, method=..., limit=..., tolerance=...): ... | ||||
|     def get_indexer_non_unique(self, target): ... | ||||
|     def delete(self, loc): ... | ||||
|     def insert(self, loc, item): ... | ||||
| @ -0,0 +1,40 @@ | ||||
| import numpy as np | ||||
| from pandas.core.indexes.extension import ExtensionIndex | ||||
| from pandas.core.indexes.timedeltas import TimedeltaIndex | ||||
| from typing_extensions import Self | ||||
|  | ||||
| from pandas._libs.tslibs import BaseOffset | ||||
| from pandas._typing import ( | ||||
|     S1, | ||||
|     AxisIndex, | ||||
|     GenericT_co, | ||||
|     TimeUnit, | ||||
| ) | ||||
|  | ||||
| class DatetimeIndexOpsMixin(ExtensionIndex[S1, GenericT_co]): | ||||
|     @property | ||||
|     def freq(self) -> BaseOffset | None: ... | ||||
|     @property | ||||
|     def freqstr(self) -> str | None: ... | ||||
|     @property | ||||
|     def is_all_dates(self) -> bool: ... | ||||
|     def min( | ||||
|         self, axis: AxisIndex | None = None, skipna: bool = True, *args, **kwargs | ||||
|     ) -> S1: ... | ||||
|     def argmin( | ||||
|         self, axis: AxisIndex | None = None, skipna: bool = True, *args, **kwargs | ||||
|     ) -> np.int64: ... | ||||
|     def max( | ||||
|         self, axis: AxisIndex | None = None, skipna: bool = True, *args, **kwargs | ||||
|     ) -> S1: ... | ||||
|     def argmax( | ||||
|         self, axis: AxisIndex | None = None, skipna: bool = True, *args, **kwargs | ||||
|     ) -> np.int64: ... | ||||
|     def __rsub__(  # type: ignore[override] | ||||
|         self, other: DatetimeIndexOpsMixin | ||||
|     ) -> TimedeltaIndex: ... | ||||
|  | ||||
| class DatetimeTimedeltaMixin(DatetimeIndexOpsMixin[S1, GenericT_co]): | ||||
|     @property | ||||
|     def unit(self) -> TimeUnit: ... | ||||
|     def as_unit(self, unit: TimeUnit) -> Self: ... | ||||
| @ -0,0 +1,177 @@ | ||||
| from collections.abc import ( | ||||
|     Hashable, | ||||
|     Sequence, | ||||
| ) | ||||
| from datetime import ( | ||||
|     datetime, | ||||
|     timedelta, | ||||
|     tzinfo as _tzinfo, | ||||
| ) | ||||
| from typing import ( | ||||
|     final, | ||||
|     overload, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| from pandas import ( | ||||
|     DataFrame, | ||||
|     Index, | ||||
|     Timedelta, | ||||
|     TimedeltaIndex, | ||||
|     Timestamp, | ||||
| ) | ||||
| from pandas.core.indexes.accessors import DatetimeIndexProperties | ||||
| from pandas.core.indexes.datetimelike import DatetimeTimedeltaMixin | ||||
| from pandas.core.series import ( | ||||
|     TimedeltaSeries, | ||||
|     TimestampSeries, | ||||
| ) | ||||
| from typing_extensions import Self | ||||
|  | ||||
| from pandas._libs.tslibs.offsets import DateOffset | ||||
| from pandas._typing import ( | ||||
|     AxesData, | ||||
|     DateAndDatetimeLike, | ||||
|     Dtype, | ||||
|     Frequency, | ||||
|     IntervalClosedType, | ||||
|     TimeUnit, | ||||
|     TimeZones, | ||||
| ) | ||||
|  | ||||
| from pandas.core.dtypes.dtypes import DatetimeTZDtype | ||||
|  | ||||
| from pandas.tseries.offsets import BaseOffset | ||||
|  | ||||
| class DatetimeIndex( | ||||
|     DatetimeTimedeltaMixin[Timestamp, np.datetime64], DatetimeIndexProperties | ||||
| ): | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData, | ||||
|         freq: Frequency = ..., | ||||
|         tz: TimeZones = ..., | ||||
|         ambiguous: str = ..., | ||||
|         dayfirst: bool = ..., | ||||
|         yearfirst: bool = ..., | ||||
|         dtype: Dtype = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|     ) -> Self: ... | ||||
|     def __reduce__(self): ... | ||||
|     # various ignores needed for mypy, as we do want to restrict what can be used in | ||||
|     # arithmetic for these types | ||||
|     @overload | ||||
|     def __add__(self, other: TimedeltaSeries) -> TimestampSeries: ... | ||||
|     @overload | ||||
|     def __add__( | ||||
|         self, other: timedelta | Timedelta | TimedeltaIndex | BaseOffset | ||||
|     ) -> DatetimeIndex: ... | ||||
|     @overload | ||||
|     def __sub__(self, other: TimedeltaSeries) -> TimestampSeries: ... | ||||
|     @overload | ||||
|     def __sub__( | ||||
|         self, other: timedelta | Timedelta | TimedeltaIndex | BaseOffset | ||||
|     ) -> DatetimeIndex: ... | ||||
|     @overload | ||||
|     def __sub__( | ||||
|         self, other: datetime | Timestamp | DatetimeIndex | ||||
|     ) -> TimedeltaIndex: ... | ||||
|     @final | ||||
|     def to_series(self, index=..., name: Hashable = ...) -> TimestampSeries: ... | ||||
|     def snap(self, freq: str = ...): ... | ||||
|     def slice_indexer(self, start=..., end=..., step=...): ... | ||||
|     def searchsorted(self, value, side: str = ..., sorter=...): ... | ||||
|     @property | ||||
|     def inferred_type(self) -> str: ... | ||||
|     def indexer_at_time(self, time, asof: bool = ...): ... | ||||
|     def indexer_between_time( | ||||
|         self, | ||||
|         start_time: datetime | str, | ||||
|         end_time: datetime | str, | ||||
|         include_start: bool = True, | ||||
|         include_end: bool = True, | ||||
|     ): ... | ||||
|     def to_julian_date(self) -> Index[float]: ... | ||||
|     def isocalendar(self) -> DataFrame: ... | ||||
|     @property | ||||
|     def tzinfo(self) -> _tzinfo | None: ... | ||||
|     @property | ||||
|     def dtype(self) -> np.dtype | DatetimeTZDtype: ... | ||||
|     def shift( | ||||
|         self, periods: int = 1, freq: DateOffset | Timedelta | str | None = None | ||||
|     ) -> Self: ... | ||||
|  | ||||
| @overload | ||||
| def date_range( | ||||
|     start: str | DateAndDatetimeLike, | ||||
|     end: str | DateAndDatetimeLike, | ||||
|     freq: str | timedelta | Timedelta | BaseOffset | None = None, | ||||
|     tz: TimeZones = None, | ||||
|     normalize: bool = False, | ||||
|     name: Hashable | None = None, | ||||
|     inclusive: IntervalClosedType = "both", | ||||
|     unit: TimeUnit | None = None, | ||||
| ) -> DatetimeIndex: ... | ||||
| @overload | ||||
| def date_range( | ||||
|     start: str | DateAndDatetimeLike, | ||||
|     end: str | DateAndDatetimeLike, | ||||
|     periods: int, | ||||
|     tz: TimeZones = None, | ||||
|     normalize: bool = False, | ||||
|     name: Hashable | None = None, | ||||
|     inclusive: IntervalClosedType = "both", | ||||
|     unit: TimeUnit | None = None, | ||||
| ) -> DatetimeIndex: ... | ||||
| @overload | ||||
| def date_range( | ||||
|     start: str | DateAndDatetimeLike, | ||||
|     *, | ||||
|     periods: int, | ||||
|     freq: str | timedelta | Timedelta | BaseOffset | None = None, | ||||
|     tz: TimeZones = None, | ||||
|     normalize: bool = False, | ||||
|     name: Hashable | None = None, | ||||
|     inclusive: IntervalClosedType = "both", | ||||
|     unit: TimeUnit | None = None, | ||||
| ) -> DatetimeIndex: ... | ||||
| @overload | ||||
| def date_range( | ||||
|     *, | ||||
|     end: str | DateAndDatetimeLike, | ||||
|     periods: int, | ||||
|     freq: str | timedelta | Timedelta | BaseOffset | None = None, | ||||
|     tz: TimeZones = None, | ||||
|     normalize: bool = False, | ||||
|     name: Hashable | None = None, | ||||
|     inclusive: IntervalClosedType = "both", | ||||
|     unit: TimeUnit | None = None, | ||||
| ) -> DatetimeIndex: ... | ||||
| @overload | ||||
| def bdate_range( | ||||
|     start: str | DateAndDatetimeLike | None = ..., | ||||
|     end: str | DateAndDatetimeLike | None = ..., | ||||
|     periods: int | None = ..., | ||||
|     freq: str | timedelta | Timedelta | BaseOffset = ..., | ||||
|     tz: TimeZones = ..., | ||||
|     normalize: bool = ..., | ||||
|     name: Hashable | None = ..., | ||||
|     weekmask: str | None = ..., | ||||
|     holidays: None = ..., | ||||
|     inclusive: IntervalClosedType = ..., | ||||
| ) -> DatetimeIndex: ... | ||||
| @overload | ||||
| def bdate_range( | ||||
|     start: str | DateAndDatetimeLike | None = ..., | ||||
|     end: str | DateAndDatetimeLike | None = ..., | ||||
|     periods: int | None = ..., | ||||
|     *, | ||||
|     freq: str | timedelta | Timedelta | BaseOffset, | ||||
|     tz: TimeZones = ..., | ||||
|     normalize: bool = ..., | ||||
|     name: Hashable | None = ..., | ||||
|     weekmask: str | None = ..., | ||||
|     holidays: Sequence[str | DateAndDatetimeLike], | ||||
|     inclusive: IntervalClosedType = ..., | ||||
| ) -> DatetimeIndex: ... | ||||
| @ -0,0 +1,8 @@ | ||||
| from pandas.core.indexes.base import _IndexSubclassBase | ||||
|  | ||||
| from pandas._typing import ( | ||||
|     S1, | ||||
|     GenericT_co, | ||||
| ) | ||||
|  | ||||
| class ExtensionIndex(_IndexSubclassBase[S1, GenericT_co]): ... | ||||
| @ -0,0 +1,9 @@ | ||||
| class FrozenList(list): | ||||
|     def union(self, other) -> FrozenList: ... | ||||
|     def difference(self, other) -> FrozenList: ... | ||||
|     def __getitem__(self, n): ... | ||||
|     def __radd__(self, other): ... | ||||
|     def __eq__(self, other) -> bool: ... | ||||
|     def __mul__(self, other): ... | ||||
|     def __reduce__(self): ... | ||||
|     def __hash__(self) -> int: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleVariableOverride] | ||||
| @ -0,0 +1,367 @@ | ||||
| from collections.abc import ( | ||||
|     Hashable, | ||||
|     Sequence, | ||||
| ) | ||||
| import datetime as dt | ||||
| from typing import ( | ||||
|     Literal, | ||||
|     final, | ||||
|     overload, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| import pandas as pd | ||||
| from pandas import Index | ||||
| from pandas.core.indexes.extension import ExtensionIndex | ||||
| from pandas.core.series import ( | ||||
|     TimedeltaSeries, | ||||
|     TimestampSeries, | ||||
| ) | ||||
| from typing_extensions import TypeAlias | ||||
|  | ||||
| from pandas._libs.interval import ( | ||||
|     Interval as Interval, | ||||
|     IntervalMixin, | ||||
| ) | ||||
| from pandas._libs.tslibs.offsets import BaseOffset | ||||
| from pandas._typing import ( | ||||
|     DatetimeLike, | ||||
|     DtypeArg, | ||||
|     FillnaOptions, | ||||
|     IntervalClosedType, | ||||
|     IntervalT, | ||||
|     Label, | ||||
|     MaskType, | ||||
|     np_1darray, | ||||
|     np_ndarray_anyint, | ||||
|     np_ndarray_bool, | ||||
|     npt, | ||||
| ) | ||||
|  | ||||
| from pandas.core.dtypes.dtypes import IntervalDtype as IntervalDtype | ||||
|  | ||||
| _EdgesInt: TypeAlias = ( | ||||
|     Sequence[int] | ||||
|     | npt.NDArray[np.int64] | ||||
|     | npt.NDArray[np.int32] | ||||
|     | npt.NDArray[np.intp] | ||||
|     | pd.Series[int] | ||||
|     | Index[int] | ||||
| ) | ||||
| _EdgesFloat: TypeAlias = ( | ||||
|     Sequence[float] | npt.NDArray[np.float64] | pd.Series[float] | Index[float] | ||||
| ) | ||||
| _EdgesTimestamp: TypeAlias = ( | ||||
|     Sequence[DatetimeLike] | ||||
|     | npt.NDArray[np.datetime64] | ||||
|     | TimestampSeries | ||||
|     | pd.DatetimeIndex | ||||
| ) | ||||
| _EdgesTimedelta: TypeAlias = ( | ||||
|     Sequence[pd.Timedelta] | ||||
|     | npt.NDArray[np.timedelta64] | ||||
|     | TimedeltaSeries | ||||
|     | pd.TimedeltaIndex | ||||
| ) | ||||
| _TimestampLike: TypeAlias = pd.Timestamp | np.datetime64 | dt.datetime | ||||
| _TimedeltaLike: TypeAlias = pd.Timedelta | np.timedelta64 | dt.timedelta | ||||
|  | ||||
| class IntervalIndex(ExtensionIndex[IntervalT, np.object_], IntervalMixin): | ||||
|     closed: IntervalClosedType | ||||
|  | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: Sequence[IntervalT], | ||||
|         closed: IntervalClosedType = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|         verify_integrity: bool = ..., | ||||
|     ) -> IntervalIndex[IntervalT]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_breaks(  # pyright: ignore[reportOverlappingOverload] | ||||
|         cls, | ||||
|         breaks: _EdgesInt, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[int]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_breaks( | ||||
|         cls, | ||||
|         breaks: _EdgesFloat, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[float]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_breaks( | ||||
|         cls, | ||||
|         breaks: _EdgesTimestamp, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[pd.Timestamp]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_breaks( | ||||
|         cls, | ||||
|         breaks: _EdgesTimedelta, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[pd.Timedelta]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_arrays(  # pyright: ignore[reportOverlappingOverload] | ||||
|         cls, | ||||
|         left: _EdgesInt, | ||||
|         right: _EdgesInt, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[int]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_arrays( | ||||
|         cls, | ||||
|         left: _EdgesFloat, | ||||
|         right: _EdgesFloat, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[float]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_arrays( | ||||
|         cls, | ||||
|         left: _EdgesTimestamp, | ||||
|         right: _EdgesTimestamp, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[pd.Timestamp]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_arrays( | ||||
|         cls, | ||||
|         left: _EdgesTimedelta, | ||||
|         right: _EdgesTimedelta, | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[Interval[pd.Timedelta]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_tuples(  # pyright: ignore[reportOverlappingOverload] | ||||
|         cls, | ||||
|         data: Sequence[tuple[int, int]], | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[pd.Interval[int]]: ... | ||||
|     # Ignore misc here due to intentional overlap between int and float | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_tuples( | ||||
|         cls, | ||||
|         data: Sequence[tuple[float, float]], | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[pd.Interval[float]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_tuples( | ||||
|         cls, | ||||
|         data: Sequence[ | ||||
|             tuple[pd.Timestamp, pd.Timestamp] | ||||
|             | tuple[dt.datetime, dt.datetime] | ||||
|             | tuple[np.datetime64, np.datetime64] | ||||
|         ], | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[pd.Interval[pd.Timestamp]]: ... | ||||
|     @overload | ||||
|     @classmethod | ||||
|     def from_tuples( | ||||
|         cls, | ||||
|         data: Sequence[ | ||||
|             tuple[pd.Timedelta, pd.Timedelta] | ||||
|             | tuple[dt.timedelta, dt.timedelta] | ||||
|             | tuple[np.timedelta64, np.timedelta64] | ||||
|         ], | ||||
|         closed: IntervalClosedType = ..., | ||||
|         name: Hashable = ..., | ||||
|         copy: bool = ..., | ||||
|         dtype: IntervalDtype | None = ..., | ||||
|     ) -> IntervalIndex[pd.Interval[pd.Timedelta]]: ... | ||||
|     def to_tuples(self, na_tuple: bool = True) -> pd.Index: ... | ||||
|     @overload | ||||
|     def __contains__(self, key: IntervalT) -> bool: ...  # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] | ||||
|     @overload | ||||
|     def __contains__(self, key: object) -> Literal[False]: ... | ||||
|     def astype(self, dtype: DtypeArg, copy: bool = True) -> IntervalIndex: ... | ||||
|     @property | ||||
|     def inferred_type(self) -> str: ... | ||||
|     def memory_usage(self, deep: bool = False) -> int: ... | ||||
|     @property | ||||
|     def is_overlapping(self) -> bool: ... | ||||
|     def get_loc(self, key: Label) -> int | slice | np_1darray[np.bool]: ... | ||||
|     @final | ||||
|     def get_indexer( | ||||
|         self, | ||||
|         target: Index, | ||||
|         method: FillnaOptions | Literal["nearest"] | None = ..., | ||||
|         limit: int | None = ..., | ||||
|         tolerance=..., | ||||
|     ) -> npt.NDArray[np.intp]: ... | ||||
|     def get_indexer_non_unique( | ||||
|         self, target: Index | ||||
|     ) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]]: ... | ||||
|     @property | ||||
|     def left(self) -> Index: ... | ||||
|     @property | ||||
|     def right(self) -> Index: ... | ||||
|     @property | ||||
|     def mid(self) -> Index: ... | ||||
|     @property | ||||
|     def length(self) -> Index: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __getitem__( | ||||
|         self, | ||||
|         idx: ( | ||||
|             slice | ||||
|             | np_ndarray_anyint | ||||
|             | Sequence[int] | ||||
|             | Index | ||||
|             | MaskType | ||||
|             | np_ndarray_bool | ||||
|         ), | ||||
|     ) -> IntervalIndex[IntervalT]: ... | ||||
|     @overload | ||||
|     def __getitem__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, idx: int | ||||
|     ) -> IntervalT: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __gt__( | ||||
|         self, other: IntervalT | IntervalIndex[IntervalT] | ||||
|     ) -> np_1darray[np.bool]: ... | ||||
|     @overload | ||||
|     def __gt__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: pd.Series[IntervalT] | ||||
|     ) -> pd.Series[bool]: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __ge__( | ||||
|         self, other: IntervalT | IntervalIndex[IntervalT] | ||||
|     ) -> np_1darray[np.bool]: ... | ||||
|     @overload | ||||
|     def __ge__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: pd.Series[IntervalT] | ||||
|     ) -> pd.Series[bool]: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __le__( | ||||
|         self, other: IntervalT | IntervalIndex[IntervalT] | ||||
|     ) -> np_1darray[np.bool]: ... | ||||
|     @overload | ||||
|     def __le__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: pd.Series[IntervalT] | ||||
|     ) -> pd.Series[bool]: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __lt__( | ||||
|         self, other: IntervalT | IntervalIndex[IntervalT] | ||||
|     ) -> np_1darray[np.bool]: ... | ||||
|     @overload | ||||
|     def __lt__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: pd.Series[IntervalT] | ||||
|     ) -> pd.Series[bool]: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __eq__(self, other: IntervalT | IntervalIndex[IntervalT]) -> np_1darray[np.bool]: ...  # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] | ||||
|     @overload | ||||
|     def __eq__(self, other: pd.Series[IntervalT]) -> pd.Series[bool]: ...  # type: ignore[overload-overlap] | ||||
|     @overload | ||||
|     def __eq__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: object | ||||
|     ) -> Literal[False]: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __ne__(self, other: IntervalT | IntervalIndex[IntervalT]) -> np_1darray[np.bool]: ...  # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] | ||||
|     @overload | ||||
|     def __ne__(self, other: pd.Series[IntervalT]) -> pd.Series[bool]: ...  # type: ignore[overload-overlap] | ||||
|     @overload | ||||
|     def __ne__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: object | ||||
|     ) -> Literal[True]: ... | ||||
|  | ||||
| # misc here because int and float overlap but interval has distinct types | ||||
| # int gets hit first and so the correct type is returned | ||||
| @overload | ||||
| def interval_range(  # pyright: ignore[reportOverlappingOverload] | ||||
|     start: int | None = ..., | ||||
|     end: int | None = ..., | ||||
|     periods: int | None = ..., | ||||
|     freq: int | None = ..., | ||||
|     name: Hashable = ..., | ||||
|     closed: IntervalClosedType = ..., | ||||
| ) -> IntervalIndex[Interval[int]]: ... | ||||
| @overload | ||||
| def interval_range( | ||||
|     start: float | None = ..., | ||||
|     end: float | None = ..., | ||||
|     periods: int | None = ..., | ||||
|     freq: int | None = ..., | ||||
|     name: Hashable = ..., | ||||
|     closed: IntervalClosedType = ..., | ||||
| ) -> IntervalIndex[Interval[float]]: ... | ||||
| @overload | ||||
| def interval_range( | ||||
|     start: _TimestampLike, | ||||
|     end: _TimestampLike | None = ..., | ||||
|     periods: int | None = ..., | ||||
|     freq: str | BaseOffset | pd.Timedelta | dt.timedelta | None = ..., | ||||
|     name: Hashable = ..., | ||||
|     closed: IntervalClosedType = ..., | ||||
| ) -> IntervalIndex[Interval[pd.Timestamp]]: ... | ||||
| @overload | ||||
| def interval_range( | ||||
|     *, | ||||
|     start: None = ..., | ||||
|     end: _TimestampLike, | ||||
|     periods: int | None = ..., | ||||
|     freq: str | BaseOffset | pd.Timedelta | dt.timedelta | None = ..., | ||||
|     name: Hashable = ..., | ||||
|     closed: IntervalClosedType = ..., | ||||
| ) -> IntervalIndex[Interval[pd.Timestamp]]: ... | ||||
| @overload | ||||
| def interval_range( | ||||
|     start: _TimedeltaLike, | ||||
|     end: _TimedeltaLike | None = ..., | ||||
|     periods: int | None = ..., | ||||
|     freq: str | BaseOffset | pd.Timedelta | dt.timedelta | None = ..., | ||||
|     name: Hashable = ..., | ||||
|     closed: IntervalClosedType = ..., | ||||
| ) -> IntervalIndex[Interval[pd.Timedelta]]: ... | ||||
| @overload | ||||
| def interval_range( | ||||
|     *, | ||||
|     start: None = ..., | ||||
|     end: _TimedeltaLike, | ||||
|     periods: int | None = ..., | ||||
|     freq: str | BaseOffset | pd.Timedelta | dt.timedelta | None = ..., | ||||
|     name: Hashable = ..., | ||||
|     closed: IntervalClosedType = ..., | ||||
| ) -> IntervalIndex[Interval[pd.Timedelta]]: ... | ||||
							
								
								
									
										164
									
								
								lib/python3.11/site-packages/pandas-stubs/core/indexes/multi.pyi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								lib/python3.11/site-packages/pandas-stubs/core/indexes/multi.pyi
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,164 @@ | ||||
| from collections.abc import ( | ||||
|     Callable, | ||||
|     Hashable, | ||||
|     Iterable, | ||||
|     Sequence, | ||||
| ) | ||||
| from typing import ( | ||||
|     final, | ||||
|     overload, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| import pandas as pd | ||||
| from pandas.core.indexes.base import Index | ||||
| from typing_extensions import Self | ||||
|  | ||||
| from pandas._typing import ( | ||||
|     AnyAll, | ||||
|     Axes, | ||||
|     DropKeep, | ||||
|     Dtype, | ||||
|     HashableT, | ||||
|     IndexLabel, | ||||
|     Level, | ||||
|     MaskType, | ||||
|     NaPosition, | ||||
|     SequenceNotStr, | ||||
|     np_1darray, | ||||
|     np_ndarray_anyint, | ||||
| ) | ||||
|  | ||||
| class MultiIndex(Index): | ||||
|     def __new__( | ||||
|         cls, | ||||
|         levels: Sequence[SequenceNotStr[Hashable]] = ..., | ||||
|         codes: Sequence[Sequence[int]] = ..., | ||||
|         sortorder: int | None = ..., | ||||
|         names: SequenceNotStr[Hashable] = ..., | ||||
|         copy: bool = ..., | ||||
|         name: SequenceNotStr[Hashable] = ..., | ||||
|         verify_integrity: bool = ..., | ||||
|     ) -> Self: ... | ||||
|     @classmethod | ||||
|     def from_arrays( | ||||
|         cls, | ||||
|         arrays: Sequence[Axes], | ||||
|         sortorder: int | None = ..., | ||||
|         names: SequenceNotStr[Hashable] = ..., | ||||
|     ) -> Self: ... | ||||
|     @classmethod | ||||
|     def from_tuples( | ||||
|         cls, | ||||
|         tuples: Iterable[tuple[Hashable, ...]], | ||||
|         sortorder: int | None = ..., | ||||
|         names: SequenceNotStr[Hashable] = ..., | ||||
|     ) -> Self: ... | ||||
|     @classmethod | ||||
|     def from_product( | ||||
|         cls, | ||||
|         iterables: Sequence[SequenceNotStr[Hashable] | pd.Series | pd.Index | range], | ||||
|         sortorder: int | None = ..., | ||||
|         names: SequenceNotStr[Hashable] = ..., | ||||
|     ) -> Self: ... | ||||
|     @classmethod | ||||
|     def from_frame( | ||||
|         cls, | ||||
|         df: pd.DataFrame, | ||||
|         sortorder: int | None = ..., | ||||
|         names: SequenceNotStr[Hashable] = ..., | ||||
|     ) -> Self: ... | ||||
|     @property | ||||
|     def shape(self): ... | ||||
|     @property  # Should be read-only | ||||
|     def levels(self) -> list[Index]: ... | ||||
|     def set_levels(self, levels, *, level=..., verify_integrity: bool = ...): ... | ||||
|     @property | ||||
|     def codes(self): ... | ||||
|     def set_codes(self, codes, *, level=..., verify_integrity: bool = ...): ... | ||||
|     def copy(  # type: ignore[override]  # pyright: ignore[reportIncompatibleMethodOverride] # pyrefly: ignore | ||||
|         self, names: SequenceNotStr[Hashable] = ..., deep: bool = False | ||||
|     ) -> Self: ... | ||||
|     def view(self, cls=...): ... | ||||
|     def __contains__(self, key) -> bool: ... | ||||
|     @property | ||||
|     def dtype(self) -> np.dtype: ... | ||||
|     @property | ||||
|     def dtypes(self) -> pd.Series[Dtype]: ... | ||||
|     def memory_usage(self, deep: bool = False) -> int: ... | ||||
|     @property | ||||
|     def nbytes(self) -> int: ... | ||||
|     def format( | ||||
|         self, | ||||
|         name: bool | None = ..., | ||||
|         formatter: Callable | None = ..., | ||||
|         na_rep: str | None = ..., | ||||
|         names: bool = ..., | ||||
|         space: int = ..., | ||||
|         sparsify: bool | None = ..., | ||||
|         adjoin: bool = ..., | ||||
|     ) -> list: ... | ||||
|     def __len__(self) -> int: ... | ||||
|     @property | ||||
|     def values(self): ... | ||||
|     @property | ||||
|     def is_monotonic_increasing(self) -> bool: ... | ||||
|     @property | ||||
|     def is_monotonic_decreasing(self) -> bool: ... | ||||
|     def duplicated(self, keep: DropKeep = "first"): ... | ||||
|     def dropna(self, how: AnyAll = "any") -> Self: ... | ||||
|     def get_level_values(self, level: str | int) -> Index: ... | ||||
|     def unique(self, level=...): ... | ||||
|     def to_frame(  # pyrefly: ignore | ||||
|         self, | ||||
|         index: bool = True, | ||||
|         name: list[HashableT] = ..., | ||||
|         allow_duplicates: bool = False, | ||||
|     ) -> pd.DataFrame: ... | ||||
|     def to_flat_index(self): ... | ||||
|     def remove_unused_levels(self): ... | ||||
|     @property | ||||
|     def nlevels(self) -> int: ... | ||||
|     @property | ||||
|     def levshape(self): ... | ||||
|     def __reduce__(self): ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __getitem__( | ||||
|         self, | ||||
|         idx: slice | np_ndarray_anyint | Sequence[int] | Index | MaskType, | ||||
|     ) -> Self: ... | ||||
|     @overload | ||||
|     def __getitem__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, key: int | ||||
|     ) -> tuple: ... | ||||
|     def append(self, other): ...  # pyrefly: ignore | ||||
|     def repeat(self, repeats, axis=...): ... | ||||
|     def drop(self, codes, level: Level | None = None, errors: str = "raise") -> Self: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     def swaplevel(self, i: int = -2, j: int = -1): ... | ||||
|     def reorder_levels(self, order): ... | ||||
|     def sortlevel( | ||||
|         self, | ||||
|         level: Level | Sequence[Level] = 0, | ||||
|         ascending: bool = True, | ||||
|         sort_remaining: bool = True, | ||||
|         na_position: NaPosition = "first", | ||||
|     ): ... | ||||
|     @final | ||||
|     def get_indexer(self, target, method=..., limit=..., tolerance=...): ... | ||||
|     def get_indexer_non_unique(self, target): ... | ||||
|     def reindex(self, target, method=..., level=..., limit=..., tolerance=...): ... | ||||
|     def get_slice_bound( | ||||
|         self, label: Hashable | Sequence[Hashable], side: str | ||||
|     ) -> int: ... | ||||
|     def get_loc_level( | ||||
|         self, key, level: Level | list[Level] | None = None, drop_level: bool = True | ||||
|     ): ... | ||||
|     def get_locs(self, seq): ... | ||||
|     def truncate( | ||||
|         self, before: IndexLabel | None = None, after: IndexLabel | None = None | ||||
|     ): ... | ||||
|     def equals(self, other) -> bool: ... | ||||
|     def equal_levels(self, other): ... | ||||
|     def insert(self, loc, item): ... | ||||
|     def delete(self, loc): ... | ||||
|     def isin(self, values, level=...) -> np_1darray[np.bool]: ... | ||||
| @ -0,0 +1,80 @@ | ||||
| from collections.abc import Hashable | ||||
| import datetime | ||||
| from typing import ( | ||||
|     Any, | ||||
|     overload, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| import pandas as pd | ||||
| from pandas import Index | ||||
| from pandas.core.indexes.accessors import PeriodIndexFieldOps | ||||
| from pandas.core.indexes.datetimelike import DatetimeIndexOpsMixin | ||||
| from pandas.core.indexes.timedeltas import TimedeltaIndex | ||||
| from typing_extensions import Self | ||||
|  | ||||
| from pandas._libs.tslibs import ( | ||||
|     NaTType, | ||||
|     Period, | ||||
| ) | ||||
| from pandas._libs.tslibs.period import _PeriodAddSub | ||||
| from pandas._typing import ( | ||||
|     AxesData, | ||||
|     Dtype, | ||||
|     Frequency, | ||||
|     np_1darray, | ||||
| ) | ||||
|  | ||||
| class PeriodIndex(DatetimeIndexOpsMixin[pd.Period, np.object_], PeriodIndexFieldOps): | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: AxesData[Any] | None = None, | ||||
|         freq: Frequency | None = None, | ||||
|         dtype: Dtype | None = None, | ||||
|         copy: bool = False, | ||||
|         name: Hashable | None = None, | ||||
|     ) -> Self: ... | ||||
|     @property | ||||
|     def values(self) -> np_1darray[np.object_]: ... | ||||
|     @overload | ||||
|     def __sub__(self, other: Period) -> Index: ... | ||||
|     @overload | ||||
|     def __sub__(self, other: Self) -> Index: ... | ||||
|     @overload | ||||
|     def __sub__(self, other: _PeriodAddSub) -> Self: ... | ||||
|     @overload | ||||
|     def __sub__(self, other: NaTType) -> NaTType: ... | ||||
|     @overload | ||||
|     def __sub__(self, other: TimedeltaIndex | pd.Timedelta) -> Self: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __rsub__(self, other: Period) -> Index: ... | ||||
|     @overload | ||||
|     def __rsub__(self, other: Self) -> Index: ... | ||||
|     @overload | ||||
|     def __rsub__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: NaTType | ||||
|     ) -> NaTType: ... | ||||
|     def asof_locs( | ||||
|         self, | ||||
|         where: pd.DatetimeIndex | PeriodIndex, | ||||
|         mask: np_1darray[np.bool_], | ||||
|     ) -> np_1darray[np.intp]: ... | ||||
|     @property | ||||
|     def is_full(self) -> bool: ... | ||||
|     @property | ||||
|     def inferred_type(self) -> str: ... | ||||
|     @property | ||||
|     def freqstr(self) -> str: ... | ||||
|     def shift(self, periods: int = 1, freq: Frequency | None = None) -> Self: ... | ||||
|  | ||||
| def period_range( | ||||
|     start: ( | ||||
|         str | datetime.datetime | datetime.date | pd.Timestamp | pd.Period | None | ||||
|     ) = None, | ||||
|     end: ( | ||||
|         str | datetime.datetime | datetime.date | pd.Timestamp | pd.Period | None | ||||
|     ) = None, | ||||
|     periods: int | None = None, | ||||
|     freq: Frequency | None = None, | ||||
|     name: Hashable | None = None, | ||||
| ) -> PeriodIndex: ... | ||||
| @ -0,0 +1,94 @@ | ||||
| from collections.abc import ( | ||||
|     Hashable, | ||||
|     Sequence, | ||||
| ) | ||||
| from typing import ( | ||||
|     final, | ||||
|     overload, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| from pandas.core.indexes.base import ( | ||||
|     Index, | ||||
|     _IndexSubclassBase, | ||||
| ) | ||||
|  | ||||
| from pandas._typing import ( | ||||
|     HashableT, | ||||
|     MaskType, | ||||
|     np_1darray, | ||||
|     np_ndarray_anyint, | ||||
| ) | ||||
|  | ||||
| class RangeIndex(_IndexSubclassBase[int, np.int64]): | ||||
|     def __new__( | ||||
|         cls, | ||||
|         start: int | RangeIndex | range = ..., | ||||
|         stop: int = ..., | ||||
|         step: int = ..., | ||||
|         dtype=..., | ||||
|         copy: bool = ..., | ||||
|         name: Hashable = ..., | ||||
|     ): ... | ||||
|     @classmethod | ||||
|     def from_range(cls, data, name: Hashable = ..., dtype=...): ... | ||||
|     def __reduce__(self): ... | ||||
|     @property | ||||
|     def start(self) -> int: ... | ||||
|     @property | ||||
|     def stop(self) -> int: ... | ||||
|     @property | ||||
|     def step(self) -> int: ... | ||||
|     @property | ||||
|     def nbytes(self) -> int: ... | ||||
|     def memory_usage(self, deep: bool = ...) -> int: ... | ||||
|     @property | ||||
|     def dtype(self) -> np.dtype: ... | ||||
|     @property | ||||
|     def is_unique(self) -> bool: ... | ||||
|     @property | ||||
|     def is_monotonic_increasing(self) -> bool: ... | ||||
|     @property | ||||
|     def is_monotonic_decreasing(self) -> bool: ... | ||||
|     @property | ||||
|     def has_duplicates(self) -> bool: ... | ||||
|     def __contains__(self, key: int | np.integer) -> bool: ... | ||||
|     @final | ||||
|     def get_indexer(self, target, method=..., limit=..., tolerance=...): ... | ||||
|     def tolist(self): ... | ||||
|     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 = False, use_na_sentinel: bool = True | ||||
|     ) -> tuple[np_1darray[np.intp], RangeIndex]: ... | ||||
|     def equals(self, other): ... | ||||
|     @final | ||||
|     def join( | ||||
|         self, | ||||
|         other, | ||||
|         *, | ||||
|         how: str = ..., | ||||
|         level=..., | ||||
|         return_indexers: bool = ..., | ||||
|         sort: bool = ..., | ||||
|     ): ... | ||||
|     def __len__(self) -> int: ... | ||||
|     @property | ||||
|     def size(self) -> int: ... | ||||
|     def __floordiv__(self, other): ... | ||||
|     def all(self, *args, **kwargs) -> bool: ... | ||||
|     def any(self, *args, **kwargs) -> bool: ... | ||||
|     @final | ||||
|     def union(  # pyrefly: ignore | ||||
|         self, other: list[HashableT] | Index, sort: bool | None = None | ||||
|     ) -> Index | Index[int] | RangeIndex: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __getitem__( | ||||
|         self, | ||||
|         idx: slice | np_ndarray_anyint | Sequence[int] | Index | MaskType, | ||||
|     ) -> Index: ... | ||||
|     @overload | ||||
|     def __getitem__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, idx: int | ||||
|     ) -> int: ... | ||||
| @ -0,0 +1,121 @@ | ||||
| from collections.abc import ( | ||||
|     Hashable, | ||||
|     Sequence, | ||||
| ) | ||||
| import datetime as dt | ||||
| from typing import ( | ||||
|     Literal, | ||||
|     final, | ||||
|     overload, | ||||
| ) | ||||
|  | ||||
| import numpy as np | ||||
| from pandas import ( | ||||
|     DateOffset, | ||||
|     Index, | ||||
|     Period, | ||||
| ) | ||||
| from pandas.core.indexes.accessors import TimedeltaIndexProperties | ||||
| from pandas.core.indexes.datetimelike import DatetimeTimedeltaMixin | ||||
| from pandas.core.indexes.datetimes import DatetimeIndex | ||||
| from pandas.core.indexes.period import PeriodIndex | ||||
| from pandas.core.series import TimedeltaSeries | ||||
| from typing_extensions import Self | ||||
|  | ||||
| from pandas._libs import ( | ||||
|     Timedelta, | ||||
|     Timestamp, | ||||
| ) | ||||
| from pandas._libs.tslibs import BaseOffset | ||||
| from pandas._typing import ( | ||||
|     AxesData, | ||||
|     TimedeltaConvertibleTypes, | ||||
|     num, | ||||
| ) | ||||
|  | ||||
| class TimedeltaIndex( | ||||
|     DatetimeTimedeltaMixin[Timedelta, np.timedelta64], TimedeltaIndexProperties | ||||
| ): | ||||
|     def __new__( | ||||
|         cls, | ||||
|         data: ( | ||||
|             Sequence[dt.timedelta | Timedelta | np.timedelta64 | float] | AxesData | ||||
|         ) = ..., | ||||
|         freq: str | BaseOffset = ..., | ||||
|         closed: object = ..., | ||||
|         dtype: Literal["<m8[ns]"] = ..., | ||||
|         copy: bool = ..., | ||||
|         name: str = ..., | ||||
|     ) -> Self: ... | ||||
|     # various ignores needed for mypy, as we do want to restrict what can be used in | ||||
|     # arithmetic for these types | ||||
|     @overload | ||||
|     def __add__(self, other: Period) -> PeriodIndex: ... | ||||
|     @overload | ||||
|     def __add__(self, other: DatetimeIndex) -> DatetimeIndex: ... | ||||
|     @overload | ||||
|     def __add__(self, other: dt.timedelta | Timedelta | Self) -> Self: ... | ||||
|     def __radd__(self, other: dt.datetime | Timestamp | DatetimeIndex) -> DatetimeIndex: ...  # type: ignore[override] | ||||
|     def __sub__(self, other: dt.timedelta | Timedelta | Self) -> Self: ... | ||||
|     def __mul__(self, other: num) -> Self: ... | ||||
|     @overload  # type: ignore[override] | ||||
|     def __truediv__(self, other: num | Sequence[float]) -> Self: ... | ||||
|     @overload | ||||
|     def __truediv__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: dt.timedelta | Sequence[dt.timedelta] | ||||
|     ) -> Index[float]: ... | ||||
|     def __rtruediv__(self, other: dt.timedelta | Sequence[dt.timedelta]) -> Index[float]: ...  # type: ignore[override]  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     @overload  # type: ignore[override] | ||||
|     def __floordiv__(self, other: num | Sequence[float]) -> Self: ... | ||||
|     @overload | ||||
|     def __floordiv__(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, other: dt.timedelta | Sequence[dt.timedelta] | ||||
|     ) -> Index[int]: ... | ||||
|     def __rfloordiv__(self, other: dt.timedelta | Sequence[dt.timedelta]) -> Index[int]: ...  # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|     def searchsorted(self, value, side: str = ..., sorter=...): ... | ||||
|     @property | ||||
|     def inferred_type(self) -> str: ... | ||||
|     @final | ||||
|     def to_series(self, index=..., name: Hashable = ...) -> TimedeltaSeries: ... | ||||
|     def shift(self, periods: int = 1, freq=...) -> Self: ... | ||||
|  | ||||
| @overload | ||||
| def timedelta_range( | ||||
|     start: TimedeltaConvertibleTypes, | ||||
|     end: TimedeltaConvertibleTypes, | ||||
|     *, | ||||
|     freq: str | DateOffset | Timedelta | dt.timedelta | None = None, | ||||
|     name: Hashable | None = None, | ||||
|     closed: Literal["left", "right"] | None = None, | ||||
|     unit: None | str = ..., | ||||
| ) -> TimedeltaIndex: ... | ||||
| @overload | ||||
| def timedelta_range( | ||||
|     *, | ||||
|     end: TimedeltaConvertibleTypes, | ||||
|     periods: int, | ||||
|     freq: str | DateOffset | Timedelta | dt.timedelta | None = None, | ||||
|     name: Hashable | None = None, | ||||
|     closed: Literal["left", "right"] | None = None, | ||||
|     unit: None | str = ..., | ||||
| ) -> TimedeltaIndex: ... | ||||
| @overload | ||||
| def timedelta_range( | ||||
|     start: TimedeltaConvertibleTypes, | ||||
|     *, | ||||
|     periods: int, | ||||
|     freq: str | DateOffset | Timedelta | dt.timedelta | None = None, | ||||
|     name: Hashable | None = None, | ||||
|     closed: Literal["left", "right"] | None = None, | ||||
|     unit: None | str = ..., | ||||
| ) -> TimedeltaIndex: ... | ||||
| @overload | ||||
| def timedelta_range( | ||||
|     start: TimedeltaConvertibleTypes, | ||||
|     end: TimedeltaConvertibleTypes, | ||||
|     periods: int, | ||||
|     *, | ||||
|     name: Hashable | None = None, | ||||
|     closed: Literal["left", "right"] | None = None, | ||||
|     unit: None | str = ..., | ||||
| ) -> TimedeltaIndex: ... | ||||
		Reference in New Issue
	
	Block a user