You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			288 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			288 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Python
		
	
from datetime import (
 | 
						|
    datetime,
 | 
						|
    time,
 | 
						|
    timedelta,
 | 
						|
)
 | 
						|
from typing import (
 | 
						|
    Any,
 | 
						|
    Collection,
 | 
						|
    Literal,
 | 
						|
    TypeVar,
 | 
						|
    overload,
 | 
						|
)
 | 
						|
 | 
						|
import numpy as np
 | 
						|
 | 
						|
from pandas._libs.tslibs.nattype import NaTType
 | 
						|
from pandas._typing import (
 | 
						|
    OffsetCalendar,
 | 
						|
    Self,
 | 
						|
    npt,
 | 
						|
)
 | 
						|
 | 
						|
from .timedeltas import Timedelta
 | 
						|
 | 
						|
_BaseOffsetT = TypeVar("_BaseOffsetT", bound=BaseOffset)
 | 
						|
_DatetimeT = TypeVar("_DatetimeT", bound=datetime)
 | 
						|
_TimedeltaT = TypeVar("_TimedeltaT", bound=timedelta)
 | 
						|
 | 
						|
_relativedelta_kwds: set[str]
 | 
						|
prefix_mapping: dict[str, type]
 | 
						|
 | 
						|
class ApplyTypeError(TypeError): ...
 | 
						|
 | 
						|
class BaseOffset:
 | 
						|
    n: int
 | 
						|
    normalize: bool
 | 
						|
    def __init__(self, n: int = ..., normalize: bool = ...) -> None: ...
 | 
						|
    def __eq__(self, other) -> bool: ...
 | 
						|
    def __ne__(self, other) -> bool: ...
 | 
						|
    def __hash__(self) -> int: ...
 | 
						|
    @property
 | 
						|
    def kwds(self) -> dict: ...
 | 
						|
    @property
 | 
						|
    def base(self) -> BaseOffset: ...
 | 
						|
    @overload
 | 
						|
    def __add__(self, other: npt.NDArray[np.object_]) -> npt.NDArray[np.object_]: ...
 | 
						|
    @overload
 | 
						|
    def __add__(self, other: BaseOffset) -> Self: ...
 | 
						|
    @overload
 | 
						|
    def __add__(self, other: _DatetimeT) -> _DatetimeT: ...
 | 
						|
    @overload
 | 
						|
    def __add__(self, other: _TimedeltaT) -> _TimedeltaT: ...
 | 
						|
    @overload
 | 
						|
    def __radd__(self, other: npt.NDArray[np.object_]) -> npt.NDArray[np.object_]: ...
 | 
						|
    @overload
 | 
						|
    def __radd__(self, other: BaseOffset) -> Self: ...
 | 
						|
    @overload
 | 
						|
    def __radd__(self, other: _DatetimeT) -> _DatetimeT: ...
 | 
						|
    @overload
 | 
						|
    def __radd__(self, other: _TimedeltaT) -> _TimedeltaT: ...
 | 
						|
    @overload
 | 
						|
    def __radd__(self, other: NaTType) -> NaTType: ...
 | 
						|
    def __sub__(self, other: BaseOffset) -> Self: ...
 | 
						|
    @overload
 | 
						|
    def __rsub__(self, other: npt.NDArray[np.object_]) -> npt.NDArray[np.object_]: ...
 | 
						|
    @overload
 | 
						|
    def __rsub__(self, other: BaseOffset): ...
 | 
						|
    @overload
 | 
						|
    def __rsub__(self, other: _DatetimeT) -> _DatetimeT: ...
 | 
						|
    @overload
 | 
						|
    def __rsub__(self, other: _TimedeltaT) -> _TimedeltaT: ...
 | 
						|
    @overload
 | 
						|
    def __mul__(self, other: np.ndarray) -> np.ndarray: ...
 | 
						|
    @overload
 | 
						|
    def __mul__(self, other: int): ...
 | 
						|
    @overload
 | 
						|
    def __rmul__(self, other: np.ndarray) -> np.ndarray: ...
 | 
						|
    @overload
 | 
						|
    def __rmul__(self, other: int) -> Self: ...
 | 
						|
    def __neg__(self) -> Self: ...
 | 
						|
    def copy(self) -> Self: ...
 | 
						|
    @property
 | 
						|
    def name(self) -> str: ...
 | 
						|
    @property
 | 
						|
    def rule_code(self) -> str: ...
 | 
						|
    @property
 | 
						|
    def freqstr(self) -> str: ...
 | 
						|
    def _apply(self, other): ...
 | 
						|
    def _apply_array(self, dtarr: np.ndarray) -> np.ndarray: ...
 | 
						|
    def rollback(self, dt: datetime) -> datetime: ...
 | 
						|
    def rollforward(self, dt: datetime) -> datetime: ...
 | 
						|
    def is_on_offset(self, dt: datetime) -> bool: ...
 | 
						|
    def __setstate__(self, state) -> None: ...
 | 
						|
    def __getstate__(self): ...
 | 
						|
    @property
 | 
						|
    def nanos(self) -> int: ...
 | 
						|
    def is_anchored(self) -> bool: ...
 | 
						|
 | 
						|
