44
55import re
66import time
7- import datetime
7+ from datetime import datetime as datetime_datetime , date as datetime_date , time as datetime_time , timedelta as datetime_timedelta
88import pytz
99from syncany .utils import get_timezone , parse_datetime
1010from syncany .calculaters import typing_filter
@@ -38,7 +38,7 @@ def calculate(unit, value):
3838 day -= 1
3939 return None
4040 if unit in TIMEDELTA_UNITS :
41- td = datetime . timedelta (seconds = TIMEDELTA_UNITS [unit ] * value )
41+ td = datetime_timedelta (seconds = TIMEDELTA_UNITS [unit ] * value )
4242 return (dt - td ) if is_sub else (dt + td )
4343 return None
4444
@@ -62,72 +62,72 @@ def calculate(unit, value):
6262 return dt
6363
6464
65- @typing_filter (datetime . datetime )
65+ @typing_filter (datetime_datetime )
6666def mysql_currenttimestamp ():
67- return datetime . datetime .now (tz = get_timezone ())
67+ return datetime_datetime .now (tz = get_timezone ())
6868
69- @typing_filter (datetime . date )
69+ @typing_filter (datetime_date )
7070def mysql_curdate ():
71- return datetime . date .today ()
71+ return datetime_date .today ()
7272
73- @typing_filter (datetime . date )
73+ @typing_filter (datetime_date )
7474def mysql_currentdate ():
75- return datetime . date .today ()
75+ return datetime_date .today ()
7676
77- @typing_filter (datetime . time )
77+ @typing_filter (datetime_time )
7878def mysql_curtime ():
79- dt = datetime . datetime .now (tz = get_timezone ())
80- return datetime . time (dt .hour , dt .minute , dt .second , dt .microsecond )
79+ dt = datetime_datetime .now (tz = get_timezone ())
80+ return datetime_time (dt .hour , dt .minute , dt .second , dt .microsecond )
8181
82- @typing_filter (datetime . time )
82+ @typing_filter (datetime_time )
8383def mysql_currenttime ():
84- dt = datetime . datetime .now (tz = get_timezone ())
85- return datetime . time (dt .hour , dt .minute , dt .second , dt .microsecond )
84+ dt = datetime_datetime .now (tz = get_timezone ())
85+ return datetime_time (dt .hour , dt .minute , dt .second , dt .microsecond )
8686
87- @typing_filter (datetime . datetime )
87+ @typing_filter (datetime_datetime )
8888def mysql_sysdate ():
89- return datetime . datetime .now (tz = get_timezone ())
89+ return datetime_datetime .now (tz = get_timezone ())
9090
91- @typing_filter (datetime . date )
91+ @typing_filter (datetime_date )
9292def mysql_date (dt ):
9393 if dt is None :
9494 return None
9595 if isinstance (dt , NumberStringTypes ):
9696 dt = parse_datetime (str (dt ), None , get_timezone ())
97- if isinstance (dt , datetime . datetime ):
98- return datetime . date (dt .year , dt .month , dt .day )
99- if isinstance (dt , datetime . date ):
97+ if isinstance (dt , datetime_datetime ):
98+ return datetime_date (dt .year , dt .month , dt .day )
99+ if isinstance (dt , datetime_date ):
100100 return dt
101101 return None
102102
103- @typing_filter (datetime . datetime )
103+ @typing_filter (datetime_datetime )
104104def mysql_datetime (dt ):
105105 if dt is None :
106106 return None
107107 if isinstance (dt , NumberStringTypes ):
108108 dt = parse_datetime (str (dt ), None , get_timezone ())
109- if isinstance (dt , datetime . datetime ):
109+ if isinstance (dt , datetime_datetime ):
110110 return dt
111- if isinstance (dt , datetime . date ):
112- return datetime . datetime (dt .year , dt .month , dt .day , tzinfo = get_timezone ())
113- if isinstance (dt , datetime . time ):
114- now = datetime . datetime .now (tz = get_timezone ())
115- return datetime . datetime (now .year , now .month , now .day , dt .hour , dt .minute ,
111+ if isinstance (dt , datetime_date ):
112+ return datetime_datetime (dt .year , dt .month , dt .day , tzinfo = get_timezone ())
113+ if isinstance (dt , datetime_time ):
114+ now = datetime_datetime .now (tz = get_timezone ())
115+ return datetime_datetime (now .year , now .month , now .day , dt .hour , dt .minute ,
116116 dt .second , dt .microsecond , tzinfo = get_timezone ())
117117 return None
118118
119- @typing_filter (datetime . time )
119+ @typing_filter (datetime_time )
120120def mysql_time (dt ):
121121 if dt is None :
122122 return None
123123 if isinstance (dt , NumberStringTypes ):
124124 dt = parse_datetime (str (dt ), None , get_timezone ())
125- if isinstance (dt , datetime . time ):
125+ if isinstance (dt , datetime_time ):
126126 return dt
127- if isinstance (dt , datetime . datetime ):
128- return datetime . time (dt .hour , dt .minute , dt .second , dt .microsecond , tzinfo = get_timezone ())
129- if isinstance (dt , datetime . date ):
130- return datetime . time (tzinfo = get_timezone ())
127+ if isinstance (dt , datetime_datetime ):
128+ return datetime_time (dt .hour , dt .minute , dt .second , dt .microsecond , tzinfo = get_timezone ())
129+ if isinstance (dt , datetime_date ):
130+ return datetime_time (tzinfo = get_timezone ())
131131 return None
132132
133133@typing_filter (int )
@@ -136,11 +136,11 @@ def mysql_unix_timestamp(dt=None):
136136 return int (time .time ())
137137 return int (time .mktime (dt .utctimetuple ()))
138138
139- @typing_filter (datetime . datetime )
139+ @typing_filter (datetime_datetime )
140140def mysql_from_unixtime (t ):
141141 if t is None :
142142 return None
143- return datetime . datetime .fromtimestamp (int (t ), pytz .UTC ).astimezone (tz = get_timezone ())
143+ return datetime_datetime .fromtimestamp (int (t ), pytz .UTC ).astimezone (tz = get_timezone ())
144144
145145@typing_filter (int )
146146def mysql_month (dt ):
@@ -228,66 +228,66 @@ def mysql_sec_to_time(t):
228228 if t is None :
229229 return None
230230 st = parse_datetime ("2000-01-01 00:00:00" , None , get_timezone ())
231- return (st + datetime . timedelta (seconds = t )).strftime ("%H:%M:%S" )
231+ return (st + datetime_timedelta (seconds = t )).strftime ("%H:%M:%S" )
232232
233- @typing_filter (datetime . datetime )
233+ @typing_filter (datetime_datetime )
234234def mysql_dateadd (dt , i ):
235235 if dt is None :
236236 return None
237237 if isinstance (dt , NumberStringTypes ):
238238 dt = parse_datetime (str (dt ), None , get_timezone ())
239239 if isinstance (i , NumberTypes ) or (isinstance (i , str ) and i .isdigit ()):
240- return dt + datetime . timedelta (days = int (i ))
240+ return dt + datetime_timedelta (days = int (i ))
241241 return calculate_datetime (dt , i , False )
242242
243- @typing_filter (datetime . datetime )
243+ @typing_filter (datetime_datetime )
244244def mysql_adddate (dt , i ):
245245 if dt is None :
246246 return None
247247 if isinstance (dt , NumberStringTypes ):
248248 dt = parse_datetime (str (dt ), None , get_timezone ())
249249 if isinstance (i , NumberTypes ) or (isinstance (i , str ) and i .isdigit ()):
250- return dt + datetime . timedelta (days = int (i ))
250+ return dt + datetime_timedelta (days = int (i ))
251251 return calculate_datetime (dt , i , False )
252252
253- @typing_filter (datetime . datetime )
253+ @typing_filter (datetime_datetime )
254254def mysql_datesub (dt , i ):
255255 if dt is None :
256256 return None
257257 if isinstance (dt , NumberStringTypes ):
258258 dt = parse_datetime (str (dt ), None , get_timezone ())
259259 if isinstance (i , NumberTypes ) or (isinstance (i , str ) and i .isdigit ()):
260- return dt - datetime . timedelta (days = int (i ))
260+ return dt - datetime_timedelta (days = int (i ))
261261 return calculate_datetime (dt , i , True )
262262
263- @typing_filter (datetime . datetime )
263+ @typing_filter (datetime_datetime )
264264def mysql_subdate (dt , i ):
265265 if dt is None :
266266 return None
267267 if isinstance (dt , NumberStringTypes ):
268268 dt = parse_datetime (str (dt ), None , get_timezone ())
269269 if isinstance (i , NumberTypes ) or (isinstance (i , str ) and i .isdigit ()):
270- return dt - datetime . timedelta (days = int (i ))
270+ return dt - datetime_timedelta (days = int (i ))
271271 return calculate_datetime (dt , i , True )
272272
273- @typing_filter (datetime . datetime )
273+ @typing_filter (datetime_datetime )
274274def mysql_addtime (dt , i ):
275275 if dt is None :
276276 return None
277277 if isinstance (dt , NumberStringTypes ):
278278 dt = parse_datetime (str (dt ), None , get_timezone ())
279279 if isinstance (i , NumberTypes ) or (isinstance (i , str ) and i .isdigit ()):
280- return dt + datetime . timedelta (days = int (i ))
280+ return dt + datetime_timedelta (days = int (i ))
281281 return calculate_datetime (dt , i , False )
282282
283- @typing_filter (datetime . datetime )
283+ @typing_filter (datetime_datetime )
284284def mysql_subtime (dt , i ):
285285 if dt is None :
286286 return None
287287 if isinstance (dt , NumberStringTypes ):
288288 dt = parse_datetime (str (dt ), None , get_timezone ())
289289 if isinstance (i , NumberTypes ) or (isinstance (i , str ) and i .isdigit ()):
290- return dt - datetime . timedelta (days = int (i ))
290+ return dt - datetime_timedelta (days = int (i ))
291291 return calculate_datetime (dt , i , True )
292292
293293@typing_filter (int )
@@ -334,19 +334,19 @@ def mysql_weekday(dt):
334334 dt = parse_datetime (str (dt ), None , get_timezone ())
335335 return dt .weekday ()
336336
337- @typing_filter (datetime . date )
337+ @typing_filter (datetime_date )
338338def mysql_utc_date ():
339- dt = datetime . datetime .now (pytz .UTC )
340- return datetime . date (dt .year , dt .month , dt .day )
339+ dt = datetime_datetime .now (pytz .UTC )
340+ return datetime_date (dt .year , dt .month , dt .day )
341341
342- @typing_filter (datetime . time )
342+ @typing_filter (datetime_time )
343343def mysql_utc_time ():
344- dt = datetime . datetime .now (pytz .UTC )
345- return datetime . time (dt .hour , dt .minute , dt .second , dt .microsecond )
344+ dt = datetime_datetime .now (pytz .UTC )
345+ return datetime_time (dt .hour , dt .minute , dt .second , dt .microsecond )
346346
347- @typing_filter (datetime . datetime )
347+ @typing_filter (datetime_datetime )
348348def mysql_utc_timestamp ():
349- return datetime . datetime .now (pytz .UTC )
349+ return datetime_datetime .now (pytz .UTC )
350350
351351
352352funcs = {key [6 :]: value for key , value in globals ().items () if key .startswith ("mysql_" )}
0 commit comments