period.pyi 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. from datetime import timedelta
  2. from typing import Literal
  3. import numpy as np
  4. from pandas._libs.tslibs.dtypes import PeriodDtypeBase
  5. from pandas._libs.tslibs.nattype import NaTType
  6. from pandas._libs.tslibs.offsets import BaseOffset
  7. from pandas._libs.tslibs.timestamps import Timestamp
  8. from pandas._typing import (
  9. Frequency,
  10. npt,
  11. )
  12. INVALID_FREQ_ERR_MSG: str
  13. DIFFERENT_FREQ: str
  14. class IncompatibleFrequency(ValueError): ...
  15. def periodarr_to_dt64arr(
  16. periodarr: npt.NDArray[np.int64], # const int64_t[:]
  17. freq: int,
  18. ) -> npt.NDArray[np.int64]: ...
  19. def period_asfreq_arr(
  20. arr: npt.NDArray[np.int64],
  21. freq1: int,
  22. freq2: int,
  23. end: bool,
  24. ) -> npt.NDArray[np.int64]: ...
  25. def get_period_field_arr(
  26. field: str,
  27. arr: npt.NDArray[np.int64], # const int64_t[:]
  28. freq: int,
  29. ) -> npt.NDArray[np.int64]: ...
  30. def from_ordinals(
  31. values: npt.NDArray[np.int64], # const int64_t[:]
  32. freq: timedelta | BaseOffset | str,
  33. ) -> npt.NDArray[np.int64]: ...
  34. def extract_ordinals(
  35. values: npt.NDArray[np.object_],
  36. freq: Frequency | int,
  37. ) -> npt.NDArray[np.int64]: ...
  38. def extract_freq(
  39. values: npt.NDArray[np.object_],
  40. ) -> BaseOffset: ...
  41. def period_array_strftime(
  42. values: npt.NDArray[np.int64],
  43. dtype_code: int,
  44. na_rep,
  45. date_format: str | None,
  46. ) -> npt.NDArray[np.object_]: ...
  47. # exposed for tests
  48. def period_asfreq(ordinal: int, freq1: int, freq2: int, end: bool) -> int: ...
  49. def period_ordinal(
  50. y: int, m: int, d: int, h: int, min: int, s: int, us: int, ps: int, freq: int
  51. ) -> int: ...
  52. def freq_to_dtype_code(freq: BaseOffset) -> int: ...
  53. def validate_end_alias(how: str) -> Literal["E", "S"]: ...
  54. class PeriodMixin:
  55. @property
  56. def end_time(self) -> Timestamp: ...
  57. @property
  58. def start_time(self) -> Timestamp: ...
  59. def _require_matching_freq(self, other: BaseOffset, base: bool = ...) -> None: ...
  60. class Period(PeriodMixin):
  61. ordinal: int # int64_t
  62. freq: BaseOffset
  63. _dtype: PeriodDtypeBase
  64. # error: "__new__" must return a class instance (got "Union[Period, NaTType]")
  65. def __new__( # type: ignore[misc]
  66. cls,
  67. value=...,
  68. freq: int | str | BaseOffset | None = ...,
  69. ordinal: int | None = ...,
  70. year: int | None = ...,
  71. month: int | None = ...,
  72. quarter: int | None = ...,
  73. day: int | None = ...,
  74. hour: int | None = ...,
  75. minute: int | None = ...,
  76. second: int | None = ...,
  77. ) -> Period | NaTType: ...
  78. @classmethod
  79. def _maybe_convert_freq(cls, freq) -> BaseOffset: ...
  80. @classmethod
  81. def _from_ordinal(cls, ordinal: int, freq: BaseOffset) -> Period: ...
  82. @classmethod
  83. def now(cls, freq: Frequency) -> Period: ...
  84. def strftime(self, fmt: str | None) -> str: ...
  85. def to_timestamp(
  86. self,
  87. freq: str | BaseOffset | None = ...,
  88. how: str = ...,
  89. ) -> Timestamp: ...
  90. def asfreq(self, freq: str | BaseOffset, how: str = ...) -> Period: ...
  91. @property
  92. def freqstr(self) -> str: ...
  93. @property
  94. def is_leap_year(self) -> bool: ...
  95. @property
  96. def daysinmonth(self) -> int: ...
  97. @property
  98. def days_in_month(self) -> int: ...
  99. @property
  100. def qyear(self) -> int: ...
  101. @property
  102. def quarter(self) -> int: ...
  103. @property
  104. def day_of_year(self) -> int: ...
  105. @property
  106. def weekday(self) -> int: ...
  107. @property
  108. def day_of_week(self) -> int: ...
  109. @property
  110. def week(self) -> int: ...
  111. @property
  112. def weekofyear(self) -> int: ...
  113. @property
  114. def second(self) -> int: ...
  115. @property
  116. def minute(self) -> int: ...
  117. @property
  118. def hour(self) -> int: ...
  119. @property
  120. def day(self) -> int: ...
  121. @property
  122. def month(self) -> int: ...
  123. @property
  124. def year(self) -> int: ...
  125. def __sub__(self, other) -> Period | BaseOffset: ...
  126. def __add__(self, other) -> Period: ...