@@ -3,7 +3,10 @@ from datetime import (
3
3
timedelta ,
4
4
tzinfo as _tzinfo ,
5
5
)
6
- from typing import Any
6
+ from typing import (
7
+ Any ,
8
+ Union ,
9
+ )
7
10
8
11
import numpy as np
9
12
@@ -15,7 +18,12 @@ nat_strings: set[str]
15
18
16
19
def is_null_datetimelike (val : object , inat_is_null : bool = ...) -> bool : ...
17
20
18
- class NaTType (datetime ):
21
+ _NaTComparisonTypes = Union [datetime , timedelta , Period , np .datetime64 , np .timedelta64 ]
22
+
23
+ class _NatComparison :
24
+ def __call__ (self , other : _NaTComparisonTypes ) -> bool : ...
25
+
26
+ class NaTType :
19
27
value : np .int64
20
28
def asm8 (self ) -> np .datetime64 : ...
21
29
def to_datetime64 (self ) -> np .datetime64 : ...
@@ -54,26 +62,19 @@ class NaTType(datetime):
54
62
def weekofyear (self ) -> float : ...
55
63
def day_name (self ) -> float : ...
56
64
def month_name (self ) -> float : ...
57
- # error: Return type "float" of "weekday" incompatible with return
58
- # type "int" in supertype "date"
59
- def weekday (self ) -> float : ... # type: ignore[override]
60
- # error: Return type "float" of "isoweekday" incompatible with return
61
- # type "int" in supertype "date"
62
- def isoweekday (self ) -> float : ... # type: ignore[override]
65
+ def weekday (self ) -> float : ...
66
+ def isoweekday (self ) -> float : ...
63
67
def total_seconds (self ) -> float : ...
64
- # error: Signature of "today" incompatible with supertype "datetime"
65
- def today (self , * args , ** kwargs ) -> NaTType : ... # type: ignore[override]
66
- # error: Signature of "today" incompatible with supertype "datetime"
67
- def now (self , * args , ** kwargs ) -> NaTType : ... # type: ignore[override]
68
+ def today (self , * args , ** kwargs ) -> NaTType : ...
69
+ def now (self , * args , ** kwargs ) -> NaTType : ...
68
70
def to_pydatetime (self ) -> NaTType : ...
69
71
def date (self ) -> NaTType : ...
70
72
def round (self ) -> NaTType : ...
71
73
def floor (self ) -> NaTType : ...
72
74
def ceil (self ) -> NaTType : ...
73
75
def tz_convert (self ) -> NaTType : ...
74
76
def tz_localize (self ) -> NaTType : ...
75
- # error: Signature of "replace" incompatible with supertype "datetime"
76
- def replace ( # type: ignore[override]
77
+ def replace (
77
78
self ,
78
79
year : int | None = ...,
79
80
month : int | None = ...,
@@ -86,38 +87,24 @@ class NaTType(datetime):
86
87
tzinfo : _tzinfo | None = ...,
87
88
fold : int | None = ...,
88
89
) -> NaTType : ...
89
- # error: Return type "float" of "year" incompatible with return
90
- # type "int" in supertype "date"
91
90
@property
92
- def year (self ) -> float : ... # type: ignore[override]
91
+ def year (self ) -> float : ...
93
92
@property
94
93
def quarter (self ) -> float : ...
95
- # error: Return type "float" of "month" incompatible with return
96
- # type "int" in supertype "date"
97
94
@property
98
- def month (self ) -> float : ... # type: ignore[override]
99
- # error: Return type "float" of "day" incompatible with return
100
- # type "int" in supertype "date"
95
+ def month (self ) -> float : ...
101
96
@property
102
- def day (self ) -> float : ... # type: ignore[override]
103
- # error: Return type "float" of "hour" incompatible with return
104
- # type "int" in supertype "date"
97
+ def day (self ) -> float : ...
105
98
@property
106
- def hour (self ) -> float : ... # type: ignore[override]
107
- # error: Return type "float" of "minute" incompatible with return
108
- # type "int" in supertype "date"
99
+ def hour (self ) -> float : ...
109
100
@property
110
- def minute (self ) -> float : ... # type: ignore[override]
111
- # error: Return type "float" of "second" incompatible with return
112
- # type "int" in supertype "date"
101
+ def minute (self ) -> float : ...
113
102
@property
114
- def second (self ) -> float : ... # type: ignore[override]
103
+ def second (self ) -> float : ...
115
104
@property
116
105
def millisecond (self ) -> float : ...
117
- # error: Return type "float" of "microsecond" incompatible with return
118
- # type "int" in supertype "date"
119
106
@property
120
- def microsecond (self ) -> float : ... # type: ignore[override]
107
+ def microsecond (self ) -> float : ...
121
108
@property
122
109
def nanosecond (self ) -> float : ...
123
110
# inject Timedelta properties
@@ -132,24 +119,7 @@ class NaTType(datetime):
132
119
def qyear (self ) -> float : ...
133
120
def __eq__ (self , other : Any ) -> bool : ...
134
121
def __ne__ (self , other : Any ) -> bool : ...
135
- # https://github.com/python/mypy/issues/9015
136
- # error: Argument 1 of "__lt__" is incompatible with supertype "date";
137
- # supertype defines the argument type as "date"
138
- def __lt__ ( # type: ignore[override]
139
- self , other : datetime | timedelta | Period | np .datetime64 | np .timedelta64
140
- ) -> bool : ...
141
- # error: Argument 1 of "__le__" is incompatible with supertype "date";
142
- # supertype defines the argument type as "date"
143
- def __le__ ( # type: ignore[override]
144
- self , other : datetime | timedelta | Period | np .datetime64 | np .timedelta64
145
- ) -> bool : ...
146
- # error: Argument 1 of "__gt__" is incompatible with supertype "date";
147
- # supertype defines the argument type as "date"
148
- def __gt__ ( # type: ignore[override]
149
- self , other : datetime | timedelta | Period | np .datetime64 | np .timedelta64
150
- ) -> bool : ...
151
- # error: Argument 1 of "__ge__" is incompatible with supertype "date";
152
- # supertype defines the argument type as "date"
153
- def __ge__ ( # type: ignore[override]
154
- self , other : datetime | timedelta | Period | np .datetime64 | np .timedelta64
155
- ) -> bool : ...
122
+ __lt__ : _NatComparison
123
+ __le__ : _NatComparison
124
+ __gt__ : _NatComparison
125
+ __ge__ : _NatComparison
0 commit comments