period.pyi 3.6 KB

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