timestamps.pyi 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. from datetime import (
  2. date as _date,
  3. datetime,
  4. time as _time,
  5. timedelta,
  6. tzinfo as _tzinfo,
  7. )
  8. from time import struct_time
  9. from typing import (
  10. ClassVar,
  11. TypeVar,
  12. overload,
  13. )
  14. import numpy as np
  15. from pandas._libs.tslibs import (
  16. BaseOffset,
  17. NaTType,
  18. Period,
  19. Tick,
  20. Timedelta,
  21. )
  22. _DatetimeT = TypeVar("_DatetimeT", bound=datetime)
  23. def integer_op_not_supported(obj: object) -> TypeError: ...
  24. class Timestamp(datetime):
  25. _creso: int
  26. min: ClassVar[Timestamp]
  27. max: ClassVar[Timestamp]
  28. resolution: ClassVar[Timedelta]
  29. _value: int # np.int64
  30. # error: "__new__" must return a class instance (got "Union[Timestamp, NaTType]")
  31. def __new__( # type: ignore[misc]
  32. cls: type[_DatetimeT],
  33. ts_input: np.integer | float | str | _date | datetime | np.datetime64 = ...,
  34. year: int | None = ...,
  35. month: int | None = ...,
  36. day: int | None = ...,
  37. hour: int | None = ...,
  38. minute: int | None = ...,
  39. second: int | None = ...,
  40. microsecond: int | None = ...,
  41. tzinfo: _tzinfo | None = ...,
  42. *,
  43. nanosecond: int | None = ...,
  44. tz: str | _tzinfo | None | int = ...,
  45. unit: str | int | None = ...,
  46. fold: int | None = ...,
  47. ) -> _DatetimeT | NaTType: ...
  48. @classmethod
  49. def _from_value_and_reso(
  50. cls, value: int, reso: int, tz: _tzinfo | None
  51. ) -> Timestamp: ...
  52. @property
  53. def value(self) -> int: ... # np.int64
  54. @property
  55. def year(self) -> int: ...
  56. @property
  57. def month(self) -> int: ...
  58. @property
  59. def day(self) -> int: ...
  60. @property
  61. def hour(self) -> int: ...
  62. @property
  63. def minute(self) -> int: ...
  64. @property
  65. def second(self) -> int: ...
  66. @property
  67. def microsecond(self) -> int: ...
  68. @property
  69. def nanosecond(self) -> int: ...
  70. @property
  71. def tzinfo(self) -> _tzinfo | None: ...
  72. @property
  73. def tz(self) -> _tzinfo | None: ...
  74. @property
  75. def fold(self) -> int: ...
  76. @classmethod
  77. def fromtimestamp(
  78. cls: type[_DatetimeT], ts: float, tz: _tzinfo | None = ...
  79. ) -> _DatetimeT: ...
  80. @classmethod
  81. def utcfromtimestamp(cls: type[_DatetimeT], ts: float) -> _DatetimeT: ...
  82. @classmethod
  83. def today(cls: type[_DatetimeT], tz: _tzinfo | str | None = ...) -> _DatetimeT: ...
  84. @classmethod
  85. def fromordinal(
  86. cls: type[_DatetimeT],
  87. ordinal: int,
  88. tz: _tzinfo | str | None = ...,
  89. ) -> _DatetimeT: ...
  90. @classmethod
  91. def now(cls: type[_DatetimeT], tz: _tzinfo | str | None = ...) -> _DatetimeT: ...
  92. @classmethod
  93. def utcnow(cls: type[_DatetimeT]) -> _DatetimeT: ...
  94. # error: Signature of "combine" incompatible with supertype "datetime"
  95. @classmethod
  96. def combine( # type: ignore[override]
  97. cls, date: _date, time: _time
  98. ) -> datetime: ...
  99. @classmethod
  100. def fromisoformat(cls: type[_DatetimeT], date_string: str) -> _DatetimeT: ...
  101. def strftime(self, format: str) -> str: ...
  102. def __format__(self, fmt: str) -> str: ...
  103. def toordinal(self) -> int: ...
  104. def timetuple(self) -> struct_time: ...
  105. def timestamp(self) -> float: ...
  106. def utctimetuple(self) -> struct_time: ...
  107. def date(self) -> _date: ...
  108. def time(self) -> _time: ...
  109. def timetz(self) -> _time: ...
  110. # LSP violation: nanosecond is not present in datetime.datetime.replace
  111. # and has positional args following it
  112. def replace( # type: ignore[override]
  113. self: _DatetimeT,
  114. year: int | None = ...,
  115. month: int | None = ...,
  116. day: int | None = ...,
  117. hour: int | None = ...,
  118. minute: int | None = ...,
  119. second: int | None = ...,
  120. microsecond: int | None = ...,
  121. nanosecond: int | None = ...,
  122. tzinfo: _tzinfo | type[object] | None = ...,
  123. fold: int | None = ...,
  124. ) -> _DatetimeT: ...
  125. # LSP violation: datetime.datetime.astimezone has a default value for tz
  126. def astimezone( # type: ignore[override]
  127. self: _DatetimeT, tz: _tzinfo | None
  128. ) -> _DatetimeT: ...
  129. def ctime(self) -> str: ...
  130. def isoformat(self, sep: str = ..., timespec: str = ...) -> str: ...
  131. @classmethod
  132. def strptime(cls, date_string: str, format: str) -> datetime: ...
  133. def utcoffset(self) -> timedelta | None: ...
  134. def tzname(self) -> str | None: ...
  135. def dst(self) -> timedelta | None: ...
  136. def __le__(self, other: datetime) -> bool: ... # type: ignore[override]
  137. def __lt__(self, other: datetime) -> bool: ... # type: ignore[override]
  138. def __ge__(self, other: datetime) -> bool: ... # type: ignore[override]
  139. def __gt__(self, other: datetime) -> bool: ... # type: ignore[override]
  140. # error: Signature of "__add__" incompatible with supertype "date"/"datetime"
  141. @overload # type: ignore[override]
  142. def __add__(self, other: np.ndarray) -> np.ndarray: ...
  143. @overload
  144. def __add__(
  145. self: _DatetimeT, other: timedelta | np.timedelta64 | Tick
  146. ) -> _DatetimeT: ...
  147. def __radd__(self: _DatetimeT, other: timedelta) -> _DatetimeT: ...
  148. @overload # type: ignore[override]
  149. def __sub__(self, other: datetime) -> Timedelta: ...
  150. @overload
  151. def __sub__(
  152. self: _DatetimeT, other: timedelta | np.timedelta64 | Tick
  153. ) -> _DatetimeT: ...
  154. def __hash__(self) -> int: ...
  155. def weekday(self) -> int: ...
  156. def isoweekday(self) -> int: ...
  157. def isocalendar(self) -> tuple[int, int, int]: ...
  158. @property
  159. def is_leap_year(self) -> bool: ...
  160. @property
  161. def is_month_start(self) -> bool: ...
  162. @property
  163. def is_quarter_start(self) -> bool: ...
  164. @property
  165. def is_year_start(self) -> bool: ...
  166. @property
  167. def is_month_end(self) -> bool: ...
  168. @property
  169. def is_quarter_end(self) -> bool: ...
  170. @property
  171. def is_year_end(self) -> bool: ...
  172. def to_pydatetime(self, warn: bool = ...) -> datetime: ...
  173. def to_datetime64(self) -> np.datetime64: ...
  174. def to_period(self, freq: BaseOffset | str = ...) -> Period: ...
  175. def to_julian_date(self) -> np.float64: ...
  176. @property
  177. def asm8(self) -> np.datetime64: ...
  178. def tz_convert(self: _DatetimeT, tz: _tzinfo | str | None) -> _DatetimeT: ...
  179. # TODO: could return NaT?
  180. def tz_localize(
  181. self: _DatetimeT,
  182. tz: _tzinfo | str | None,
  183. ambiguous: str = ...,
  184. nonexistent: str = ...,
  185. ) -> _DatetimeT: ...
  186. def normalize(self: _DatetimeT) -> _DatetimeT: ...
  187. # TODO: round/floor/ceil could return NaT?
  188. def round(
  189. self: _DatetimeT, freq: str, ambiguous: bool | str = ..., nonexistent: str = ...
  190. ) -> _DatetimeT: ...
  191. def floor(
  192. self: _DatetimeT, freq: str, ambiguous: bool | str = ..., nonexistent: str = ...
  193. ) -> _DatetimeT: ...
  194. def ceil(
  195. self: _DatetimeT, freq: str, ambiguous: bool | str = ..., nonexistent: str = ...
  196. ) -> _DatetimeT: ...
  197. def day_name(self, locale: str | None = ...) -> str: ...
  198. def month_name(self, locale: str | None = ...) -> str: ...
  199. @property
  200. def day_of_week(self) -> int: ...
  201. @property
  202. def dayofweek(self) -> int: ...
  203. @property
  204. def day_of_year(self) -> int: ...
  205. @property
  206. def dayofyear(self) -> int: ...
  207. @property
  208. def quarter(self) -> int: ...
  209. @property
  210. def week(self) -> int: ...
  211. def to_numpy(
  212. self, dtype: np.dtype | None = ..., copy: bool = ...
  213. ) -> np.datetime64: ...
  214. @property
  215. def _date_repr(self) -> str: ...
  216. @property
  217. def days_in_month(self) -> int: ...
  218. @property
  219. def daysinmonth(self) -> int: ...
  220. @property
  221. def unit(self) -> str: ...
  222. def as_unit(self, unit: str, round_ok: bool = ...) -> Timestamp: ...