From 0f02fab2593536087012a529270a15eedf356fca Mon Sep 17 00:00:00 2001 From: JonnyWong16 Date: Thu, 19 Mar 2020 20:38:23 -0700 Subject: [PATCH] Update tzlocal to 2.1b1 --- lib/tzlocal/CHANGES.txt | 11 ++++++++++- lib/tzlocal/unix.py | 2 +- lib/tzlocal/utils.py | 12 ++++++++++-- lib/tzlocal/windows_tz.py | 12 +++++++----- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/lib/tzlocal/CHANGES.txt b/lib/tzlocal/CHANGES.txt index 98798fe1..43e9f35b 100644 --- a/lib/tzlocal/CHANGES.txt +++ b/lib/tzlocal/CHANGES.txt @@ -1,6 +1,15 @@ Changes ======= +2.1b1 (2020-02-08) +------------------ + +- The is_dst flag is wrong for Europe/Dublin on some Unix releases. + I changed to another way of determining if DST is in effect or not. + +- Added support for Python 3.7 and 3.8. Dropped 3.5 although it still works. + + 2.0.0 (2019-07-23) ------------------ @@ -14,7 +23,7 @@ Major differences since 1.5.1 This change is because Docker images often have no configuration at all, and the unix utilities will then default to UTC, so we follow that. -- If tzlocal on Unix finds a timezone name in a /etc config file, then +- If tzlocal on Unix finds a timezone name in a /etc config file, then tzlocal now verifies that the timezone it fouds has the same offset as the local computer is configured with. If it doesn't, something is configured incorrectly. (Victor Torres, regebro) diff --git a/lib/tzlocal/unix.py b/lib/tzlocal/unix.py index 388273c2..8574965a 100644 --- a/lib/tzlocal/unix.py +++ b/lib/tzlocal/unix.py @@ -138,7 +138,7 @@ def _get_localzone(_root='/'): if os.path.exists(tzpath) and os.path.islink(tzpath): tzpath = os.path.realpath(tzpath) start = tzpath.find("/")+1 - while start is not 0: + while start != 0: tzpath = tzpath[start:] try: return pytz.timezone(tzpath) diff --git a/lib/tzlocal/utils.py b/lib/tzlocal/utils.py index bd9d663e..5a677990 100644 --- a/lib/tzlocal/utils.py +++ b/lib/tzlocal/utils.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- +import time import datetime +import calendar def get_system_offset(): @@ -11,8 +13,14 @@ def get_system_offset(): To keep compatibility with Windows, we're always importing time module here. """ - import time - if time.daylight and time.localtime().tm_isdst > 0: + + localtime = calendar.timegm(time.localtime()) + gmtime = calendar.timegm(time.gmtime()) + offset = gmtime - localtime + # We could get the localtime and gmtime on either side of a second switch + # so we check that the difference is less than one minute, because nobody + # has that small DST differences. + if abs(offset - time.altzone) < 60: return -time.altzone else: return -time.timezone diff --git a/lib/tzlocal/windows_tz.py b/lib/tzlocal/windows_tz.py index 3d691c85..86ba807d 100644 --- a/lib/tzlocal/windows_tz.py +++ b/lib/tzlocal/windows_tz.py @@ -87,6 +87,7 @@ win_tz = {'AUS Central Standard Time': 'Australia/Darwin', 'Pacific Standard Time (Mexico)': 'America/Tijuana', 'Pakistan Standard Time': 'Asia/Karachi', 'Paraguay Standard Time': 'America/Asuncion', + 'Qyzylorda Standard Time': 'Asia/Qyzylorda', 'Romance Standard Time': 'Europe/Paris', 'Russia Time Zone 10': 'Asia/Srednekolymsk', 'Russia Time Zone 11': 'Asia/Kamchatka', @@ -127,6 +128,7 @@ win_tz = {'AUS Central Standard Time': 'Australia/Darwin', 'Ulaanbaatar Standard Time': 'Asia/Ulaanbaatar', 'Venezuela Standard Time': 'America/Caracas', 'Vladivostok Standard Time': 'Asia/Vladivostok', + 'Volgograd Standard Time': 'Europe/Volgograd', 'W. Australia Standard Time': 'Australia/Perth', 'W. Central Africa Standard Time': 'Africa/Lagos', 'W. Europe Standard Time': 'Europe/Berlin', @@ -287,7 +289,7 @@ tz_win = {'Africa/Abidjan': 'Greenwich Standard Time', 'America/Mendoza': 'Argentina Standard Time', 'America/Menominee': 'Central Standard Time', 'America/Merida': 'Central Standard Time (Mexico)', - 'America/Metlakatla': 'Pacific Standard Time', + 'America/Metlakatla': 'Alaskan Standard Time', 'America/Mexico_City': 'Central Standard Time (Mexico)', 'America/Miquelon': 'Saint Pierre Standard Time', 'America/Moncton': 'Atlantic Standard Time', @@ -347,13 +349,13 @@ tz_win = {'Africa/Abidjan': 'Greenwich Standard Time', 'America/Winnipeg': 'Central Standard Time', 'America/Yakutat': 'Alaskan Standard Time', 'America/Yellowknife': 'Mountain Standard Time', - 'Antarctica/Casey': 'W. Australia Standard Time', + 'Antarctica/Casey': 'Singapore Standard Time', 'Antarctica/Davis': 'SE Asia Standard Time', 'Antarctica/DumontDUrville': 'West Pacific Standard Time', 'Antarctica/Macquarie': 'Central Pacific Standard Time', 'Antarctica/Mawson': 'West Asia Standard Time', 'Antarctica/McMurdo': 'New Zealand Standard Time', - 'Antarctica/Palmer': 'Magallanes Standard Time', + 'Antarctica/Palmer': 'SA Eastern Standard Time', 'Antarctica/Rothera': 'SA Eastern Standard Time', 'Antarctica/South_Pole': 'New Zealand Standard Time', 'Antarctica/Syowa': 'E. Africa Standard Time', @@ -424,7 +426,7 @@ tz_win = {'Africa/Abidjan': 'Greenwich Standard Time', 'Asia/Pyongyang': 'North Korea Standard Time', 'Asia/Qatar': 'Arab Standard Time', 'Asia/Qostanay': 'Central Asia Standard Time', - 'Asia/Qyzylorda': 'West Asia Standard Time', + 'Asia/Qyzylorda': 'Qyzylorda Standard Time', 'Asia/Rangoon': 'Myanmar Standard Time', 'Asia/Riyadh': 'Arab Standard Time', 'Asia/Saigon': 'SE Asia Standard Time', @@ -592,7 +594,7 @@ tz_win = {'Africa/Abidjan': 'Greenwich Standard Time', 'Europe/Vatican': 'W. Europe Standard Time', 'Europe/Vienna': 'W. Europe Standard Time', 'Europe/Vilnius': 'FLE Standard Time', - 'Europe/Volgograd': 'Russian Standard Time', + 'Europe/Volgograd': 'Volgograd Standard Time', 'Europe/Warsaw': 'Central European Standard Time', 'Europe/Zagreb': 'Central European Standard Time', 'Europe/Zaporozhye': 'FLE Standard Time',