-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
TYP: timestamps.pyi #44339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TYP: timestamps.pyi #44339
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,7 +8,6 @@ from datetime import ( | |
from time import struct_time | ||
from typing import ( | ||
ClassVar, | ||
Type, | ||
TypeVar, | ||
overload, | ||
) | ||
|
@@ -22,9 +21,9 @@ from pandas._libs.tslibs import ( | |
Timedelta, | ||
) | ||
|
||
_S = TypeVar("_S") | ||
_S = TypeVar("_S", bound=datetime) | ||
|
||
def integer_op_not_supported(obj) -> TypeError: ... | ||
def integer_op_not_supported(obj: object) -> TypeError: ... | ||
|
||
class Timestamp(datetime): | ||
min: ClassVar[Timestamp] | ||
|
@@ -35,17 +34,17 @@ class Timestamp(datetime): | |
|
||
# error: "__new__" must return a class instance (got "Union[Timestamp, NaTType]") | ||
def __new__( # type: ignore[misc] | ||
cls: Type[_S], | ||
cls: type[_S], | ||
ts_input: int | ||
| np.integer | ||
| float | ||
| str | ||
| _date | ||
| datetime | ||
| np.datetime64 = ..., | ||
freq=..., | ||
freq: int | None | str | BaseOffset = ..., | ||
tz: str | _tzinfo | None | int = ..., | ||
unit=..., | ||
unit: str | int | None = ..., | ||
year: int | None = ..., | ||
month: int | None = ..., | ||
day: int | None = ..., | ||
|
@@ -80,24 +79,28 @@ class Timestamp(datetime): | |
@property | ||
def fold(self) -> int: ... | ||
@classmethod | ||
def fromtimestamp(cls: Type[_S], t: float, tz: _tzinfo | None = ...) -> _S: ... | ||
def fromtimestamp(cls: type[_S], t: float, tz: _tzinfo | None = ...) -> _S: ... | ||
@classmethod | ||
def utcfromtimestamp(cls: Type[_S], t: float) -> _S: ... | ||
def utcfromtimestamp(cls: type[_S], t: float) -> _S: ... | ||
@classmethod | ||
def today(cls: Type[_S]) -> _S: ... | ||
def today(cls: type[_S], tz: _tzinfo | str | None = ...) -> _S: ... | ||
@classmethod | ||
def fromordinal(cls: Type[_S], n: int) -> _S: ... | ||
def fromordinal( | ||
cls: type[_S], | ||
ordinal: int, | ||
freq: str | BaseOffset | None = ..., | ||
tz: _tzinfo | str | None = ..., | ||
) -> _S: ... | ||
@classmethod | ||
def now(cls: Type[_S], tz: _tzinfo | str | None = ...) -> _S: ... | ||
def now(cls: type[_S], tz: _tzinfo | str | None = ...) -> _S: ... | ||
@classmethod | ||
def utcnow(cls: Type[_S]) -> _S: ... | ||
def utcnow(cls: type[_S]) -> _S: ... | ||
# error: Signature of "combine" incompatible with supertype "datetime" | ||
@classmethod | ||
def combine( | ||
cls, date: _date, time: _time, tzinfo: _tzinfo | None = ... | ||
) -> datetime: ... | ||
def combine(cls, date: _date, time: _time) -> datetime: ... # type: ignore[override] | ||
@classmethod | ||
def fromisoformat(cls: Type[_S], date_string: str) -> _S: ... | ||
def strftime(self, fmt: str) -> str: ... | ||
def fromisoformat(cls: type[_S], date_string: str) -> _S: ... | ||
def strftime(self, format: str) -> str: ... | ||
def __format__(self, fmt: str) -> str: ... | ||
def toordinal(self) -> int: ... | ||
def timetuple(self) -> struct_time: ... | ||
|
@@ -116,12 +119,12 @@ class Timestamp(datetime): | |
second: int = ..., | ||
microsecond: int = ..., | ||
tzinfo: _tzinfo | None = ..., | ||
*, | ||
fold: int = ..., | ||
) -> datetime: ... | ||
def astimezone(self: _S, tz: _tzinfo | None = ...) -> _S: ... | ||
def ctime(self) -> str: ... | ||
def isoformat(self, sep: str = ..., timespec: str = ...) -> str: ... | ||
# error: Signature of "isoformat" incompatible with supertype "datetime" | ||
def isoformat(self, sep: str = ...) -> str: ... # type: ignore[override] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. the implementation does not accept There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. hmm i thought we recently changed this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, that seems to have changed since Nov 6 :) I will look through the other cases that don't match datetime and correct them if necessary in a new PR. |
||
@classmethod | ||
def strptime(cls, date_string: str, format: str) -> datetime: ... | ||
def utcoffset(self) -> timedelta | None: ... | ||
|
@@ -131,12 +134,18 @@ class Timestamp(datetime): | |
def __lt__(self, other: datetime) -> bool: ... # type: ignore | ||
def __ge__(self, other: datetime) -> bool: ... # type: ignore | ||
def __gt__(self, other: datetime) -> bool: ... # type: ignore | ||
def __add__(self: _S, other: timedelta) -> _S: ... | ||
# error: Signature of "__add__" incompatible with supertype "date"/"datetime" | ||
@overload # type: ignore[override] | ||
def __add__(self, other: np.ndarray) -> np.ndarray: ... | ||
@overload | ||
# TODO: other can also be Tick (but it cannot be resolved) | ||
def __add__(self: _S, other: timedelta | np.timedelta64) -> _S: ... | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. once offset.pyi from #43744 is in a mergeable from, Tick can be added. |
||
def __radd__(self: _S, other: timedelta) -> _S: ... | ||
@overload # type: ignore | ||
def __sub__(self, other: datetime) -> timedelta: ... | ||
@overload | ||
def __sub__(self, other: timedelta) -> datetime: ... | ||
# TODO: other can also be Tick (but it cannot be resolved) | ||
def __sub__(self, other: timedelta | np.timedelta64) -> datetime: ... | ||
def __hash__(self) -> int: ... | ||
def weekday(self) -> int: ... | ||
def isoweekday(self) -> int: ... | ||
|
@@ -157,23 +166,38 @@ class Timestamp(datetime): | |
def is_year_end(self) -> bool: ... | ||
def to_pydatetime(self, warn: bool = ...) -> datetime: ... | ||
def to_datetime64(self) -> np.datetime64: ... | ||
def to_period(self, freq) -> Period: ... | ||
def to_period(self, freq: BaseOffset | str | None = ...) -> Period: ... | ||
def to_julian_date(self) -> np.float64: ... | ||
@property | ||
def asm8(self) -> np.datetime64: ... | ||
def tz_convert(self: _S, tz) -> _S: ... | ||
def tz_convert(self: _S, tz: _tzinfo | str | None) -> _S: ... | ||
# TODO: could return NaT? | ||
def tz_localize( | ||
self: _S, tz, ambiguous: str = ..., nonexistent: str = ... | ||
self: _S, tz: _tzinfo | str | None, ambiguous: str = ..., nonexistent: str = ... | ||
) -> _S: ... | ||
def normalize(self: _S) -> _S: ... | ||
# TODO: round/floor/ceil could return NaT? | ||
def round( | ||
self: _S, freq, ambiguous: bool | str = ..., nonexistent: str = ... | ||
self: _S, freq: str, ambiguous: bool | str = ..., nonexistent: str = ... | ||
) -> _S: ... | ||
def floor( | ||
self: _S, freq, ambiguous: bool | str = ..., nonexistent: str = ... | ||
self: _S, freq: str, ambiguous: bool | str = ..., nonexistent: str = ... | ||
) -> _S: ... | ||
def ceil( | ||
self: _S, freq, ambiguous: bool | str = ..., nonexistent: str = ... | ||
self: _S, freq: str, ambiguous: bool | str = ..., nonexistent: str = ... | ||
) -> _S: ... | ||
def day_name(self, locale: str | None = ...) -> str: ... | ||
def month_name(self, locale: str | None = ...) -> str: ... | ||
@property | ||
def day_of_week(self) -> int: ... | ||
@property | ||
def day_of_month(self) -> int: ... | ||
@property | ||
def day_of_year(self) -> int: ... | ||
@property | ||
def quarter(self) -> int: ... | ||
@property | ||
def week(self) -> int: ... | ||
def to_numpy( | ||
self, dtype: np.dtype | None = ..., copy: bool = ... | ||
) -> np.datetime64: ... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the implementation does not accept
tzinfo