1
- import datetime
1
+ from datetime import datetime , timedelta , timezone
2
2
3
- import dateutil
3
+ from dateutil . tz import gettz , tzlocal , tzutc
4
4
import numpy as np
5
5
import pytz
6
6
7
7
from pandas import Timestamp
8
8
9
+ # One case for each type of tzinfo object that has its own code path
10
+ # in tzconversion code.
11
+ _tzs = [
12
+ None ,
13
+ pytz .timezone ("Europe/Amsterdam" ),
14
+ gettz ("US/Central" ),
15
+ pytz .UTC ,
16
+ tzutc (),
17
+ timezone (timedelta (minutes = 60 )),
18
+ tzlocal (),
19
+ ]
20
+
9
21
10
22
class TimestampConstruction :
11
23
def setup (self ):
12
24
self .npdatetime64 = np .datetime64 ("2020-01-01 00:00:00" )
13
- self .dttime_unaware = datetime . datetime (2020 , 1 , 1 , 0 , 0 , 0 )
14
- self .dttime_aware = datetime . datetime (2020 , 1 , 1 , 0 , 0 , 0 , 0 , pytz .UTC )
25
+ self .dttime_unaware = datetime (2020 , 1 , 1 , 0 , 0 , 0 )
26
+ self .dttime_aware = datetime (2020 , 1 , 1 , 0 , 0 , 0 , 0 , pytz .UTC )
15
27
self .ts = Timestamp ("2020-01-01 00:00:00" )
16
28
17
29
def time_parse_iso8601_no_tz (self ):
@@ -49,7 +61,6 @@ def time_from_pd_timestamp(self):
49
61
50
62
51
63
class TimestampProperties :
52
- _tzs = [None , pytz .timezone ("Europe/Amsterdam" ), pytz .UTC , dateutil .tz .tzutc ()]
53
64
_freqs = [None , "B" ]
54
65
params = [_tzs , _freqs ]
55
66
param_names = ["tz" , "freq" ]
@@ -63,9 +74,6 @@ def time_tz(self, tz, freq):
63
74
def time_dayofweek (self , tz , freq ):
64
75
self .ts .dayofweek
65
76
66
- def time_weekday_name (self , tz , freq ):
67
- self .ts .day_name
68
-
69
77
def time_dayofyear (self , tz , freq ):
70
78
self .ts .dayofyear
71
79
@@ -108,9 +116,12 @@ def time_microsecond(self, tz, freq):
108
116
def time_month_name (self , tz , freq ):
109
117
self .ts .month_name ()
110
118
119
+ def time_weekday_name (self , tz , freq ):
120
+ self .ts .day_name ()
121
+
111
122
112
123
class TimestampOps :
113
- params = [ None , "US/Eastern" , pytz . UTC , dateutil . tz . tzutc ()]
124
+ params = _tzs
114
125
param_names = ["tz" ]
115
126
116
127
def setup (self , tz ):
@@ -148,7 +159,7 @@ def time_ceil(self, tz):
148
159
149
160
class TimestampAcrossDst :
150
161
def setup (self ):
151
- dt = datetime . datetime (2016 , 3 , 27 , 1 )
162
+ dt = datetime (2016 , 3 , 27 , 1 )
152
163
self .tzinfo = pytz .timezone ("CET" ).localize (dt , is_dst = False ).tzinfo
153
164
self .ts2 = Timestamp (dt )
154
165
0 commit comments