def _get_offset(name: str) -> BaseOffset: ...
 | 
						|
 | 
						|
class SingleConstructorOffset(BaseOffset):
 | 
						|
    @classmethod
 | 
						|
    def _from_name(cls, suffix: None = ...): ...
 | 
						|
    def __reduce__(self): ...
 | 
						|
 | 
						|
@overload
 | 
						|
def to_offset(freq: None, is_period: bool = ...) -> None: ...
 | 
						|
@overload
 | 
						|
def to_offset(freq: _BaseOffsetT, is_period: bool = ...) -> _BaseOffsetT: ...
 | 
						|
@overload
 | 
						|
def to_offset(freq: timedelta | str, is_period: bool = ...) -> BaseOffset: ...
 | 
						|
 | 
						|
class Tick(SingleConstructorOffset):
 | 
						|
    _creso: int
 | 
						|
    _prefix: str
 | 
						|
    def __init__(self, n: int = ..., normalize: bool = ...) -> None: ...
 | 
						|
    @property
 | 
						|
    def delta(self) -> Timedelta: ...
 | 
						|
    @property
 | 
						|
    def nanos(self) -> int: ...
 | 
						|
 | 
						|
def delta_to_tick(delta: timedelta) -> Tick: ...
 | 
						|
 | 
						|
class Day(Tick): ...
 | 
						|
class Hour(Tick): ...
 | 
						|
class Minute(Tick): ...
 | 
						|
class Second(Tick): ...
 | 
						|
class Milli(Tick): ...
 | 
						|
class Micro(Tick): ...
 | 
						|
class Nano(Tick): ...
 | 
						|
 | 
						|
class RelativeDeltaOffset(BaseOffset):
 | 
						|
    def __init__(self, n: int = ..., normalize: bool = ..., **kwds: Any) -> None: ...
 | 
						|
 | 
						|
