diff options
author | Stuart Bishop <stuart@stuartbishop.net> | 2022-08-13 12:00:26 +1000 |
---|---|---|
committer | Stuart Bishop <stuart@stuartbishop.net> | 2022-08-13 12:00:26 +1000 |
commit | 07aa4d962dae5cb7ced4f61fe85a9001a01676df (patch) | |
tree | 7a2505795260fdfb5ed5f61d984d8078e646d0b0 | |
parent | a5c675638d27df27c8e37f908261651a80a2693f (diff) | |
download | pytz-git-07aa4d962dae5cb7ced4f61fe85a9001a01676df.tar.gz |
Revert inclusion of PACKRATDATA=backzone
Per https://github.com/python/tzdata/issues/53#issuecomment-1213628767
I chose to include backzone in pytz in an attempt to head off problems:
Changes to past timestamps
Finish moving to 'backzone' the location-based zones whose
timestamps since 1970 are duplicates; adjust links accordingly.
This change ordinarily affects only pre-1970 timestamps, and with
the new PACKRATLIST option it does not affect any timestamps.
In this round the affected zones are Antarctica/Vostok,
Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik,
Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg,
Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas,
Indian/Cocos, Indian/Kerguelen, Indian/Mahe, Indian/Reunion,
Pacific/Chuuk, Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei,
Pacific/Wake and Pacific/Wallis, and the affected links are
Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland, Pacific/Ponape,
Pacific/Truk, and Pacific/Yap.
This upstream change modifies some of the pre-1970 transitions in obscure
ways that almost zero users will actually care about, and where quite
likely dubious in any case. Such as the times pre-1970 when Belfast was
not on London time or when Amsterdam switched from being 18-20 minutes
ahead of GMT to GMT. Changes to historical timezones has always happened
in the upstream database, and normally they are called corrections
(which only causes breakage if you area storing wallclock times rather
than UTC timestamps).
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | src/README.rst | 2 | ||||
-rw-r--r-- | src/pytz/tests/test_tzinfo.py | 51 |
3 files changed, 4 insertions, 51 deletions
@@ -142,7 +142,7 @@ upload_docs_pythonhosted: docs touch $@ .stamp-zoneinfo: - ${MAKE} -C ${IANA} ZFLAGS='-b fat' PACKRATDATA=backzone TOPDIR=`pwd`/build USRDIR= USRSHAREDIR=etc install + ${MAKE} -C ${IANA} ZFLAGS='-b fat' PACKRATDATA= TOPDIR=`pwd`/build USRDIR= USRSHAREDIR=etc install # Break hard links, working around http://bugs.python.org/issue8876. for d in zoneinfo zoneinfo-leaps zoneinfo-posix; do \ rm -rf `pwd`/build/etc/$$d.tmp; \ diff --git a/src/README.rst b/src/README.rst index 5f50692..cbf3535 100644 --- a/src/README.rst +++ b/src/README.rst @@ -91,7 +91,7 @@ Unfortunately using the tzinfo argument of the standard datetime constructors ''does not work'' with pytz for many timezones. >>> datetime(2002, 10, 27, 12, 0, 0, tzinfo=amsterdam).strftime(fmt) # /!\ Does not work this way! -'2002-10-27 12:00:00 LMT+0020' +'2002-10-27 12:00:00 LMT+0018' It is safe for timezones without daylight saving transitions though, such as UTC: diff --git a/src/pytz/tests/test_tzinfo.py b/src/pytz/tests/test_tzinfo.py index fe396ea..3e3d6f2 100644 --- a/src/pytz/tests/test_tzinfo.py +++ b/src/pytz/tests/test_tzinfo.py @@ -612,33 +612,6 @@ class ReferenceUSEasternDSTEndTestCase(USEasternDSTEndTestCase): class LocalTestCase(unittest.TestCase): def testLocalize(self): - loc_tz = pytz.timezone('Europe/Amsterdam') - - loc_time = loc_tz.localize(datetime(1930, 5, 10, 0, 0, 0)) - # Actually +00:19:32, but Python datetime rounds this - self.assertEqual(loc_time.strftime('%Z%z'), 'AMT+0020') - - loc_time = loc_tz.localize(datetime(1930, 5, 20, 0, 0, 0)) - # Actually +00:19:32, but Python datetime rounds this - self.assertEqual(loc_time.strftime('%Z%z'), 'NST+0120') - - loc_time = loc_tz.localize(datetime(1940, 5, 10, 0, 0, 0)) - # pre-2017a, abbreviation was NCT - self.assertEqual(loc_time.strftime('%Z%z'), '+0020+0020') - - loc_time = loc_tz.localize(datetime(1940, 5, 20, 0, 0, 0)) - self.assertEqual(loc_time.strftime('%Z%z'), 'CEST+0200') - - loc_time = loc_tz.localize(datetime(2004, 2, 1, 0, 0, 0)) - self.assertEqual(loc_time.strftime('%Z%z'), 'CET+0100') - - loc_time = loc_tz.localize(datetime(2004, 4, 1, 0, 0, 0)) - self.assertEqual(loc_time.strftime('%Z%z'), 'CEST+0200') - - loc_time = loc_tz.localize(datetime(1943, 3, 29, 1, 59, 59)) - self.assertEqual(loc_time.strftime('%Z%z'), 'CET+0100') - - # Switch to US loc_tz = pytz.timezone('US/Eastern') # End of DST ambiguity check @@ -712,26 +685,6 @@ class LocalTestCase(unittest.TestCase): '2004-04-04 01:50:00 EST-0500' ) - def testPartialMinuteOffsets(self): - # utcoffset in Amsterdam was not a whole minute until 1937 - # However, we fudge this by rounding them, as the Python - # datetime library - tz = pytz.timezone('Europe/Amsterdam') - utc_dt = datetime(1914, 1, 1, 13, 40, 28, tzinfo=UTC) # correct - utc_dt = utc_dt.replace(second=0) # But we need to fudge it - loc_dt = utc_dt.astimezone(tz) - self.assertEqual( - loc_dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'), - '1914-01-01 14:00:00 AMT+0020' - ) - - # And get back... - utc_dt = loc_dt.astimezone(UTC) - self.assertEqual( - utc_dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'), - '1914-01-01 13:40:00 UTC+0000' - ) - def no_testCreateLocaltime(self): # It would be nice if this worked, but it doesn't. tz = pytz.timezone('Europe/Amsterdam') @@ -759,8 +712,8 @@ class CommonTimezonesTestCase(unittest.TestCase): def test_belfast(self): self.assertTrue('Europe/Belfast' in pytz.all_timezones_set) - self.assertTrue('Europe/Belfast' in pytz.common_timezones) - self.assertTrue('Europe/Belfast' in pytz.common_timezones_set) + self.assertFalse('Europe/Belfast' in pytz.common_timezones) + self.assertFalse('Europe/Belfast' in pytz.common_timezones_set) class ZoneCaseInsensitivityTestCase(unittest.TestCase): |