mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
dateutil has moved its dangerous dst check into a dedicated method in newer versions. Fixes #1653277 [timestamp error on startup](https://bugs.launchpad.net/calibre/+bug/1653277)
This commit is contained in:
parent
40140d4b88
commit
ae1cf1baf3
@ -17,7 +17,8 @@ if not speedup:
|
|||||||
class SafeLocalTimeZone(tzlocal):
|
class SafeLocalTimeZone(tzlocal):
|
||||||
|
|
||||||
def _isdst(self, dt):
|
def _isdst(self, dt):
|
||||||
# This method in tzlocal raises ValueError if dt is out of range.
|
# This method in tzlocal raises ValueError if dt is out of range (in
|
||||||
|
# older versions of dateutil)
|
||||||
# In such cases, just assume that dt is not DST.
|
# In such cases, just assume that dt is not DST.
|
||||||
try:
|
try:
|
||||||
return super(SafeLocalTimeZone, self)._isdst(dt)
|
return super(SafeLocalTimeZone, self)._isdst(dt)
|
||||||
@ -25,6 +26,17 @@ class SafeLocalTimeZone(tzlocal):
|
|||||||
pass
|
pass
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def _naive_is_dst(self, dt):
|
||||||
|
# This method in tzlocal raises ValueError if dt is out of range (in
|
||||||
|
# newer versions of dateutil)
|
||||||
|
# In such cases, just assume that dt is not DST.
|
||||||
|
try:
|
||||||
|
return super(SafeLocalTimeZone, self)._naive_is_dst(dt)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
utc_tz = tzutc()
|
utc_tz = tzutc()
|
||||||
local_tz = SafeLocalTimeZone()
|
local_tz = SafeLocalTimeZone()
|
||||||
del tzutc, tzlocal
|
del tzutc, tzlocal
|
||||||
@ -48,6 +60,7 @@ def parse_iso8601(date_string, assume_utc=False, as_utc=True):
|
|||||||
return dt
|
return dt
|
||||||
return dt.astimezone(utc_tz if as_utc else local_tz)
|
return dt.astimezone(utc_tz if as_utc else local_tz)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import sys
|
import sys
|
||||||
print(parse_iso8601(sys.argv[-1]))
|
print(parse_iso8601(sys.argv[-1]))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user