class BusinessMixin(SingleConstructorOffset):
 | 
						|
    def __init__(
 | 
						|
        self, n: int = ..., normalize: bool = ..., offset: timedelta = ...
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class BusinessDay(BusinessMixin): ...
 | 
						|
 | 
						|
class BusinessHour(BusinessMixin):
 | 
						|
    def __init__(
 | 
						|
        self,
 | 
						|
        n: int = ...,
 | 
						|
        normalize: bool = ...,
 | 
						|
        start: str | time | Collection[str | time] = ...,
 | 
						|
        end: str | time | Collection[str | time] = ...,
 | 
						|
        offset: timedelta = ...,
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class WeekOfMonthMixin(SingleConstructorOffset):
 | 
						|
    def __init__(
 | 
						|
        self, n: int = ..., normalize: bool = ..., weekday: int = ...
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class YearOffset(SingleConstructorOffset):
 | 
						|
    def __init__(
 | 
						|
        self, n: int = ..., normalize: bool = ..., month: int | None = ...
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class BYearEnd(YearOffset): ...
 | 
						|
class BYearBegin(YearOffset): ...
 | 
						|
class YearEnd(YearOffset): ...
 | 
						|
class YearBegin(YearOffset): ...
 | 
						|
 | 
						|
class QuarterOffset(SingleConstructorOffset):
 | 
						|
    def __init__(
 | 
						|
        self, n: int = ..., normalize: bool = ..., startingMonth: int | None = ...
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class BQuarterEnd(QuarterOffset): ...
 | 
						|
class BQuarterBegin(QuarterOffset): ...
 | 
						|
class QuarterEnd(QuarterOffset): ...
 | 
						|
class QuarterBegin(QuarterOffset): ...
 | 
						|
class MonthOffset(SingleConstructorOffset): ...
 | 
						|
class MonthEnd(MonthOffset): ...
 | 
						|
class MonthBegin(MonthOffset): ...
 | 
						|
class BusinessMonthEnd(MonthOffset): ...
 | 
						|
class BusinessMonthBegin(MonthOffset): ...
 | 
						|
 | 
						|
class SemiMonthOffset(SingleConstructorOffset):
 | 
						|
    def __init__(
 | 
						|
        self, n: int = ..., normalize: bool = ..., day_of_month: int | None = ...
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class SemiMonthEnd(SemiMonthOffset): ...
 | 
						|
class SemiMonthBegin(SemiMonthOffset): ...
 | 
						|
 | 
						|
class Week(SingleConstructorOffset):
 | 
						|
    def __init__(
 | 
						|
        self, n: int = ..., normalize: bool = ..., weekday: int | None = ...
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class WeekOfMonth(WeekOfMonthMixin):
 | 
						|
    def __init__(
 | 
						|
        self, n: int = ..., normalize: bool = ..., week: int = ..., weekday: int = ...
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class LastWeekOfMonth(WeekOfMonthMixin): ...
 | 
						|
 | 
						|
class FY5253Mixin(SingleConstructorOffset):
 | 
						|
    def __init__(
 | 
						|
        self,
 | 
						|
        n: int = ...,
 | 
						|
        normalize: bool = ...,
 | 
						|
        weekday: int = ...,
 | 
						|
        startingMonth: int = ...,
 | 
						|
        variation: Literal["nearest", "last"] = ...,
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class FY5253(FY5253Mixin): ...
 | 
						|
 | 
						|
class FY5253Quarter(FY5253Mixin):
 | 
						|
    def __init__(
 | 
						|
        self,
 | 
						|
        n: int = ...,
 | 
						|
        normalize: bool = ...,
 | 
						|
        weekday: int = ...,
 | 
						|
        startingMonth: int = ...,
 | 
						|
        qtr_with_extra_week: int = ...,
 | 
						|
        variation: Literal["nearest", "last"] = ...,
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class Easter(SingleConstructorOffset): ...
 | 
						|
 | 
						|
class _CustomBusinessMonth(BusinessMixin):
 | 
						|
    def __init__(
 | 
						|
        self,
 | 
						|
        n: int = ...,
 | 
						|
        normalize: bool = ...,
 | 
						|
        weekmask: str = ...,
 | 
						|
        holidays: list | None = ...,
 | 
						|
        calendar: OffsetCalendar | None = ...,
 | 
						|
        offset: timedelta = ...,
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class CustomBusinessDay(BusinessDay):
 | 
						|
    def __init__(
 | 
						|
        self,
 | 
						|
        n: int = ...,
 | 
						|
        normalize: bool = ...,
 | 
						|
        weekmask: str = ...,
 | 
						|
        holidays: list | None = ...,
 | 
						|
        calendar: OffsetCalendar | None = ...,
 | 
						|
        offset: timedelta = ...,
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class CustomBusinessHour(BusinessHour):
 | 
						|
    def __init__(
 | 
						|
        self,
 | 
						|
        n: int = ...,
 | 
						|
        normalize: bool = ...,
 | 
						|
        weekmask: str = ...,
 | 
						|
        holidays: list | None = ...,
 | 
						|
        calendar: OffsetCalendar | None = ...,
 | 
						|
        start: str | time | Collection[str | time] = ...,
 | 
						|
        end: str | time | Collection[str | time] = ...,
 | 
						|
        offset: timedelta = ...,
 | 
						|
    ) -> None: ...
 | 
						|
 | 
						|
class CustomBusinessMonthEnd(_CustomBusinessMonth): ...
 | 
						|
class CustomBusinessMonthBegin(_CustomBusinessMonth): ...
 | 
						|
class OffsetMeta(type): ...
 | 
						|
class DateOffset(RelativeDeltaOffset, metaclass=OffsetMeta): ...
 | 
						|
 | 
						|
BDay = BusinessDay
 | 
						|
BMonthEnd = BusinessMonthEnd
 | 
						|
BMonthBegin = BusinessMonthBegin
 | 
						|
CBMonthEnd = CustomBusinessMonthEnd
 | 
						|
CBMonthBegin = CustomBusinessMonthBegin
 | 
						|
CDay = CustomBusinessDay
 | 
						|
 | 
						|
def roll_qtrday(
 | 
						|
    other: datetime, n: int, month: int, day_opt: str, modby: int
 | 
						|
) -> int: ...
 | 
						|
 | 
						|
INVALID_FREQ_ERR_MSG: Literal["Invalid frequency: {0}"]
 | 
						|
 | 
						|
def shift_months(
 | 
						|
    dtindex: npt.NDArray[np.int64],
 | 
						|
    months: int,
 | 
						|
    day_opt: str | None = ...,
 | 
						|
    reso: int = ...,
 | 
						|
) -> npt.NDArray[np.int64]: ...
 | 
						|
 | 
						|
_offset_map: dict[str, BaseOffset]
 |