demo + utils venv
This commit is contained in:
@@ -0,0 +1,584 @@
|
||||
pytz - World Timezone Definitions for Python
|
||||
============================================
|
||||
|
||||
:Author: Stuart Bishop <stuart@stuartbishop.net>
|
||||
|
||||
Introduction
|
||||
~~~~~~~~~~~~
|
||||
|
||||
pytz brings the Olson tz database into Python. This library allows
|
||||
accurate and cross platform timezone calculations using Python 2.4
|
||||
or higher. It also solves the issue of ambiguous times at the end
|
||||
of daylight saving time, which you can read more about in the Python
|
||||
Library Reference (``datetime.tzinfo``).
|
||||
|
||||
Almost all of the Olson timezones are supported.
|
||||
|
||||
.. note::
|
||||
|
||||
This library differs from the documented Python API for
|
||||
tzinfo implementations; if you want to create local wallclock
|
||||
times you need to use the ``localize()`` method documented in this
|
||||
document. In addition, if you perform date arithmetic on local
|
||||
times that cross DST boundaries, the result may be in an incorrect
|
||||
timezone (ie. subtract 1 minute from 2002-10-27 1:00 EST and you get
|
||||
2002-10-27 0:59 EST instead of the correct 2002-10-27 1:59 EDT). A
|
||||
``normalize()`` method is provided to correct this. Unfortunately these
|
||||
issues cannot be resolved without modifying the Python datetime
|
||||
implementation (see PEP-431).
|
||||
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
This package can either be installed using ``pip`` or from a tarball using the
|
||||
standard Python distutils.
|
||||
|
||||
If you are installing using ``pip``, you don't need to download anything as the
|
||||
latest version will be downloaded for you from PyPI::
|
||||
|
||||
pip install pytz
|
||||
|
||||
If you are installing from a tarball, run the following command as an
|
||||
administrative user::
|
||||
|
||||
python setup.py install
|
||||
|
||||
|
||||
Example & Usage
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Localized times and date arithmetic
|
||||
-----------------------------------
|
||||
|
||||
>>> from datetime import datetime, timedelta
|
||||
>>> from pytz import timezone
|
||||
>>> import pytz
|
||||
>>> utc = pytz.utc
|
||||
>>> utc.zone
|
||||
'UTC'
|
||||
>>> eastern = timezone('US/Eastern')
|
||||
>>> eastern.zone
|
||||
'US/Eastern'
|
||||
>>> amsterdam = timezone('Europe/Amsterdam')
|
||||
>>> fmt = '%Y-%m-%d %H:%M:%S %Z%z'
|
||||
|
||||
This library only supports two ways of building a localized time. The
|
||||
first is to use the ``localize()`` method provided by the pytz library.
|
||||
This is used to localize a naive datetime (datetime with no timezone
|
||||
information):
|
||||
|
||||
>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0))
|
||||
>>> print(loc_dt.strftime(fmt))
|
||||
2002-10-27 06:00:00 EST-0500
|
||||
|
||||
The second way of building a localized time is by converting an existing
|
||||
localized time using the standard ``astimezone()`` method:
|
||||
|
||||
>>> ams_dt = loc_dt.astimezone(amsterdam)
|
||||
>>> ams_dt.strftime(fmt)
|
||||
'2002-10-27 12:00:00 CET+0100'
|
||||
|
||||
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'
|
||||
|
||||
It is safe for timezones without daylight saving transitions though, such
|
||||
as UTC:
|
||||
|
||||
>>> datetime(2002, 10, 27, 12, 0, 0, tzinfo=pytz.utc).strftime(fmt) # /!\ Not recommended except for UTC
|
||||
'2002-10-27 12:00:00 UTC+0000'
|
||||
|
||||
The preferred way of dealing with times is to always work in UTC,
|
||||
converting to localtime only when generating output to be read
|
||||
by humans.
|
||||
|
||||
>>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
|
||||
>>> loc_dt = utc_dt.astimezone(eastern)
|
||||
>>> loc_dt.strftime(fmt)
|
||||
'2002-10-27 01:00:00 EST-0500'
|
||||
|
||||
This library also allows you to do date arithmetic using local
|
||||
times, although it is more complicated than working in UTC as you
|
||||
need to use the ``normalize()`` method to handle daylight saving time
|
||||
and other timezone transitions. In this example, ``loc_dt`` is set
|
||||
to the instant when daylight saving time ends in the US/Eastern
|
||||
timezone.
|
||||
|
||||
>>> before = loc_dt - timedelta(minutes=10)
|
||||
>>> before.strftime(fmt)
|
||||
'2002-10-27 00:50:00 EST-0500'
|
||||
>>> eastern.normalize(before).strftime(fmt)
|
||||
'2002-10-27 01:50:00 EDT-0400'
|
||||
>>> after = eastern.normalize(before + timedelta(minutes=20))
|
||||
>>> after.strftime(fmt)
|
||||
'2002-10-27 01:10:00 EST-0500'
|
||||
|
||||
Creating local times is also tricky, and the reason why working with
|
||||
local times is not recommended. Unfortunately, you cannot just pass
|
||||
a ``tzinfo`` argument when constructing a datetime (see the next
|
||||
section for more details)
|
||||
|
||||
>>> dt = datetime(2002, 10, 27, 1, 30, 0)
|
||||
>>> dt1 = eastern.localize(dt, is_dst=True)
|
||||
>>> dt1.strftime(fmt)
|
||||
'2002-10-27 01:30:00 EDT-0400'
|
||||
>>> dt2 = eastern.localize(dt, is_dst=False)
|
||||
>>> dt2.strftime(fmt)
|
||||
'2002-10-27 01:30:00 EST-0500'
|
||||
|
||||
Converting between timezones is more easily done, using the
|
||||
standard astimezone method.
|
||||
|
||||
>>> utc_dt = utc.localize(datetime.utcfromtimestamp(1143408899))
|
||||
>>> utc_dt.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
>>> au_tz = timezone('Australia/Sydney')
|
||||
>>> au_dt = utc_dt.astimezone(au_tz)
|
||||
>>> au_dt.strftime(fmt)
|
||||
'2006-03-27 08:34:59 AEDT+1100'
|
||||
>>> utc_dt2 = au_dt.astimezone(utc)
|
||||
>>> utc_dt2.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
>>> utc_dt == utc_dt2
|
||||
True
|
||||
|
||||
You can take shortcuts when dealing with the UTC side of timezone
|
||||
conversions. ``normalize()`` and ``localize()`` are not really
|
||||
necessary when there are no daylight saving time transitions to
|
||||
deal with.
|
||||
|
||||
>>> utc_dt = datetime.utcfromtimestamp(1143408899).replace(tzinfo=utc)
|
||||
>>> utc_dt.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
>>> au_tz = timezone('Australia/Sydney')
|
||||
>>> au_dt = au_tz.normalize(utc_dt.astimezone(au_tz))
|
||||
>>> au_dt.strftime(fmt)
|
||||
'2006-03-27 08:34:59 AEDT+1100'
|
||||
>>> utc_dt2 = au_dt.astimezone(utc)
|
||||
>>> utc_dt2.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
|
||||
|
||||
``tzinfo`` API
|
||||
--------------
|
||||
|
||||
The ``tzinfo`` instances returned by the ``timezone()`` function have
|
||||
been extended to cope with ambiguous times by adding an ``is_dst``
|
||||
parameter to the ``utcoffset()``, ``dst()`` && ``tzname()`` methods.
|
||||
|
||||
>>> tz = timezone('America/St_Johns')
|
||||
|
||||
>>> normal = datetime(2009, 9, 1)
|
||||
>>> ambiguous = datetime(2009, 10, 31, 23, 30)
|
||||
|
||||
The ``is_dst`` parameter is ignored for most timestamps. It is only used
|
||||
during DST transition ambiguous periods to resolve that ambiguity.
|
||||
|
||||
>>> tz.utcoffset(normal, is_dst=True)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(normal, is_dst=True)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(normal, is_dst=True)
|
||||
'NDT'
|
||||
|
||||
>>> tz.utcoffset(ambiguous, is_dst=True)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(ambiguous, is_dst=True)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(ambiguous, is_dst=True)
|
||||
'NDT'
|
||||
|
||||
>>> tz.utcoffset(normal, is_dst=False)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(normal, is_dst=False)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(normal, is_dst=False)
|
||||
'NDT'
|
||||
|
||||
>>> tz.utcoffset(ambiguous, is_dst=False)
|
||||
datetime.timedelta(-1, 73800)
|
||||
>>> tz.dst(ambiguous, is_dst=False)
|
||||
datetime.timedelta(0)
|
||||
>>> tz.tzname(ambiguous, is_dst=False)
|
||||
'NST'
|
||||
|
||||
If ``is_dst`` is not specified, ambiguous timestamps will raise
|
||||
an ``pytz.exceptions.AmbiguousTimeError`` exception.
|
||||
|
||||
>>> tz.utcoffset(normal)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(normal)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(normal)
|
||||
'NDT'
|
||||
|
||||
>>> import pytz.exceptions
|
||||
>>> try:
|
||||
... tz.utcoffset(ambiguous)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % ambiguous)
|
||||
pytz.exceptions.AmbiguousTimeError: 2009-10-31 23:30:00
|
||||
>>> try:
|
||||
... tz.dst(ambiguous)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % ambiguous)
|
||||
pytz.exceptions.AmbiguousTimeError: 2009-10-31 23:30:00
|
||||
>>> try:
|
||||
... tz.tzname(ambiguous)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % ambiguous)
|
||||
pytz.exceptions.AmbiguousTimeError: 2009-10-31 23:30:00
|
||||
|
||||
|
||||
Problems with Localtime
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The major problem we have to deal with is that certain datetimes
|
||||
may occur twice in a year. For example, in the US/Eastern timezone
|
||||
on the last Sunday morning in October, the following sequence
|
||||
happens:
|
||||
|
||||
- 01:00 EDT occurs
|
||||
- 1 hour later, instead of 2:00am the clock is turned back 1 hour
|
||||
and 01:00 happens again (this time 01:00 EST)
|
||||
|
||||
In fact, every instant between 01:00 and 02:00 occurs twice. This means
|
||||
that if you try and create a time in the 'US/Eastern' timezone
|
||||
the standard datetime syntax, there is no way to specify if you meant
|
||||
before of after the end-of-daylight-saving-time transition. Using the
|
||||
pytz custom syntax, the best you can do is make an educated guess:
|
||||
|
||||
>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 1, 30, 00))
|
||||
>>> loc_dt.strftime(fmt)
|
||||
'2002-10-27 01:30:00 EST-0500'
|
||||
|
||||
As you can see, the system has chosen one for you and there is a 50%
|
||||
chance of it being out by one hour. For some applications, this does
|
||||
not matter. However, if you are trying to schedule meetings with people
|
||||
in different timezones or analyze log files it is not acceptable.
|
||||
|
||||
The best and simplest solution is to stick with using UTC. The pytz
|
||||
package encourages using UTC for internal timezone representation by
|
||||
including a special UTC implementation based on the standard Python
|
||||
reference implementation in the Python documentation.
|
||||
|
||||
The UTC timezone unpickles to be the same instance, and pickles to a
|
||||
smaller size than other pytz tzinfo instances. The UTC implementation
|
||||
can be obtained as pytz.utc, pytz.UTC, or pytz.timezone('UTC').
|
||||
|
||||
>>> import pickle, pytz
|
||||
>>> dt = datetime(2005, 3, 1, 14, 13, 21, tzinfo=utc)
|
||||
>>> naive = dt.replace(tzinfo=None)
|
||||
>>> p = pickle.dumps(dt, 1)
|
||||
>>> naive_p = pickle.dumps(naive, 1)
|
||||
>>> len(p) - len(naive_p)
|
||||
17
|
||||
>>> new = pickle.loads(p)
|
||||
>>> new == dt
|
||||
True
|
||||
>>> new is dt
|
||||
False
|
||||
>>> new.tzinfo is dt.tzinfo
|
||||
True
|
||||
>>> pytz.utc is pytz.UTC is pytz.timezone('UTC')
|
||||
True
|
||||
|
||||
Note that some other timezones are commonly thought of as the same (GMT,
|
||||
Greenwich, Universal, etc.). The definition of UTC is distinct from these
|
||||
other timezones, and they are not equivalent. For this reason, they will
|
||||
not compare the same in Python.
|
||||
|
||||
>>> utc == pytz.timezone('GMT')
|
||||
False
|
||||
|
||||
See the section `What is UTC`_, below.
|
||||
|
||||
If you insist on working with local times, this library provides a
|
||||
facility for constructing them unambiguously:
|
||||
|
||||
>>> loc_dt = datetime(2002, 10, 27, 1, 30, 00)
|
||||
>>> est_dt = eastern.localize(loc_dt, is_dst=True)
|
||||
>>> edt_dt = eastern.localize(loc_dt, is_dst=False)
|
||||
>>> print(est_dt.strftime(fmt) + ' / ' + edt_dt.strftime(fmt))
|
||||
2002-10-27 01:30:00 EDT-0400 / 2002-10-27 01:30:00 EST-0500
|
||||
|
||||
If you pass None as the is_dst flag to localize(), pytz will refuse to
|
||||
guess and raise exceptions if you try to build ambiguous or non-existent
|
||||
times.
|
||||
|
||||
For example, 1:30am on 27th Oct 2002 happened twice in the US/Eastern
|
||||
timezone when the clocks where put back at the end of Daylight Saving
|
||||
Time:
|
||||
|
||||
>>> dt = datetime(2002, 10, 27, 1, 30, 00)
|
||||
>>> try:
|
||||
... eastern.localize(dt, is_dst=None)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % dt)
|
||||
pytz.exceptions.AmbiguousTimeError: 2002-10-27 01:30:00
|
||||
|
||||
Similarly, 2:30am on 7th April 2002 never happened at all in the
|
||||
US/Eastern timezone, as the clocks where put forward at 2:00am skipping
|
||||
the entire hour:
|
||||
|
||||
>>> dt = datetime(2002, 4, 7, 2, 30, 00)
|
||||
>>> try:
|
||||
... eastern.localize(dt, is_dst=None)
|
||||
... except pytz.exceptions.NonExistentTimeError:
|
||||
... print('pytz.exceptions.NonExistentTimeError: %s' % dt)
|
||||
pytz.exceptions.NonExistentTimeError: 2002-04-07 02:30:00
|
||||
|
||||
Both of these exceptions share a common base class to make error handling
|
||||
easier:
|
||||
|
||||
>>> isinstance(pytz.AmbiguousTimeError(), pytz.InvalidTimeError)
|
||||
True
|
||||
>>> isinstance(pytz.NonExistentTimeError(), pytz.InvalidTimeError)
|
||||
True
|
||||
|
||||
|
||||
A special case is where countries change their timezone definitions
|
||||
with no daylight savings time switch. For example, in 1915 Warsaw
|
||||
switched from Warsaw time to Central European time with no daylight savings
|
||||
transition. So at the stroke of midnight on August 5th 1915 the clocks
|
||||
were wound back 24 minutes creating an ambiguous time period that cannot
|
||||
be specified without referring to the timezone abbreviation or the
|
||||
actual UTC offset. In this case midnight happened twice, neither time
|
||||
during a daylight saving time period. pytz handles this transition by
|
||||
treating the ambiguous period before the switch as daylight savings
|
||||
time, and the ambiguous period after as standard time.
|
||||
|
||||
|
||||
>>> warsaw = pytz.timezone('Europe/Warsaw')
|
||||
>>> amb_dt1 = warsaw.localize(datetime(1915, 8, 4, 23, 59, 59), is_dst=True)
|
||||
>>> amb_dt1.strftime(fmt)
|
||||
'1915-08-04 23:59:59 WMT+0124'
|
||||
>>> amb_dt2 = warsaw.localize(datetime(1915, 8, 4, 23, 59, 59), is_dst=False)
|
||||
>>> amb_dt2.strftime(fmt)
|
||||
'1915-08-04 23:59:59 CET+0100'
|
||||
>>> switch_dt = warsaw.localize(datetime(1915, 8, 5, 00, 00, 00), is_dst=False)
|
||||
>>> switch_dt.strftime(fmt)
|
||||
'1915-08-05 00:00:00 CET+0100'
|
||||
>>> str(switch_dt - amb_dt1)
|
||||
'0:24:01'
|
||||
>>> str(switch_dt - amb_dt2)
|
||||
'0:00:01'
|
||||
|
||||
The best way of creating a time during an ambiguous time period is
|
||||
by converting from another timezone such as UTC:
|
||||
|
||||
>>> utc_dt = datetime(1915, 8, 4, 22, 36, tzinfo=pytz.utc)
|
||||
>>> utc_dt.astimezone(warsaw).strftime(fmt)
|
||||
'1915-08-04 23:36:00 CET+0100'
|
||||
|
||||
The standard Python way of handling all these ambiguities is not to
|
||||
handle them, such as demonstrated in this example using the US/Eastern
|
||||
timezone definition from the Python documentation (Note that this
|
||||
implementation only works for dates between 1987 and 2006 - it is
|
||||
included for tests only!):
|
||||
|
||||
>>> from pytz.reference import Eastern # pytz.reference only for tests
|
||||
>>> dt = datetime(2002, 10, 27, 0, 30, tzinfo=Eastern)
|
||||
>>> str(dt)
|
||||
'2002-10-27 00:30:00-04:00'
|
||||
>>> str(dt + timedelta(hours=1))
|
||||
'2002-10-27 01:30:00-05:00'
|
||||
>>> str(dt + timedelta(hours=2))
|
||||
'2002-10-27 02:30:00-05:00'
|
||||
>>> str(dt + timedelta(hours=3))
|
||||
'2002-10-27 03:30:00-05:00'
|
||||
|
||||
Notice the first two results? At first glance you might think they are
|
||||
correct, but taking the UTC offset into account you find that they are
|
||||
actually two hours appart instead of the 1 hour we asked for.
|
||||
|
||||
>>> from pytz.reference import UTC # pytz.reference only for tests
|
||||
>>> str(dt.astimezone(UTC))
|
||||
'2002-10-27 04:30:00+00:00'
|
||||
>>> str((dt + timedelta(hours=1)).astimezone(UTC))
|
||||
'2002-10-27 06:30:00+00:00'
|
||||
|
||||
|
||||
Country Information
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A mechanism is provided to access the timezones commonly in use
|
||||
for a particular country, looked up using the ISO 3166 country code.
|
||||
It returns a list of strings that can be used to retrieve the relevant
|
||||
tzinfo instance using ``pytz.timezone()``:
|
||||
|
||||
>>> print(' '.join(pytz.country_timezones['nz']))
|
||||
Pacific/Auckland Pacific/Chatham
|
||||
|
||||
The Olson database comes with a ISO 3166 country code to English country
|
||||
name mapping that pytz exposes as a dictionary:
|
||||
|
||||
>>> print(pytz.country_names['nz'])
|
||||
New Zealand
|
||||
|
||||
|
||||
What is UTC
|
||||
~~~~~~~~~~~
|
||||
|
||||
'UTC' is `Coordinated Universal Time`_. It is a successor to, but distinct
|
||||
from, Greenwich Mean Time (GMT) and the various definitions of Universal
|
||||
Time. UTC is now the worldwide standard for regulating clocks and time
|
||||
measurement.
|
||||
|
||||
All other timezones are defined relative to UTC, and include offsets like
|
||||
UTC+0800 - hours to add or subtract from UTC to derive the local time. No
|
||||
daylight saving time occurs in UTC, making it a useful timezone to perform
|
||||
date arithmetic without worrying about the confusion and ambiguities caused
|
||||
by daylight saving time transitions, your country changing its timezone, or
|
||||
mobile computers that roam through multiple timezones.
|
||||
|
||||
.. _Coordinated Universal Time: https://en.wikipedia.org/wiki/Coordinated_Universal_Time
|
||||
|
||||
|
||||
Helpers
|
||||
~~~~~~~
|
||||
|
||||
There are two lists of timezones provided.
|
||||
|
||||
``all_timezones`` is the exhaustive list of the timezone names that can
|
||||
be used.
|
||||
|
||||
>>> from pytz import all_timezones
|
||||
>>> len(all_timezones) >= 500
|
||||
True
|
||||
>>> 'Etc/Greenwich' in all_timezones
|
||||
True
|
||||
|
||||
``common_timezones`` is a list of useful, current timezones. It doesn't
|
||||
contain deprecated zones or historical zones, except for a few I've
|
||||
deemed in common usage, such as US/Eastern (open a bug report if you
|
||||
think other timezones are deserving of being included here). It is also
|
||||
a sequence of strings.
|
||||
|
||||
>>> from pytz import common_timezones
|
||||
>>> len(common_timezones) < len(all_timezones)
|
||||
True
|
||||
>>> 'Etc/Greenwich' in common_timezones
|
||||
False
|
||||
>>> 'Australia/Melbourne' in common_timezones
|
||||
True
|
||||
>>> 'US/Eastern' in common_timezones
|
||||
True
|
||||
>>> 'Canada/Eastern' in common_timezones
|
||||
True
|
||||
>>> 'Australia/Yancowinna' in all_timezones
|
||||
True
|
||||
>>> 'Australia/Yancowinna' in common_timezones
|
||||
False
|
||||
|
||||
Both ``common_timezones`` and ``all_timezones`` are alphabetically
|
||||
sorted:
|
||||
|
||||
>>> common_timezones_dupe = common_timezones[:]
|
||||
>>> common_timezones_dupe.sort()
|
||||
>>> common_timezones == common_timezones_dupe
|
||||
True
|
||||
>>> all_timezones_dupe = all_timezones[:]
|
||||
>>> all_timezones_dupe.sort()
|
||||
>>> all_timezones == all_timezones_dupe
|
||||
True
|
||||
|
||||
``all_timezones`` and ``common_timezones`` are also available as sets.
|
||||
|
||||
>>> from pytz import all_timezones_set, common_timezones_set
|
||||
>>> 'US/Eastern' in all_timezones_set
|
||||
True
|
||||
>>> 'US/Eastern' in common_timezones_set
|
||||
True
|
||||
>>> 'Australia/Victoria' in common_timezones_set
|
||||
False
|
||||
|
||||
You can also retrieve lists of timezones used by particular countries
|
||||
using the ``country_timezones()`` function. It requires an ISO-3166
|
||||
two letter country code.
|
||||
|
||||
>>> from pytz import country_timezones
|
||||
>>> print(' '.join(country_timezones('ch')))
|
||||
Europe/Zurich
|
||||
>>> print(' '.join(country_timezones('CH')))
|
||||
Europe/Zurich
|
||||
|
||||
|
||||
Internationalization - i18n/l10n
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Pytz is an interface to the IANA database, which uses ASCII names. The `Unicode Consortium's Unicode Locales (CLDR) <http://cldr.unicode.org>`_
|
||||
project provides translations. Thomas Khyn's
|
||||
`l18n <https://pypi.org/project/l18n/>`_ package can be used to access
|
||||
these translations from Python.
|
||||
|
||||
|
||||
License
|
||||
~~~~~~~
|
||||
|
||||
MIT license.
|
||||
|
||||
This code is also available as part of Zope 3 under the Zope Public
|
||||
License, Version 2.1 (ZPL).
|
||||
|
||||
I'm happy to relicense this code if necessary for inclusion in other
|
||||
open source projects.
|
||||
|
||||
|
||||
Latest Versions
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
This package will be updated after releases of the Olson timezone
|
||||
database. The latest version can be downloaded from the `Python Package
|
||||
Index <https://pypi.org/project/pytz/>`_. The code that is used
|
||||
to generate this distribution is hosted on launchpad.net and available
|
||||
using git::
|
||||
|
||||
git clone https://git.launchpad.net/pytz
|
||||
|
||||
A mirror on github is also available at https://github.com/stub42/pytz
|
||||
|
||||
Announcements of new releases are made on
|
||||
`Launchpad <https://launchpad.net/pytz>`_, and the
|
||||
`Atom feed <http://feeds.launchpad.net/pytz/announcements.atom>`_
|
||||
hosted there.
|
||||
|
||||
|
||||
Bugs, Feature Requests & Patches
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Bugs can be reported using `Launchpad <https://bugs.launchpad.net/pytz>`__.
|
||||
|
||||
|
||||
Issues & Limitations
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- Offsets from UTC are rounded to the nearest whole minute, so timezones
|
||||
such as Europe/Amsterdam pre 1937 will be up to 30 seconds out. This
|
||||
is a limitation of the Python datetime library.
|
||||
|
||||
- If you think a timezone definition is incorrect, I probably can't fix
|
||||
it. pytz is a direct translation of the Olson timezone database, and
|
||||
changes to the timezone definitions need to be made to this source.
|
||||
If you find errors they should be reported to the time zone mailing
|
||||
list, linked from http://www.iana.org/time-zones.
|
||||
|
||||
|
||||
Further Reading
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
More info than you want to know about timezones:
|
||||
http://www.twinsun.com/tz/tz-link.htm
|
||||
|
||||
|
||||
Contact
|
||||
~~~~~~~
|
||||
|
||||
Stuart Bishop <stuart@stuartbishop.net>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2003-2018 Stuart Bishop <stuart@stuartbishop.net>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,618 @@
|
||||
Metadata-Version: 2.0
|
||||
Name: pytz
|
||||
Version: 2018.9
|
||||
Summary: World timezone definitions, modern and historical
|
||||
Home-page: http://pythonhosted.org/pytz
|
||||
Author: Stuart Bishop
|
||||
Author-email: stuart@stuartbishop.net
|
||||
Maintainer: Stuart Bishop
|
||||
Maintainer-email: stuart@stuartbishop.net
|
||||
License: MIT
|
||||
Download-URL: https://pypi.org/project/pytz/
|
||||
Keywords: timezone,tzinfo,datetime,olson,time
|
||||
Platform: Independent
|
||||
Classifier: Development Status :: 6 - Mature
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Natural Language :: English
|
||||
Classifier: Operating System :: OS Independent
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: 2.4
|
||||
Classifier: Programming Language :: Python :: 2.5
|
||||
Classifier: Programming Language :: Python :: 2.6
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.0
|
||||
Classifier: Programming Language :: Python :: 3.1
|
||||
Classifier: Programming Language :: Python :: 3.2
|
||||
Classifier: Programming Language :: Python :: 3.3
|
||||
Classifier: Programming Language :: Python :: 3.4
|
||||
Classifier: Programming Language :: Python :: 3.5
|
||||
Classifier: Programming Language :: Python :: 3.6
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
|
||||
pytz - World Timezone Definitions for Python
|
||||
============================================
|
||||
|
||||
:Author: Stuart Bishop <stuart@stuartbishop.net>
|
||||
|
||||
Introduction
|
||||
~~~~~~~~~~~~
|
||||
|
||||
pytz brings the Olson tz database into Python. This library allows
|
||||
accurate and cross platform timezone calculations using Python 2.4
|
||||
or higher. It also solves the issue of ambiguous times at the end
|
||||
of daylight saving time, which you can read more about in the Python
|
||||
Library Reference (``datetime.tzinfo``).
|
||||
|
||||
Almost all of the Olson timezones are supported.
|
||||
|
||||
.. note::
|
||||
|
||||
This library differs from the documented Python API for
|
||||
tzinfo implementations; if you want to create local wallclock
|
||||
times you need to use the ``localize()`` method documented in this
|
||||
document. In addition, if you perform date arithmetic on local
|
||||
times that cross DST boundaries, the result may be in an incorrect
|
||||
timezone (ie. subtract 1 minute from 2002-10-27 1:00 EST and you get
|
||||
2002-10-27 0:59 EST instead of the correct 2002-10-27 1:59 EDT). A
|
||||
``normalize()`` method is provided to correct this. Unfortunately these
|
||||
issues cannot be resolved without modifying the Python datetime
|
||||
implementation (see PEP-431).
|
||||
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
This package can either be installed using ``pip`` or from a tarball using the
|
||||
standard Python distutils.
|
||||
|
||||
If you are installing using ``pip``, you don't need to download anything as the
|
||||
latest version will be downloaded for you from PyPI::
|
||||
|
||||
pip install pytz
|
||||
|
||||
If you are installing from a tarball, run the following command as an
|
||||
administrative user::
|
||||
|
||||
python setup.py install
|
||||
|
||||
|
||||
Example & Usage
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Localized times and date arithmetic
|
||||
-----------------------------------
|
||||
|
||||
>>> from datetime import datetime, timedelta
|
||||
>>> from pytz import timezone
|
||||
>>> import pytz
|
||||
>>> utc = pytz.utc
|
||||
>>> utc.zone
|
||||
'UTC'
|
||||
>>> eastern = timezone('US/Eastern')
|
||||
>>> eastern.zone
|
||||
'US/Eastern'
|
||||
>>> amsterdam = timezone('Europe/Amsterdam')
|
||||
>>> fmt = '%Y-%m-%d %H:%M:%S %Z%z'
|
||||
|
||||
This library only supports two ways of building a localized time. The
|
||||
first is to use the ``localize()`` method provided by the pytz library.
|
||||
This is used to localize a naive datetime (datetime with no timezone
|
||||
information):
|
||||
|
||||
>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0))
|
||||
>>> print(loc_dt.strftime(fmt))
|
||||
2002-10-27 06:00:00 EST-0500
|
||||
|
||||
The second way of building a localized time is by converting an existing
|
||||
localized time using the standard ``astimezone()`` method:
|
||||
|
||||
>>> ams_dt = loc_dt.astimezone(amsterdam)
|
||||
>>> ams_dt.strftime(fmt)
|
||||
'2002-10-27 12:00:00 CET+0100'
|
||||
|
||||
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'
|
||||
|
||||
It is safe for timezones without daylight saving transitions though, such
|
||||
as UTC:
|
||||
|
||||
>>> datetime(2002, 10, 27, 12, 0, 0, tzinfo=pytz.utc).strftime(fmt) # /!\ Not recommended except for UTC
|
||||
'2002-10-27 12:00:00 UTC+0000'
|
||||
|
||||
The preferred way of dealing with times is to always work in UTC,
|
||||
converting to localtime only when generating output to be read
|
||||
by humans.
|
||||
|
||||
>>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
|
||||
>>> loc_dt = utc_dt.astimezone(eastern)
|
||||
>>> loc_dt.strftime(fmt)
|
||||
'2002-10-27 01:00:00 EST-0500'
|
||||
|
||||
This library also allows you to do date arithmetic using local
|
||||
times, although it is more complicated than working in UTC as you
|
||||
need to use the ``normalize()`` method to handle daylight saving time
|
||||
and other timezone transitions. In this example, ``loc_dt`` is set
|
||||
to the instant when daylight saving time ends in the US/Eastern
|
||||
timezone.
|
||||
|
||||
>>> before = loc_dt - timedelta(minutes=10)
|
||||
>>> before.strftime(fmt)
|
||||
'2002-10-27 00:50:00 EST-0500'
|
||||
>>> eastern.normalize(before).strftime(fmt)
|
||||
'2002-10-27 01:50:00 EDT-0400'
|
||||
>>> after = eastern.normalize(before + timedelta(minutes=20))
|
||||
>>> after.strftime(fmt)
|
||||
'2002-10-27 01:10:00 EST-0500'
|
||||
|
||||
Creating local times is also tricky, and the reason why working with
|
||||
local times is not recommended. Unfortunately, you cannot just pass
|
||||
a ``tzinfo`` argument when constructing a datetime (see the next
|
||||
section for more details)
|
||||
|
||||
>>> dt = datetime(2002, 10, 27, 1, 30, 0)
|
||||
>>> dt1 = eastern.localize(dt, is_dst=True)
|
||||
>>> dt1.strftime(fmt)
|
||||
'2002-10-27 01:30:00 EDT-0400'
|
||||
>>> dt2 = eastern.localize(dt, is_dst=False)
|
||||
>>> dt2.strftime(fmt)
|
||||
'2002-10-27 01:30:00 EST-0500'
|
||||
|
||||
Converting between timezones is more easily done, using the
|
||||
standard astimezone method.
|
||||
|
||||
>>> utc_dt = utc.localize(datetime.utcfromtimestamp(1143408899))
|
||||
>>> utc_dt.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
>>> au_tz = timezone('Australia/Sydney')
|
||||
>>> au_dt = utc_dt.astimezone(au_tz)
|
||||
>>> au_dt.strftime(fmt)
|
||||
'2006-03-27 08:34:59 AEDT+1100'
|
||||
>>> utc_dt2 = au_dt.astimezone(utc)
|
||||
>>> utc_dt2.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
>>> utc_dt == utc_dt2
|
||||
True
|
||||
|
||||
You can take shortcuts when dealing with the UTC side of timezone
|
||||
conversions. ``normalize()`` and ``localize()`` are not really
|
||||
necessary when there are no daylight saving time transitions to
|
||||
deal with.
|
||||
|
||||
>>> utc_dt = datetime.utcfromtimestamp(1143408899).replace(tzinfo=utc)
|
||||
>>> utc_dt.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
>>> au_tz = timezone('Australia/Sydney')
|
||||
>>> au_dt = au_tz.normalize(utc_dt.astimezone(au_tz))
|
||||
>>> au_dt.strftime(fmt)
|
||||
'2006-03-27 08:34:59 AEDT+1100'
|
||||
>>> utc_dt2 = au_dt.astimezone(utc)
|
||||
>>> utc_dt2.strftime(fmt)
|
||||
'2006-03-26 21:34:59 UTC+0000'
|
||||
|
||||
|
||||
``tzinfo`` API
|
||||
--------------
|
||||
|
||||
The ``tzinfo`` instances returned by the ``timezone()`` function have
|
||||
been extended to cope with ambiguous times by adding an ``is_dst``
|
||||
parameter to the ``utcoffset()``, ``dst()`` && ``tzname()`` methods.
|
||||
|
||||
>>> tz = timezone('America/St_Johns')
|
||||
|
||||
>>> normal = datetime(2009, 9, 1)
|
||||
>>> ambiguous = datetime(2009, 10, 31, 23, 30)
|
||||
|
||||
The ``is_dst`` parameter is ignored for most timestamps. It is only used
|
||||
during DST transition ambiguous periods to resolve that ambiguity.
|
||||
|
||||
>>> tz.utcoffset(normal, is_dst=True)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(normal, is_dst=True)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(normal, is_dst=True)
|
||||
'NDT'
|
||||
|
||||
>>> tz.utcoffset(ambiguous, is_dst=True)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(ambiguous, is_dst=True)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(ambiguous, is_dst=True)
|
||||
'NDT'
|
||||
|
||||
>>> tz.utcoffset(normal, is_dst=False)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(normal, is_dst=False)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(normal, is_dst=False)
|
||||
'NDT'
|
||||
|
||||
>>> tz.utcoffset(ambiguous, is_dst=False)
|
||||
datetime.timedelta(-1, 73800)
|
||||
>>> tz.dst(ambiguous, is_dst=False)
|
||||
datetime.timedelta(0)
|
||||
>>> tz.tzname(ambiguous, is_dst=False)
|
||||
'NST'
|
||||
|
||||
If ``is_dst`` is not specified, ambiguous timestamps will raise
|
||||
an ``pytz.exceptions.AmbiguousTimeError`` exception.
|
||||
|
||||
>>> tz.utcoffset(normal)
|
||||
datetime.timedelta(-1, 77400)
|
||||
>>> tz.dst(normal)
|
||||
datetime.timedelta(0, 3600)
|
||||
>>> tz.tzname(normal)
|
||||
'NDT'
|
||||
|
||||
>>> import pytz.exceptions
|
||||
>>> try:
|
||||
... tz.utcoffset(ambiguous)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % ambiguous)
|
||||
pytz.exceptions.AmbiguousTimeError: 2009-10-31 23:30:00
|
||||
>>> try:
|
||||
... tz.dst(ambiguous)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % ambiguous)
|
||||
pytz.exceptions.AmbiguousTimeError: 2009-10-31 23:30:00
|
||||
>>> try:
|
||||
... tz.tzname(ambiguous)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % ambiguous)
|
||||
pytz.exceptions.AmbiguousTimeError: 2009-10-31 23:30:00
|
||||
|
||||
|
||||
Problems with Localtime
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The major problem we have to deal with is that certain datetimes
|
||||
may occur twice in a year. For example, in the US/Eastern timezone
|
||||
on the last Sunday morning in October, the following sequence
|
||||
happens:
|
||||
|
||||
- 01:00 EDT occurs
|
||||
- 1 hour later, instead of 2:00am the clock is turned back 1 hour
|
||||
and 01:00 happens again (this time 01:00 EST)
|
||||
|
||||
In fact, every instant between 01:00 and 02:00 occurs twice. This means
|
||||
that if you try and create a time in the 'US/Eastern' timezone
|
||||
the standard datetime syntax, there is no way to specify if you meant
|
||||
before of after the end-of-daylight-saving-time transition. Using the
|
||||
pytz custom syntax, the best you can do is make an educated guess:
|
||||
|
||||
>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 1, 30, 00))
|
||||
>>> loc_dt.strftime(fmt)
|
||||
'2002-10-27 01:30:00 EST-0500'
|
||||
|
||||
As you can see, the system has chosen one for you and there is a 50%
|
||||
chance of it being out by one hour. For some applications, this does
|
||||
not matter. However, if you are trying to schedule meetings with people
|
||||
in different timezones or analyze log files it is not acceptable.
|
||||
|
||||
The best and simplest solution is to stick with using UTC. The pytz
|
||||
package encourages using UTC for internal timezone representation by
|
||||
including a special UTC implementation based on the standard Python
|
||||
reference implementation in the Python documentation.
|
||||
|
||||
The UTC timezone unpickles to be the same instance, and pickles to a
|
||||
smaller size than other pytz tzinfo instances. The UTC implementation
|
||||
can be obtained as pytz.utc, pytz.UTC, or pytz.timezone('UTC').
|
||||
|
||||
>>> import pickle, pytz
|
||||
>>> dt = datetime(2005, 3, 1, 14, 13, 21, tzinfo=utc)
|
||||
>>> naive = dt.replace(tzinfo=None)
|
||||
>>> p = pickle.dumps(dt, 1)
|
||||
>>> naive_p = pickle.dumps(naive, 1)
|
||||
>>> len(p) - len(naive_p)
|
||||
17
|
||||
>>> new = pickle.loads(p)
|
||||
>>> new == dt
|
||||
True
|
||||
>>> new is dt
|
||||
False
|
||||
>>> new.tzinfo is dt.tzinfo
|
||||
True
|
||||
>>> pytz.utc is pytz.UTC is pytz.timezone('UTC')
|
||||
True
|
||||
|
||||
Note that some other timezones are commonly thought of as the same (GMT,
|
||||
Greenwich, Universal, etc.). The definition of UTC is distinct from these
|
||||
other timezones, and they are not equivalent. For this reason, they will
|
||||
not compare the same in Python.
|
||||
|
||||
>>> utc == pytz.timezone('GMT')
|
||||
False
|
||||
|
||||
See the section `What is UTC`_, below.
|
||||
|
||||
If you insist on working with local times, this library provides a
|
||||
facility for constructing them unambiguously:
|
||||
|
||||
>>> loc_dt = datetime(2002, 10, 27, 1, 30, 00)
|
||||
>>> est_dt = eastern.localize(loc_dt, is_dst=True)
|
||||
>>> edt_dt = eastern.localize(loc_dt, is_dst=False)
|
||||
>>> print(est_dt.strftime(fmt) + ' / ' + edt_dt.strftime(fmt))
|
||||
2002-10-27 01:30:00 EDT-0400 / 2002-10-27 01:30:00 EST-0500
|
||||
|
||||
If you pass None as the is_dst flag to localize(), pytz will refuse to
|
||||
guess and raise exceptions if you try to build ambiguous or non-existent
|
||||
times.
|
||||
|
||||
For example, 1:30am on 27th Oct 2002 happened twice in the US/Eastern
|
||||
timezone when the clocks where put back at the end of Daylight Saving
|
||||
Time:
|
||||
|
||||
>>> dt = datetime(2002, 10, 27, 1, 30, 00)
|
||||
>>> try:
|
||||
... eastern.localize(dt, is_dst=None)
|
||||
... except pytz.exceptions.AmbiguousTimeError:
|
||||
... print('pytz.exceptions.AmbiguousTimeError: %s' % dt)
|
||||
pytz.exceptions.AmbiguousTimeError: 2002-10-27 01:30:00
|
||||
|
||||
Similarly, 2:30am on 7th April 2002 never happened at all in the
|
||||
US/Eastern timezone, as the clocks where put forward at 2:00am skipping
|
||||
the entire hour:
|
||||
|
||||
>>> dt = datetime(2002, 4, 7, 2, 30, 00)
|
||||
>>> try:
|
||||
... eastern.localize(dt, is_dst=None)
|
||||
... except pytz.exceptions.NonExistentTimeError:
|
||||
... print('pytz.exceptions.NonExistentTimeError: %s' % dt)
|
||||
pytz.exceptions.NonExistentTimeError: 2002-04-07 02:30:00
|
||||
|
||||
Both of these exceptions share a common base class to make error handling
|
||||
easier:
|
||||
|
||||
>>> isinstance(pytz.AmbiguousTimeError(), pytz.InvalidTimeError)
|
||||
True
|
||||
>>> isinstance(pytz.NonExistentTimeError(), pytz.InvalidTimeError)
|
||||
True
|
||||
|
||||
|
||||
A special case is where countries change their timezone definitions
|
||||
with no daylight savings time switch. For example, in 1915 Warsaw
|
||||
switched from Warsaw time to Central European time with no daylight savings
|
||||
transition. So at the stroke of midnight on August 5th 1915 the clocks
|
||||
were wound back 24 minutes creating an ambiguous time period that cannot
|
||||
be specified without referring to the timezone abbreviation or the
|
||||
actual UTC offset. In this case midnight happened twice, neither time
|
||||
during a daylight saving time period. pytz handles this transition by
|
||||
treating the ambiguous period before the switch as daylight savings
|
||||
time, and the ambiguous period after as standard time.
|
||||
|
||||
|
||||
>>> warsaw = pytz.timezone('Europe/Warsaw')
|
||||
>>> amb_dt1 = warsaw.localize(datetime(1915, 8, 4, 23, 59, 59), is_dst=True)
|
||||
>>> amb_dt1.strftime(fmt)
|
||||
'1915-08-04 23:59:59 WMT+0124'
|
||||
>>> amb_dt2 = warsaw.localize(datetime(1915, 8, 4, 23, 59, 59), is_dst=False)
|
||||
>>> amb_dt2.strftime(fmt)
|
||||
'1915-08-04 23:59:59 CET+0100'
|
||||
>>> switch_dt = warsaw.localize(datetime(1915, 8, 5, 00, 00, 00), is_dst=False)
|
||||
>>> switch_dt.strftime(fmt)
|
||||
'1915-08-05 00:00:00 CET+0100'
|
||||
>>> str(switch_dt - amb_dt1)
|
||||
'0:24:01'
|
||||
>>> str(switch_dt - amb_dt2)
|
||||
'0:00:01'
|
||||
|
||||
The best way of creating a time during an ambiguous time period is
|
||||
by converting from another timezone such as UTC:
|
||||
|
||||
>>> utc_dt = datetime(1915, 8, 4, 22, 36, tzinfo=pytz.utc)
|
||||
>>> utc_dt.astimezone(warsaw).strftime(fmt)
|
||||
'1915-08-04 23:36:00 CET+0100'
|
||||
|
||||
The standard Python way of handling all these ambiguities is not to
|
||||
handle them, such as demonstrated in this example using the US/Eastern
|
||||
timezone definition from the Python documentation (Note that this
|
||||
implementation only works for dates between 1987 and 2006 - it is
|
||||
included for tests only!):
|
||||
|
||||
>>> from pytz.reference import Eastern # pytz.reference only for tests
|
||||
>>> dt = datetime(2002, 10, 27, 0, 30, tzinfo=Eastern)
|
||||
>>> str(dt)
|
||||
'2002-10-27 00:30:00-04:00'
|
||||
>>> str(dt + timedelta(hours=1))
|
||||
'2002-10-27 01:30:00-05:00'
|
||||
>>> str(dt + timedelta(hours=2))
|
||||
'2002-10-27 02:30:00-05:00'
|
||||
>>> str(dt + timedelta(hours=3))
|
||||
'2002-10-27 03:30:00-05:00'
|
||||
|
||||
Notice the first two results? At first glance you might think they are
|
||||
correct, but taking the UTC offset into account you find that they are
|
||||
actually two hours appart instead of the 1 hour we asked for.
|
||||
|
||||
>>> from pytz.reference import UTC # pytz.reference only for tests
|
||||
>>> str(dt.astimezone(UTC))
|
||||
'2002-10-27 04:30:00+00:00'
|
||||
>>> str((dt + timedelta(hours=1)).astimezone(UTC))
|
||||
'2002-10-27 06:30:00+00:00'
|
||||
|
||||
|
||||
Country Information
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A mechanism is provided to access the timezones commonly in use
|
||||
for a particular country, looked up using the ISO 3166 country code.
|
||||
It returns a list of strings that can be used to retrieve the relevant
|
||||
tzinfo instance using ``pytz.timezone()``:
|
||||
|
||||
>>> print(' '.join(pytz.country_timezones['nz']))
|
||||
Pacific/Auckland Pacific/Chatham
|
||||
|
||||
The Olson database comes with a ISO 3166 country code to English country
|
||||
name mapping that pytz exposes as a dictionary:
|
||||
|
||||
>>> print(pytz.country_names['nz'])
|
||||
New Zealand
|
||||
|
||||
|
||||
What is UTC
|
||||
~~~~~~~~~~~
|
||||
|
||||
'UTC' is `Coordinated Universal Time`_. It is a successor to, but distinct
|
||||
from, Greenwich Mean Time (GMT) and the various definitions of Universal
|
||||
Time. UTC is now the worldwide standard for regulating clocks and time
|
||||
measurement.
|
||||
|
||||
All other timezones are defined relative to UTC, and include offsets like
|
||||
UTC+0800 - hours to add or subtract from UTC to derive the local time. No
|
||||
daylight saving time occurs in UTC, making it a useful timezone to perform
|
||||
date arithmetic without worrying about the confusion and ambiguities caused
|
||||
by daylight saving time transitions, your country changing its timezone, or
|
||||
mobile computers that roam through multiple timezones.
|
||||
|
||||
.. _Coordinated Universal Time: https://en.wikipedia.org/wiki/Coordinated_Universal_Time
|
||||
|
||||
|
||||
Helpers
|
||||
~~~~~~~
|
||||
|
||||
There are two lists of timezones provided.
|
||||
|
||||
``all_timezones`` is the exhaustive list of the timezone names that can
|
||||
be used.
|
||||
|
||||
>>> from pytz import all_timezones
|
||||
>>> len(all_timezones) >= 500
|
||||
True
|
||||
>>> 'Etc/Greenwich' in all_timezones
|
||||
True
|
||||
|
||||
``common_timezones`` is a list of useful, current timezones. It doesn't
|
||||
contain deprecated zones or historical zones, except for a few I've
|
||||
deemed in common usage, such as US/Eastern (open a bug report if you
|
||||
think other timezones are deserving of being included here). It is also
|
||||
a sequence of strings.
|
||||
|
||||
>>> from pytz import common_timezones
|
||||
>>> len(common_timezones) < len(all_timezones)
|
||||
True
|
||||
>>> 'Etc/Greenwich' in common_timezones
|
||||
False
|
||||
>>> 'Australia/Melbourne' in common_timezones
|
||||
True
|
||||
>>> 'US/Eastern' in common_timezones
|
||||
True
|
||||
>>> 'Canada/Eastern' in common_timezones
|
||||
True
|
||||
>>> 'Australia/Yancowinna' in all_timezones
|
||||
True
|
||||
>>> 'Australia/Yancowinna' in common_timezones
|
||||
False
|
||||
|
||||
Both ``common_timezones`` and ``all_timezones`` are alphabetically
|
||||
sorted:
|
||||
|
||||
>>> common_timezones_dupe = common_timezones[:]
|
||||
>>> common_timezones_dupe.sort()
|
||||
>>> common_timezones == common_timezones_dupe
|
||||
True
|
||||
>>> all_timezones_dupe = all_timezones[:]
|
||||
>>> all_timezones_dupe.sort()
|
||||
>>> all_timezones == all_timezones_dupe
|
||||
True
|
||||
|
||||
``all_timezones`` and ``common_timezones`` are also available as sets.
|
||||
|
||||
>>> from pytz import all_timezones_set, common_timezones_set
|
||||
>>> 'US/Eastern' in all_timezones_set
|
||||
True
|
||||
>>> 'US/Eastern' in common_timezones_set
|
||||
True
|
||||
>>> 'Australia/Victoria' in common_timezones_set
|
||||
False
|
||||
|
||||
You can also retrieve lists of timezones used by particular countries
|
||||
using the ``country_timezones()`` function. It requires an ISO-3166
|
||||
two letter country code.
|
||||
|
||||
>>> from pytz import country_timezones
|
||||
>>> print(' '.join(country_timezones('ch')))
|
||||
Europe/Zurich
|
||||
>>> print(' '.join(country_timezones('CH')))
|
||||
Europe/Zurich
|
||||
|
||||
|
||||
Internationalization - i18n/l10n
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Pytz is an interface to the IANA database, which uses ASCII names. The `Unicode Consortium's Unicode Locales (CLDR) <http://cldr.unicode.org>`_
|
||||
project provides translations. Thomas Khyn's
|
||||
`l18n <https://pypi.org/project/l18n/>`_ package can be used to access
|
||||
these translations from Python.
|
||||
|
||||
|
||||
License
|
||||
~~~~~~~
|
||||
|
||||
MIT license.
|
||||
|
||||
This code is also available as part of Zope 3 under the Zope Public
|
||||
License, Version 2.1 (ZPL).
|
||||
|
||||
I'm happy to relicense this code if necessary for inclusion in other
|
||||
open source projects.
|
||||
|
||||
|
||||
Latest Versions
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
This package will be updated after releases of the Olson timezone
|
||||
database. The latest version can be downloaded from the `Python Package
|
||||
Index <https://pypi.org/project/pytz/>`_. The code that is used
|
||||
to generate this distribution is hosted on launchpad.net and available
|
||||
using git::
|
||||
|
||||
git clone https://git.launchpad.net/pytz
|
||||
|
||||
A mirror on github is also available at https://github.com/stub42/pytz
|
||||
|
||||
Announcements of new releases are made on
|
||||
`Launchpad <https://launchpad.net/pytz>`_, and the
|
||||
`Atom feed <http://feeds.launchpad.net/pytz/announcements.atom>`_
|
||||
hosted there.
|
||||
|
||||
|
||||
Bugs, Feature Requests & Patches
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Bugs can be reported using `Launchpad <https://bugs.launchpad.net/pytz>`__.
|
||||
|
||||
|
||||
Issues & Limitations
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- Offsets from UTC are rounded to the nearest whole minute, so timezones
|
||||
such as Europe/Amsterdam pre 1937 will be up to 30 seconds out. This
|
||||
is a limitation of the Python datetime library.
|
||||
|
||||
- If you think a timezone definition is incorrect, I probably can't fix
|
||||
it. pytz is a direct translation of the Olson timezone database, and
|
||||
changes to the timezone definitions need to be made to this source.
|
||||
If you find errors they should be reported to the time zone mailing
|
||||
list, linked from http://www.iana.org/time-zones.
|
||||
|
||||
|
||||
Further Reading
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
More info than you want to know about timezones:
|
||||
http://www.twinsun.com/tz/tz-link.htm
|
||||
|
||||
|
||||
Contact
|
||||
~~~~~~~
|
||||
|
||||
Stuart Bishop <stuart@stuartbishop.net>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,620 @@
|
||||
pytz-2018.9.dist-info/DESCRIPTION.rst,sha256=iU7f_b1hYXRHRK98PfsnvibG1_gvt35p_PtTGKON8ZU,19312
|
||||
pytz-2018.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
pytz-2018.9.dist-info/LICENSE.txt,sha256=OfB8cqG_2jScvSe6ybyx5vjFtOXMP631aQBAbozAt5I,1088
|
||||
pytz-2018.9.dist-info/METADATA,sha256=eaG9E6mWNyht31qIw7Uq-STREB3RsyaocqxAC5A0GAs,20704
|
||||
pytz-2018.9.dist-info/RECORD,,
|
||||
pytz-2018.9.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110
|
||||
pytz-2018.9.dist-info/metadata.json,sha256=YEYPuui65-Yxj6MeoCUg1VcetLAuj4Tu9HYE3_yVeV4,1505
|
||||
pytz-2018.9.dist-info/top_level.txt,sha256=6xRYlt934v1yHb1JIrXgHyGxn3cqACvd-yE8ski_kcc,5
|
||||
pytz-2018.9.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
||||
pytz/__init__.py,sha256=1QYoSVNRC9GVdLjSxlS6JoLCCxHGJZVH930er7xvTDc,34210
|
||||
pytz/__pycache__/__init__.cpython-36.pyc,,
|
||||
pytz/__pycache__/exceptions.cpython-36.pyc,,
|
||||
pytz/__pycache__/lazy.cpython-36.pyc,,
|
||||
pytz/__pycache__/reference.cpython-36.pyc,,
|
||||
pytz/__pycache__/tzfile.cpython-36.pyc,,
|
||||
pytz/__pycache__/tzinfo.cpython-36.pyc,,
|
||||
pytz/exceptions.py,sha256=_GCDPHpBk2r-CQIg3Kcyw8RCsLm2teJdnzT85bl5VsM,1329
|
||||
pytz/lazy.py,sha256=toeR5uDWKBj6ezsUZ4elNP6CEMtK7CO2jS9A30nsFbo,5404
|
||||
pytz/reference.py,sha256=zUtCki7JFEmrzrjNsfMD7YL0lWDxynKc1Ubo4iXSs74,3778
|
||||
pytz/tzfile.py,sha256=g2CMhXZ1PX2slgg5_Kk9TvmIkVKeOjbuONHEfZP6jMk,4745
|
||||
pytz/tzinfo.py,sha256=-5UjW-yqHbtO5NtSaWope7EbSdf2oTES26Kdlxjqdk0,19272
|
||||
pytz/zoneinfo/Africa/Abidjan,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Accra,sha256=xMtgrCF_7Lk4UiNxb1pJuAKFw-cQq774eNNOF4aZ0Jw,828
|
||||
pytz/zoneinfo/Africa/Addis_Ababa,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Algiers,sha256=-r_VFbQEz__CjmgpxfAX0zQQqKUzhkgA0psiTCVdMrg,751
|
||||
pytz/zoneinfo/Africa/Asmara,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Asmera,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Bamako,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Bangui,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Banjul,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Bissau,sha256=IjuxDP6EZiDHFvl_bHS6NN7sdRxLKXllooBC829poak,194
|
||||
pytz/zoneinfo/Africa/Blantyre,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Brazzaville,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Bujumbura,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Cairo,sha256=eXtOYN1sUfjfFmYDIXB6dAE9Hxx7ffrjPgwcB3CJQWU,1963
|
||||
pytz/zoneinfo/Africa/Casablanca,sha256=lD5Hij_s2l14BIUaumUsjhp-vWf91Qv5UsoBnPgeFuA,1533
|
||||
pytz/zoneinfo/Africa/Ceuta,sha256=swbO4vzj7faB6S6tqf8qsidspMbWxa8KGWc9OHL_htI,2050
|
||||
pytz/zoneinfo/Africa/Conakry,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Dakar,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Dar_es_Salaam,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Djibouti,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Douala,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/El_Aaiun,sha256=w3l2932BlyN2LwHKvbU5BlbmWUfo4EE8VsPSb96eHt0,1403
|
||||
pytz/zoneinfo/Africa/Freetown,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Gaborone,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Harare,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Johannesburg,sha256=byncveUK0jvUuqmttvD31IYo0S9-HFuQxSqTR-pPKjs,262
|
||||
pytz/zoneinfo/Africa/Juba,sha256=h-paS9zAEZhyGNPW8e64FbNL6hEwl7Jnu30qSZASAFw,669
|
||||
pytz/zoneinfo/Africa/Kampala,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Khartoum,sha256=5dafIzV1BlAlEGMzIkv-gbwqg01COI13Q2oHRtl8ESM,699
|
||||
pytz/zoneinfo/Africa/Kigali,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Kinshasa,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Lagos,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Libreville,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Lome,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Luanda,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Lubumbashi,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Lusaka,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Malabo,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Maputo,sha256=2fn40i7gDS14Ydw_7OQ-7gJXz06fyK9vJPMiaeA_HjU,157
|
||||
pytz/zoneinfo/Africa/Maseru,sha256=byncveUK0jvUuqmttvD31IYo0S9-HFuQxSqTR-pPKjs,262
|
||||
pytz/zoneinfo/Africa/Mbabane,sha256=byncveUK0jvUuqmttvD31IYo0S9-HFuQxSqTR-pPKjs,262
|
||||
pytz/zoneinfo/Africa/Mogadishu,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Monrovia,sha256=CySjypzESEfyR8RoWAjNMmTmI5tJEJsqQTrfBVfsau4,224
|
||||
pytz/zoneinfo/Africa/Nairobi,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Africa/Ndjamena,sha256=lYkozFvB4bdA6gR_2crOVtu41Z7Xgv2vhXLovlPRg0c,211
|
||||
pytz/zoneinfo/Africa/Niamey,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Nouakchott,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Ouagadougou,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Porto-Novo,sha256=Qs2e_N7LOKR0jNxvfYIp-INSW5DLa8aefcDi4scRss4,157
|
||||
pytz/zoneinfo/Africa/Sao_Tome,sha256=MdjxpQ268uzJ7Zx1ZroFUtRUwqsJ6F_yY3AYV9FXw1I,254
|
||||
pytz/zoneinfo/Africa/Timbuktu,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Africa/Tripoli,sha256=QteBmF7rZo7h34de8LssYdW14DQ5sCpp9dDkInX1Tbw,641
|
||||
pytz/zoneinfo/Africa/Tunis,sha256=zfOKSHdLsGMDURTL7hwtsmjgE6VO82Q8mDI7Q2xX7_0,701
|
||||
pytz/zoneinfo/Africa/Windhoek,sha256=aY_1WreD6_vUvfoL030cZaCH0a1pvGon6l8dN4JTMHY,979
|
||||
pytz/zoneinfo/America/Adak,sha256=IB1DhwJQAKbhPJ9jHLf8zW5Dad7HIkBS-dhv64E1OlM,2356
|
||||
pytz/zoneinfo/America/Anchorage,sha256=oZA1NSPS2BWdymYpnCHFO8BlYVS-ll5KLg2Ez9CbETs,2371
|
||||
pytz/zoneinfo/America/Anguilla,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Antigua,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Araguaina,sha256=-Q9o_HAGLnfWnk75BvoyJe5nT80pfpBOZMiWizU-VC4,896
|
||||
pytz/zoneinfo/America/Argentina/Buenos_Aires,sha256=qXkhG62kLG_U3oRLuA1V_oAVz8opMuBkKUCDIKCAwso,1100
|
||||
pytz/zoneinfo/America/Argentina/Catamarca,sha256=CN8SJ2A7CL2zpdOeos4EMrSCFtjlJMYzChc8UoYCaBw,1100
|
||||
pytz/zoneinfo/America/Argentina/ComodRivadavia,sha256=CN8SJ2A7CL2zpdOeos4EMrSCFtjlJMYzChc8UoYCaBw,1100
|
||||
pytz/zoneinfo/America/Argentina/Cordoba,sha256=5rfz3a6EYZ1qa8MxpZ1xaXOtsMSdjcWy14lr8HG85Hg,1100
|
||||
pytz/zoneinfo/America/Argentina/Jujuy,sha256=_ayQE4vQATXG_9ise-nXs9kDYqZK8PSmySgatqAOouk,1072
|
||||
pytz/zoneinfo/America/Argentina/La_Rioja,sha256=eSZzgPJmBG7yOx11qmu4HP5ZY9eJZar7LjaffVVRewI,1114
|
||||
pytz/zoneinfo/America/Argentina/Mendoza,sha256=PLBGbh_BTMwv7yOgaLTyNGOUdtyF4O4PGeK-smGMAow,1100
|
||||
pytz/zoneinfo/America/Argentina/Rio_Gallegos,sha256=SfU8-QaKhuJivNAW3wr5DMdiGZZF4z4hFEN88UcEEzY,1100
|
||||
pytz/zoneinfo/America/Argentina/Salta,sha256=LkxpkLHVa7pqLpgaGS7LldQiQG9KNY6HsL03xR2yWlU,1072
|
||||
pytz/zoneinfo/America/Argentina/San_Juan,sha256=3yqmWqc3mB8PgQHC3saHE2krZS56mWL63oyDTXDF2EY,1114
|
||||
pytz/zoneinfo/America/Argentina/San_Luis,sha256=NjxVoW3nVhbEjXzPpNX1v_Wr3BtaVZumV8f1kQhCEuQ,1130
|
||||
pytz/zoneinfo/America/Argentina/Tucuman,sha256=dxCEHgRSvPFlpr4oRxZJv02oGTJ27EDiHimwaqWF9fI,1128
|
||||
pytz/zoneinfo/America/Argentina/Ushuaia,sha256=xRqG4So9u06N5sUqMH5LSSYi_UfsmBuHM6EVr3F_-wY,1100
|
||||
pytz/zoneinfo/America/Aruba,sha256=B5e5IKmf6I7tXMwGZkIK710kXMMgTChdvFs1eNCBgrA,198
|
||||
pytz/zoneinfo/America/Asuncion,sha256=Okkv_vGto8uyQLo_nUcu5oP3SeUZ9Rypjq7OlCyjp3o,2068
|
||||
pytz/zoneinfo/America/Atikokan,sha256=4a94GtPHUdQ-2sdz9WinsKn9V_QiM4XmFj48FTPMeSA,336
|
||||
pytz/zoneinfo/America/Atka,sha256=IB1DhwJQAKbhPJ9jHLf8zW5Dad7HIkBS-dhv64E1OlM,2356
|
||||
pytz/zoneinfo/America/Bahia,sha256=fKpwSn9H7p6DQKBPf3wpwROusUzhLfX0NFtaqwmw2hc,1036
|
||||
pytz/zoneinfo/America/Bahia_Banderas,sha256=FTP1fhxjmAWJeMb3OGgxSgU_a8fSMSX7d9FLujl7IGY,1574
|
||||
pytz/zoneinfo/America/Barbados,sha256=8HztctIP-fb4ic1z3hjy3rEvFSBkVXn8CyH3NljTseo,330
|
||||
pytz/zoneinfo/America/Belem,sha256=MYjnF0wypjmdydVj15xnB4jhJXgHUvXRIHnin1xfDz0,588
|
||||
pytz/zoneinfo/America/Belize,sha256=98C3794iCNEb1Uh4lZnCTuMDoje83bcSuXO2uOrV4vc,964
|
||||
pytz/zoneinfo/America/Blanc-Sablon,sha256=tVN5ZPmIO3vc3_ayowg6qbvjheg4OJtDFT9y8IuW334,298
|
||||
pytz/zoneinfo/America/Boa_Vista,sha256=T-7uW9J7ZomZvpAjzZhSJ9zQnEWSG3goJXev_YHeg-8,644
|
||||
pytz/zoneinfo/America/Bogota,sha256=TLOkto15SQiyrArG2-yTTadjDAFXQeRuTloVaYMqJSE,262
|
||||
pytz/zoneinfo/America/Boise,sha256=Yv4AXa2nSH_oVo3FZqZCR7V7z7c6WnQgKIUyNUpzGXA,2394
|
||||
pytz/zoneinfo/America/Buenos_Aires,sha256=qXkhG62kLG_U3oRLuA1V_oAVz8opMuBkKUCDIKCAwso,1100
|
||||
pytz/zoneinfo/America/Cambridge_Bay,sha256=Nanl8yH4SshljhEjDe-PZCYEXbUuuZGmkbAAt2dB-bk,2084
|
||||
pytz/zoneinfo/America/Campo_Grande,sha256=8xJZdihktiiFzy70470byJGmhME9VbMnkI0CGZi1_HU,2002
|
||||
pytz/zoneinfo/America/Cancun,sha256=x9822QyFHAkZu5m8FWB5ALzQa7hAAz3qWFkcURMYXnI,802
|
||||
pytz/zoneinfo/America/Caracas,sha256=HHB7mRJRP4EaZA6CGecKU1tnJv9J-dH4GUxQl6msSmg,280
|
||||
pytz/zoneinfo/America/Catamarca,sha256=CN8SJ2A7CL2zpdOeos4EMrSCFtjlJMYzChc8UoYCaBw,1100
|
||||
pytz/zoneinfo/America/Cayenne,sha256=t3DbdXW2swIvtgzn6gUcWtcespcPSa9YiFj0HOb3j_w,210
|
||||
pytz/zoneinfo/America/Cayman,sha256=dT9Z7ootRxujtzwTrz7gL2-FByiCur9GXY0_T8h7izw,194
|
||||
pytz/zoneinfo/America/Chicago,sha256=4aZFw-svkMyXmSpNufqzK-xveos-oVJDpEyI8Yu9HQE,3576
|
||||
pytz/zoneinfo/America/Chihuahua,sha256=eoA38H6qniCK7WFqlYnu97Df_t6G22UD90cu0cvBWqw,1508
|
||||
pytz/zoneinfo/America/Coral_Harbour,sha256=4a94GtPHUdQ-2sdz9WinsKn9V_QiM4XmFj48FTPMeSA,336
|
||||
pytz/zoneinfo/America/Cordoba,sha256=5rfz3a6EYZ1qa8MxpZ1xaXOtsMSdjcWy14lr8HG85Hg,1100
|
||||
pytz/zoneinfo/America/Costa_Rica,sha256=xKNEBzicUsldgP8yfVHvFvfmd2-erWi4gm7e1_YuWu0,332
|
||||
pytz/zoneinfo/America/Creston,sha256=lx04qJsO9bslCnBmP-9wZJ7kBUL0QNXxRtdlX9ToYWU,224
|
||||
pytz/zoneinfo/America/Cuiaba,sha256=lxS9x2PcsswYwhf3DAo9xcx7I6dhk75VHy0cwfqUETY,1974
|
||||
pytz/zoneinfo/America/Curacao,sha256=B5e5IKmf6I7tXMwGZkIK710kXMMgTChdvFs1eNCBgrA,198
|
||||
pytz/zoneinfo/America/Danmarkshavn,sha256=YRZAfUCoVtaL1L-MYMYMH1wyOaVQnfUo_gFnvMXSuzw,698
|
||||
pytz/zoneinfo/America/Dawson,sha256=E6UmlysBR0hdkve_79tpRe2z1DORY2hwqKzE--G4ZGs,2084
|
||||
pytz/zoneinfo/America/Dawson_Creek,sha256=aJXCyP4j3ggE4wGCN-LrS9hpD_5zWHzQTeSAKTWEPUM,1050
|
||||
pytz/zoneinfo/America/Denver,sha256=6_yPo1_mvnt9DgpPzr0QdHsjdsfUG6ALnagQLML1DSM,2444
|
||||
pytz/zoneinfo/America/Detroit,sha256=RB736oxzhQTrK3FTJA5OxIxZdH3bpalRpBBZk8cgb5w,2174
|
||||
pytz/zoneinfo/America/Dominica,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Edmonton,sha256=IifIfkjUBbRumwp5pAujaoNVq-8bBJ6F0M2Ufz5PJQc,2388
|
||||
pytz/zoneinfo/America/Eirunepe,sha256=H2O9P2ElfglvnYcG-nhNAU3tQ8dfcOUtpx_h8WwmLX0,676
|
||||
pytz/zoneinfo/America/El_Salvador,sha256=rWY4tTkeH5jFHDuf6Cck2Y9lnt4LP-cqzhxPFxFrkuw,236
|
||||
pytz/zoneinfo/America/Ensenada,sha256=OHHtvy3J70z6wvKBHgPqMEnGs6SXp8fkf0WX9ZiOODk,2342
|
||||
pytz/zoneinfo/America/Fort_Nelson,sha256=erfODr3DrSpz65kAdO7Ts2dGbZxvddEP6gx4BX3y2J0,2240
|
||||
pytz/zoneinfo/America/Fort_Wayne,sha256=GrNub1_3Um5Qh67wOx58_TEAz4fwAeAlk2AlMTVA_sI,1666
|
||||
pytz/zoneinfo/America/Fortaleza,sha256=OysLNEUmxHMMTtNF4_hAyJ22cTpyXb_r1g-ke8icYHM,728
|
||||
pytz/zoneinfo/America/Glace_Bay,sha256=G8DGLGCapH_aYCF_OhaL5Qonf7FOAgAPwelO5htCWBc,2192
|
||||
pytz/zoneinfo/America/Godthab,sha256=FtlXWP_hBNuwBHkI2b1yne_tSUJpwLtWLyTHZoFZkmM,1878
|
||||
pytz/zoneinfo/America/Goose_Bay,sha256=JgaLueghSvX2g725FOfIgpgvsqxZGykWOhAZWGpQZRY,3210
|
||||
pytz/zoneinfo/America/Grand_Turk,sha256=f9yTZc0ZMNpTgJ4EdnlDioPp_k0GlXCuPS0uwnvqmjo,1872
|
||||
pytz/zoneinfo/America/Grenada,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Guadeloupe,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Guatemala,sha256=CMzsRDLHK05G0WbpxmsC-N2oq3k4170zUg0LnlJcHnM,292
|
||||
pytz/zoneinfo/America/Guayaquil,sha256=DUp7bfUtCHGZ4OeWZenli012vi3mlRzEgNwHdR91sh4,262
|
||||
pytz/zoneinfo/America/Guyana,sha256=T6h4bX0MepDIclQGZy1AsiCjokLNQym_T47iGLIJpyE,252
|
||||
pytz/zoneinfo/America/Halifax,sha256=TZpmc5PwWoLfTfQoQ_b3U17BE2iVKSeNkR0Ho8mbTn8,3424
|
||||
pytz/zoneinfo/America/Havana,sha256=TlB5hicCM5kBKkc4lvc2Ca5-9O4tBHQRLVJnHKK7VEY,2428
|
||||
pytz/zoneinfo/America/Hermosillo,sha256=-pZN-uRvPT6LBR20wlWSA2sHfQxokoz7OMjo9vdzfeE,440
|
||||
pytz/zoneinfo/America/Indiana/Indianapolis,sha256=GrNub1_3Um5Qh67wOx58_TEAz4fwAeAlk2AlMTVA_sI,1666
|
||||
pytz/zoneinfo/America/Indiana/Knox,sha256=BiALShjiOLg1o8mMRWJ1jyTlJkgvwzte7B9WSOvTUNg,2428
|
||||
pytz/zoneinfo/America/Indiana/Marengo,sha256=CPYY3XgJFNEzONxei7x04wOGI_b86RAn4jBPewi1HZw,1722
|
||||
pytz/zoneinfo/America/Indiana/Petersburg,sha256=axot1SloP27ZWjezmo7kldu9qA2frEtPVqWngcXtft0,1904
|
||||
pytz/zoneinfo/America/Indiana/Tell_City,sha256=tSy59WgaTpRiu3rFV0H0kVMive2pVm3hTkrbArMPmso,1726
|
||||
pytz/zoneinfo/America/Indiana/Vevay,sha256=GGosHbQUoIDOKPZxdal42X40veEITMmrnlKOnLUhb-c,1414
|
||||
pytz/zoneinfo/America/Indiana/Vincennes,sha256=gh7LAbHbMD92eo9C_c5IiwQ1fJvxhdJN402Q_4YJdLg,1694
|
||||
pytz/zoneinfo/America/Indiana/Winamac,sha256=yS-_aKSC4crd0WdNutkHRHxUjmBCU56QVQcqy7kYpbQ,1778
|
||||
pytz/zoneinfo/America/Indianapolis,sha256=GrNub1_3Um5Qh67wOx58_TEAz4fwAeAlk2AlMTVA_sI,1666
|
||||
pytz/zoneinfo/America/Inuvik,sha256=cRkCTSCu3x6HGscRcVug3nT1ZT_BnAvH4TiT9uKv21k,1914
|
||||
pytz/zoneinfo/America/Iqaluit,sha256=6PitEMSFWcSb-Io8fvm4oQ_7v39G_qANc6reTjXoZJ0,2032
|
||||
pytz/zoneinfo/America/Jamaica,sha256=ua4hGv3opJohmLVUA8cGDUaC6Oc_q5KwLuopJZODsiU,498
|
||||
pytz/zoneinfo/America/Jujuy,sha256=_ayQE4vQATXG_9ise-nXs9kDYqZK8PSmySgatqAOouk,1072
|
||||
pytz/zoneinfo/America/Juneau,sha256=k7hxb0aGRnfnE-DBi3LkcjAzRPyAf0_Hw0vVFfjGeb0,2353
|
||||
pytz/zoneinfo/America/Kentucky/Louisville,sha256=_N46g4HX4B9YHAhGy5QrIhGY1-C7T0HWHmTMUEheg6k,2772
|
||||
pytz/zoneinfo/America/Kentucky/Monticello,sha256=NJMKjG7jjlRzZhndMPw51bYW0D3jviW2Qbl70YcU0Gg,2352
|
||||
pytz/zoneinfo/America/Knox_IN,sha256=BiALShjiOLg1o8mMRWJ1jyTlJkgvwzte7B9WSOvTUNg,2428
|
||||
pytz/zoneinfo/America/Kralendijk,sha256=B5e5IKmf6I7tXMwGZkIK710kXMMgTChdvFs1eNCBgrA,198
|
||||
pytz/zoneinfo/America/La_Paz,sha256=DIdA3cQlOftjI82uJloMX2P3dgZleIWx8CgpmV6Vy6U,248
|
||||
pytz/zoneinfo/America/Lima,sha256=R8Xs5ZjeyNzNccFV3MyBJCm0zx-PEJnDm59G7W-9Tlo,422
|
||||
pytz/zoneinfo/America/Los_Angeles,sha256=VOy1PikdjiVdJ7lukVGzwl8uDxV_KYqznkTm5BLEiDM,2836
|
||||
pytz/zoneinfo/America/Louisville,sha256=_N46g4HX4B9YHAhGy5QrIhGY1-C7T0HWHmTMUEheg6k,2772
|
||||
pytz/zoneinfo/America/Lower_Princes,sha256=B5e5IKmf6I7tXMwGZkIK710kXMMgTChdvFs1eNCBgrA,198
|
||||
pytz/zoneinfo/America/Maceio,sha256=_4fQLhAiqPQZoS13tKmYFRaIjvbk_KyFAKYfSarDP64,756
|
||||
pytz/zoneinfo/America/Managua,sha256=xe2_VHFLQcwEKJxedzzflKox04kQq8K-Acs9fZ-KQ80,454
|
||||
pytz/zoneinfo/America/Manaus,sha256=q6aegVxK8Ek9Bw9X8cPd9Jopnmu1wnq2T54jAD_4qtk,616
|
||||
pytz/zoneinfo/America/Marigot,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Martinique,sha256=2AzYJNMJStseVTYI2adQE-fC44xxjVLorFGXGyUlmtw,248
|
||||
pytz/zoneinfo/America/Matamoros,sha256=b5Ojx245rtRct7bUfoVxIK8Rhkybsrw5fOhnuxQeSIU,1402
|
||||
pytz/zoneinfo/America/Mazatlan,sha256=bmpkiv4g-sOHfUIuCtNmL3h-NUU0qBfUAo_dY-YVlPs,1550
|
||||
pytz/zoneinfo/America/Mendoza,sha256=PLBGbh_BTMwv7yOgaLTyNGOUdtyF4O4PGeK-smGMAow,1100
|
||||
pytz/zoneinfo/America/Menominee,sha256=Arv9WLbfhNcpRsUjHDU757BEdwlp08Gt30AixG3gZ04,2274
|
||||
pytz/zoneinfo/America/Merida,sha256=CuVVltMYw-XkA0JuOFm3dyl0LILpRlYmLU8ST0Y538g,1442
|
||||
pytz/zoneinfo/America/Metlakatla,sha256=m7E_OgU19mzMXFsadnl2WNRZ_DKILxqMVrwP02nSGN8,1409
|
||||
pytz/zoneinfo/America/Mexico_City,sha256=a_B5mCNBzJYh1C0R8SGJhlTEE3Z2KjZlWPejy08-mQE,1604
|
||||
pytz/zoneinfo/America/Miquelon,sha256=LsxezZPVrjV_nIRfIWnLpuIeKMMC6MgVixiGJFZUD-k,1682
|
||||
pytz/zoneinfo/America/Moncton,sha256=Wmv-bk9aKKcWWzOpc1UFu67HOfwaIk2Wmh3LgqGctys,3154
|
||||
pytz/zoneinfo/America/Monterrey,sha256=LOyd1hTum5KFEzqcNb4C37pKRzd2K9V8F26nqwsuu5k,1402
|
||||
pytz/zoneinfo/America/Montevideo,sha256=VFiCRwpba2yySYsCjb0tD7QdorjKqKD29wJlKG3bKS8,1550
|
||||
pytz/zoneinfo/America/Montreal,sha256=ggOSzbHkmfgu9wTQzP0MUKsrKMbgveuAeThh1eFl1a0,3494
|
||||
pytz/zoneinfo/America/Montserrat,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Nassau,sha256=0o2-OcND6R-hqrI2R2_qwppLpIxj0EGHglVWd5vmi7o,2270
|
||||
pytz/zoneinfo/America/New_York,sha256=7AoiEGjr3wV4P7C4Qs35COZqwr2mjNDq7ocpsSPFOM8,3536
|
||||
pytz/zoneinfo/America/Nipigon,sha256=EGPXcOin8mfzFTkYJm4ICpY7fyE24I2pXg4ejafSMyU,2122
|
||||
pytz/zoneinfo/America/Nome,sha256=2izM3-P-PqJ9za6MdhzFfMvPFNq7Gim69tAvEwPeY2s,2367
|
||||
pytz/zoneinfo/America/Noronha,sha256=6WHMFwQCyyNfZgLizT-MlRSeJ_pTpvZ_ZbfyTXzyD-U,728
|
||||
pytz/zoneinfo/America/North_Dakota/Beulah,sha256=PHlzEk3wsNXYsfMZZSio7ZfdnyxPFpOhK3dS-1AJKGg,2380
|
||||
pytz/zoneinfo/America/North_Dakota/Center,sha256=PaM52_JOVMEpVdw5qiOlhkp3qA0xp0d6Z9neOatmLKo,2380
|
||||
pytz/zoneinfo/America/North_Dakota/New_Salem,sha256=o0xmH1FUh3lVFLtP5Lb9c0PfSyaPTsRvQSQYwnn_yls,2380
|
||||
pytz/zoneinfo/America/Ojinaga,sha256=GyYDF_HHCIE4yuT6dVfHI0mGVa6M1-lECtP2j-v9DYU,1508
|
||||
pytz/zoneinfo/America/Panama,sha256=dT9Z7ootRxujtzwTrz7gL2-FByiCur9GXY0_T8h7izw,194
|
||||
pytz/zoneinfo/America/Pangnirtung,sha256=P9Kw_I-NxcUYJIr1j40jTn9q7F8TPAE_FqXsfLYF86A,2094
|
||||
pytz/zoneinfo/America/Paramaribo,sha256=_3_T7ihZykAmVLanuTVa4bDPp0v6NholN8XmOQjem8Y,282
|
||||
pytz/zoneinfo/America/Phoenix,sha256=KumIxxid0LUzIrrXuzoiammLT-UOj6iFQdHoO0FFtzg,344
|
||||
pytz/zoneinfo/America/Port-au-Prince,sha256=9TB-VTZotOJpYt-Y9fy7wYh3o3__NdjT0GJGB6tpcv4,1446
|
||||
pytz/zoneinfo/America/Port_of_Spain,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Porto_Acre,sha256=dM3AWrI7Z9PID5-MXVGD_dfokjmDLrOfkHBVamaGA94,648
|
||||
pytz/zoneinfo/America/Porto_Velho,sha256=R0Tp6pCC5K8v3QibLSFxr_s4TQ0GgZ9HwXt5EseKOEM,588
|
||||
pytz/zoneinfo/America/Puerto_Rico,sha256=hJHlV_-AGoMGUWuMpZRv9fLmghrzFHfrR9fRkcxaZJc,246
|
||||
pytz/zoneinfo/America/Punta_Arenas,sha256=kpqStczF3X0yK0lwOcxmwbQM8ZV9MrNktm7orJF-EJc,1902
|
||||
pytz/zoneinfo/America/Rainy_River,sha256=r6kx6lD2IzCdygkj-DKyL2tPSn7k0Zil7PSHCBFKOa0,2122
|
||||
pytz/zoneinfo/America/Rankin_Inlet,sha256=YOFi-PTJwwt8128JtDZsMcguW7i4CtU-2uiCf6IVi2I,1916
|
||||
pytz/zoneinfo/America/Recife,sha256=2Zm3FlNGMhvNzJrdFXkDpiJusHcwbO_QuhaCjW7RlGY,728
|
||||
pytz/zoneinfo/America/Regina,sha256=yjqT08pHbICYe83H8JmtaDBvCFqRv7Tfze3Y8xuXukw,980
|
||||
pytz/zoneinfo/America/Resolute,sha256=PQtdJUfZsfm1Dxi0rbut8-fEGG24g5Eoj9_3MbyQcpM,1916
|
||||
pytz/zoneinfo/America/Rio_Branco,sha256=dM3AWrI7Z9PID5-MXVGD_dfokjmDLrOfkHBVamaGA94,648
|
||||
pytz/zoneinfo/America/Rosario,sha256=5rfz3a6EYZ1qa8MxpZ1xaXOtsMSdjcWy14lr8HG85Hg,1100
|
||||
pytz/zoneinfo/America/Santa_Isabel,sha256=OHHtvy3J70z6wvKBHgPqMEnGs6SXp8fkf0WX9ZiOODk,2342
|
||||
pytz/zoneinfo/America/Santarem,sha256=cGcTUy3JOzLPPLHqG-mbFw_VIHI6a3sfpd6mM7FDwyo,618
|
||||
pytz/zoneinfo/America/Santiago,sha256=GB14PW0xABV283dXc8qL-nnDW-ViFUR3bne7sg0Aido,2529
|
||||
pytz/zoneinfo/America/Santo_Domingo,sha256=rkSrhQxst3BSlVRjoEH8e8dUu78x6oqxU0K01eAnvxk,482
|
||||
pytz/zoneinfo/America/Sao_Paulo,sha256=R2d0V9j2J0-UyFaM8MHFy38sJMZnJRPDDwnKj6I2-tQ,2002
|
||||
pytz/zoneinfo/America/Scoresbysund,sha256=dfHb86egoiNykb3bR3OHXpGFPm_Apck8BLiVTCqVAVc,1916
|
||||
pytz/zoneinfo/America/Shiprock,sha256=6_yPo1_mvnt9DgpPzr0QdHsjdsfUG6ALnagQLML1DSM,2444
|
||||
pytz/zoneinfo/America/Sitka,sha256=aiS7Fk37hZpzZ9VkeJQeF-BqTLRC1QOTCgMAJwT8UxA,2329
|
||||
pytz/zoneinfo/America/St_Barthelemy,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/St_Johns,sha256=r1-17uKv27eZ3JsVkw_DLZQbo6wvjuuVu7C2pDsmOgI,3655
|
||||
pytz/zoneinfo/America/St_Kitts,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/St_Lucia,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/St_Thomas,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/St_Vincent,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Swift_Current,sha256=RRKOF7vZC8VvYxD8PP4J1_hUPayKBP7Lu80avRkfPDY,560
|
||||
pytz/zoneinfo/America/Tegucigalpa,sha256=njZty_TfVLEYA9XwSudMwXECjcXtEBOmUtlQiyKDWJo,264
|
||||
pytz/zoneinfo/America/Thule,sha256=wxmmzj_9rHJKmmbDpckRlx7XUZ8FMjFL54tHjC30OyM,1514
|
||||
pytz/zoneinfo/America/Thunder_Bay,sha256=cJ9lcf2mDZttEx_ttYYoZAJfuGhSsDgNV2PI-ggWdPE,2202
|
||||
pytz/zoneinfo/America/Tijuana,sha256=OHHtvy3J70z6wvKBHgPqMEnGs6SXp8fkf0WX9ZiOODk,2342
|
||||
pytz/zoneinfo/America/Toronto,sha256=ggOSzbHkmfgu9wTQzP0MUKsrKMbgveuAeThh1eFl1a0,3494
|
||||
pytz/zoneinfo/America/Tortola,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Vancouver,sha256=-ncV1mfM0K5x60RbLnI6ejRB-__oTpazdB3lwwZPq5o,2892
|
||||
pytz/zoneinfo/America/Virgin,sha256=eNXH6Nd2lMv2mrA_3iD_xJsK_yxjshRuhyvO0ur7dY8,156
|
||||
pytz/zoneinfo/America/Whitehorse,sha256=agbpCco506MSV46rKLEkJd7_RTjinyaBbScQIUDZM00,2084
|
||||
pytz/zoneinfo/America/Winnipeg,sha256=0JsHcZxpM30Sd3KTit1BwZws4gHn5j8RS2Yj-zvzv94,2882
|
||||
pytz/zoneinfo/America/Yakutat,sha256=tFwnKbvwhyyn4LNTAn5ye_JWDdxjCerNDt7oOwUwO2M,2305
|
||||
pytz/zoneinfo/America/Yellowknife,sha256=pfFvC8NEy373KbO6r6ec-Gw_O0D2h64mXU1X1AsUDgE,1966
|
||||
pytz/zoneinfo/Antarctica/Casey,sha256=vIZdw_xcBjOYXXzwLw6XP_juvNbNf4Jd-cEWhwH7OCY,297
|
||||
pytz/zoneinfo/Antarctica/Davis,sha256=6PokyOaaISRTN13sisuGgdt5vG5A2YqNooJpfLTb5SQ,297
|
||||
pytz/zoneinfo/Antarctica/DumontDUrville,sha256=VatEZFruwGuudEPcDJwy_0ucaAZfdjoukBPZA3vaUzQ,202
|
||||
pytz/zoneinfo/Antarctica/Macquarie,sha256=nqsoYmvQnmqrEFUr1T4TeFv3JU9WzDB6hmENopzE2F0,1534
|
||||
pytz/zoneinfo/Antarctica/Mawson,sha256=e13QHVRassi3TAwb8-lrpHAVZRiI_rM4-_QyjG93W9o,211
|
||||
pytz/zoneinfo/Antarctica/McMurdo,sha256=Tmd_rvTVMk3A95pZSS6MiAT5IBOWoomDEgx0ZOHRGr8,2451
|
||||
pytz/zoneinfo/Antarctica/Palmer,sha256=DW_DXByXg5MnMZ-w1bNdu8b0lKOYD_EgrPRd5EcyEm4,1418
|
||||
pytz/zoneinfo/Antarctica/Rothera,sha256=70t6gLQUJZfproQxTb2tXVORGrHIFT5nuCDKgCn2Nic,172
|
||||
pytz/zoneinfo/Antarctica/South_Pole,sha256=Tmd_rvTVMk3A95pZSS6MiAT5IBOWoomDEgx0ZOHRGr8,2451
|
||||
pytz/zoneinfo/Antarctica/Syowa,sha256=wp_TM_2bpqlao1TQMooEpOT-Htr7oPOHYMsIlATAgFw,173
|
||||
pytz/zoneinfo/Antarctica/Troll,sha256=3zrh-P_jMCss9GGwHJJHkypZZydq4mkgo_TDqctn3c4,1162
|
||||
pytz/zoneinfo/Antarctica/Vostok,sha256=41l6TOzHqD2Ut7_jauLSTIB4FcX7kqtK5-h5TYHvs3k,173
|
||||
pytz/zoneinfo/Arctic/Longyearbyen,sha256=8dHPGd6GTq7ctIKt2PcpMc2vBOuRjFebCF6qm52W6LI,2242
|
||||
pytz/zoneinfo/Asia/Aden,sha256=Jq2u7g9DmMGAhSpYRp3O7CsypGB3jGGpHmI8VmkX0SI,173
|
||||
pytz/zoneinfo/Asia/Almaty,sha256=Wt3gB_YBqa3tsB33BW8AYSuhbP582F28Rdybwpirxuc,1017
|
||||
pytz/zoneinfo/Asia/Amman,sha256=xnU1CWwSEcdZ3kv7U9QVLfJ34IWNlrG96i1yY7NU-Pg,1863
|
||||
pytz/zoneinfo/Asia/Anadyr,sha256=44QssTQzP9OaFGzWHrb3YFlC3rdpam5s0EoJcKj7tgM,1208
|
||||
pytz/zoneinfo/Asia/Aqtau,sha256=fCT0GEGDwFYTL_7tEk8O91K3MzfPLfRDUzgdqTUY3PQ,1003
|
||||
pytz/zoneinfo/Asia/Aqtobe,sha256=zdeRFMx9M8K1I2AdMaKLvE68Q-PqjmEzxy190PgNclY,1033
|
||||
pytz/zoneinfo/Asia/Ashgabat,sha256=PUG3O_6SJQApyH14M099maI2HCnEMl2V_BWdWdWaWrk,637
|
||||
pytz/zoneinfo/Asia/Ashkhabad,sha256=PUG3O_6SJQApyH14M099maI2HCnEMl2V_BWdWdWaWrk,637
|
||||
pytz/zoneinfo/Asia/Atyrau,sha256=aFEb6N1fopCN9ssIU6J8tR2LDlJIMdDzNPZKsgIHN8c,1011
|
||||
pytz/zoneinfo/Asia/Baghdad,sha256=N_YT_FcgiSqqFgNvHJ_dSqzCOYbBycYT1gqrFrM18gM,995
|
||||
pytz/zoneinfo/Asia/Bahrain,sha256=mPfIYV_DFw1S2SrtWAoEwSHCiHyYZsRansqS7BSGPUE,211
|
||||
pytz/zoneinfo/Asia/Baku,sha256=sVLuQhsziG6Boz-SHu4xklH9-gYxmei_gy5Zf9tFc1E,1255
|
||||
pytz/zoneinfo/Asia/Bangkok,sha256=Rr1_blXOgpIgxW-3XT623SI63xZZfTzW-9UvbkurEW4,211
|
||||
pytz/zoneinfo/Asia/Barnaul,sha256=F36q98AteLt688YLGJ8W0fNXhhuNuB7Yo4LxXGDILYc,1241
|
||||
pytz/zoneinfo/Asia/Beirut,sha256=n4MCQgIhN9Fp903tSgkZwH40esHYsOLPlSP-rVJc_fE,2166
|
||||
pytz/zoneinfo/Asia/Bishkek,sha256=r4cdEviVuaRNrzM161P0Rvuq5ijpyarOiPPxMT2vgRg,999
|
||||
pytz/zoneinfo/Asia/Brunei,sha256=U1qjzqam1cIYJHX8RUtUDGTpjFW9mQFkvnGb5w7WKhs,215
|
||||
pytz/zoneinfo/Asia/Calcutta,sha256=1qQhAK_MYAL4BuucmimbKogh7qamPXdEL-23deQ40mo,303
|
||||
pytz/zoneinfo/Asia/Chita,sha256=usFbMZ7wzDX8-ZDDKGedjkUhj6UjD2X69YasvpLyjjs,1243
|
||||
pytz/zoneinfo/Asia/Choibalsan,sha256=jGpIcsVXF0500YQ_Bx-ctEB39-crBSwwPxWyoH42DNg,977
|
||||
pytz/zoneinfo/Asia/Chongqing,sha256=ccva1KJcnaL7OjulCubfBx6rJlqSD87dau1sS3WJ_Vo,545
|
||||
pytz/zoneinfo/Asia/Chungking,sha256=ccva1KJcnaL7OjulCubfBx6rJlqSD87dau1sS3WJ_Vo,545
|
||||
pytz/zoneinfo/Asia/Colombo,sha256=clN-vxDiuaeU0bAHgQAcWQLfF9FTFn8Do0IaBk3Xl58,404
|
||||
pytz/zoneinfo/Asia/Dacca,sha256=PKOp67zPqPZmy1hrWYksnKhqhhVC4HGMXmt-xkFJLw4,361
|
||||
pytz/zoneinfo/Asia/Damascus,sha256=iHiBCeND7fUOqmmjMI_QbbRnwJgk9fIqIt0i7fEKK3k,2306
|
||||
pytz/zoneinfo/Asia/Dhaka,sha256=PKOp67zPqPZmy1hrWYksnKhqhhVC4HGMXmt-xkFJLw4,361
|
||||
pytz/zoneinfo/Asia/Dili,sha256=bzkh1CqICGylmP0y6wRsuQSwEBzDwQpH4PCjOY3i5YI,239
|
||||
pytz/zoneinfo/Asia/Dubai,sha256=ceYDQFbLpjktEEB7kofFi3s6hJdB8HtDdlxjXGDjAHA,173
|
||||
pytz/zoneinfo/Asia/Dushanbe,sha256=BaGYKgvFeu1wfNdSA8af7MdCB3Nn_eBh7bi9E6UzuJ8,607
|
||||
pytz/zoneinfo/Asia/Famagusta,sha256=CFrcygd8ude5x6OEtfM_Dw0KYHoxpPPzq46KoHVxjjc,2028
|
||||
pytz/zoneinfo/Asia/Gaza,sha256=JuR4-dlbUpb3ceWe_48lGM_fyDzkS1llLqZvZ2ruH2Y,2286
|
||||
pytz/zoneinfo/Asia/Harbin,sha256=ccva1KJcnaL7OjulCubfBx6rJlqSD87dau1sS3WJ_Vo,545
|
||||
pytz/zoneinfo/Asia/Hebron,sha256=A4ktgFzm7hJoy5D6xUp5F8UrtSq_wD0fXv-m03ofhoU,2314
|
||||
pytz/zoneinfo/Asia/Ho_Chi_Minh,sha256=tK8kNwjSvmNBvqyrnq9WZ2O3GhsXMUAGpoU0KjGuodQ,375
|
||||
pytz/zoneinfo/Asia/Hong_Kong,sha256=Hx3X5iX_UsB-jzyUskNwUMOf1WOEVZzgzY5GPfupTEU,1191
|
||||
pytz/zoneinfo/Asia/Hovd,sha256=2j5UtN9PDqq41IUpwybFhOno7UuAz0n8953m9O0Z8hc,907
|
||||
pytz/zoneinfo/Asia/Irkutsk,sha256=cEqnlUZCf-6BGevNZ2GyNLSs59MKv1zpB31z_Og9ZZo,1267
|
||||
pytz/zoneinfo/Asia/Istanbul,sha256=K1coZUh7ZAwnysrKIf2iEMvK7ABusdar8gKUufwgFdE,2157
|
||||
pytz/zoneinfo/Asia/Jakarta,sha256=9cWIFS9T1myfJJcJQiLrLiohvFcqTcuWpo4cLK9KUvg,383
|
||||
pytz/zoneinfo/Asia/Jayapura,sha256=7u1MrdFYueoaEfmh_bUqG2oX75YW7vKU5wUySfm2lp8,237
|
||||
pytz/zoneinfo/Asia/Jerusalem,sha256=0F-bkF5hnq-YeFVSCouVMaPVChubj3VkjxfhjHbMbqk,2256
|
||||
pytz/zoneinfo/Asia/Kabul,sha256=N9x1JrC_MalFuQ7TUjEmhhprZtweVZNLgE3WjpkFkfQ,220
|
||||
pytz/zoneinfo/Asia/Kamchatka,sha256=Um9iZXTQT1_42_ubfRA4Dl6Whr6p9ooYXwdQdArM8lw,1184
|
||||
pytz/zoneinfo/Asia/Karachi,sha256=0oIhQSPJVWnmDQqNu38_wGe5aOeMcozxHVYLs8Cm3HY,403
|
||||
pytz/zoneinfo/Asia/Kashgar,sha256=VxwVKxgCe5A-VmZkcxyDAMOyHC5qy7xvOrXy51d3Gdo,173
|
||||
pytz/zoneinfo/Asia/Kathmandu,sha256=tBCtKXsvvR4dCB-wMnhcztHCOYXjMcfJaoya2xjYUvg,224
|
||||
pytz/zoneinfo/Asia/Katmandu,sha256=tBCtKXsvvR4dCB-wMnhcztHCOYXjMcfJaoya2xjYUvg,224
|
||||
pytz/zoneinfo/Asia/Khandyga,sha256=zyKRQg50ttMjrfMr1nGQR1CEpBdn2uQCV44hpnopcH4,1297
|
||||
pytz/zoneinfo/Asia/Kolkata,sha256=1qQhAK_MYAL4BuucmimbKogh7qamPXdEL-23deQ40mo,303
|
||||
pytz/zoneinfo/Asia/Krasnoyarsk,sha256=ShmOSdHKFTui_Fit48i00z4i-LN0-0s5arTF3yZDtyk,1229
|
||||
pytz/zoneinfo/Asia/Kuala_Lumpur,sha256=WicjcsAcfVvmeFaIWxDqnKEtI7_vwQLIS-B72gwNFfs,415
|
||||
pytz/zoneinfo/Asia/Kuching,sha256=TIIH3OLtXOyvsLo1OXqCHJYBqVMPRxln3D7m7O6-OCU,507
|
||||
pytz/zoneinfo/Asia/Kuwait,sha256=Jq2u7g9DmMGAhSpYRp3O7CsypGB3jGGpHmI8VmkX0SI,173
|
||||
pytz/zoneinfo/Asia/Macao,sha256=TuSDLsHkJ1x7aWRYuPA_j8XIeUC1q8FenWH87uuiZsA,1241
|
||||
pytz/zoneinfo/Asia/Macau,sha256=TuSDLsHkJ1x7aWRYuPA_j8XIeUC1q8FenWH87uuiZsA,1241
|
||||
pytz/zoneinfo/Asia/Magadan,sha256=Z0x2Ql9lj9IzDmN5qfdExCTtlx_M1MwuObs9aJQ9eXo,1244
|
||||
pytz/zoneinfo/Asia/Makassar,sha256=yNcv9pUSqtn9wRdg5Xj5Ws0lM6sY4vKE7Bvt6wvqX34,274
|
||||
pytz/zoneinfo/Asia/Manila,sha256=qoa1hU0cW_laPtl1m8f6sx75WaLJOlB9bOWXOmIBn4w,350
|
||||
pytz/zoneinfo/Asia/Muscat,sha256=ceYDQFbLpjktEEB7kofFi3s6hJdB8HtDdlxjXGDjAHA,173
|
||||
pytz/zoneinfo/Asia/Nicosia,sha256=0Unm0IFT7HyGeQ7F3vTa_-klfysCgrulqFO6BD1plZU,2002
|
||||
pytz/zoneinfo/Asia/Novokuznetsk,sha256=LeWq9ppf_qB6EMwgCUfYYWSWxcIOjeDylpbZvuQhJKo,1183
|
||||
pytz/zoneinfo/Asia/Novosibirsk,sha256=EM8rLGKlKpBDiZfQgFeeLx4n4Nt2zl3fDg8VrWJYZVk,1241
|
||||
pytz/zoneinfo/Asia/Omsk,sha256=2terZ9jPe48LW0LVyO-xOj_IlX7b3NzLdhWI-9b92Bs,1229
|
||||
pytz/zoneinfo/Asia/Oral,sha256=m4NS4G0APkx1cY4ky0F4Snyr1gr_ZFLAQgc-VijfyRw,1025
|
||||
pytz/zoneinfo/Asia/Phnom_Penh,sha256=Rr1_blXOgpIgxW-3XT623SI63xZZfTzW-9UvbkurEW4,211
|
||||
pytz/zoneinfo/Asia/Pontianak,sha256=qR4eF_UPfls5qyQ71CFMRunuVjyMpH2CqSza_lNeUFo,381
|
||||
pytz/zoneinfo/Asia/Pyongyang,sha256=Os_XF2v3vC1BIM-oXlHqcF5N8dlMgwbz25B9TNyhMRQ,253
|
||||
pytz/zoneinfo/Asia/Qatar,sha256=mPfIYV_DFw1S2SrtWAoEwSHCiHyYZsRansqS7BSGPUE,211
|
||||
pytz/zoneinfo/Asia/Qostanay,sha256=GRDi7zrR3x3xUDdArOnCOVJMe64K1QN9u7LiRhlVkig,1033
|
||||
pytz/zoneinfo/Asia/Qyzylorda,sha256=qCaisg1ExqKO3PsbRMl-8kPsPcnigm4jepaWE8kmT1k,1047
|
||||
pytz/zoneinfo/Asia/Rangoon,sha256=8IzmhPKRH3bh0yZVEHF5JfIYe-Jsm19NIUfSHHtbCfM,288
|
||||
pytz/zoneinfo/Asia/Riyadh,sha256=Jq2u7g9DmMGAhSpYRp3O7CsypGB3jGGpHmI8VmkX0SI,173
|
||||
pytz/zoneinfo/Asia/Saigon,sha256=tK8kNwjSvmNBvqyrnq9WZ2O3GhsXMUAGpoU0KjGuodQ,375
|
||||
pytz/zoneinfo/Asia/Sakhalin,sha256=J1fdDklXxn7XYkOGmBGxHEJcrjc6e2vN3YEyAfY43nk,1220
|
||||
pytz/zoneinfo/Asia/Samarkand,sha256=3Gc2fVVq4nUBMyLHGGjACfb_Z96IZjejmfXSbgJllMo,605
|
||||
pytz/zoneinfo/Asia/Seoul,sha256=fC9w2GUJijtrfiFg2L1Jdr3y4bBjQlTE9NJmt5D6sgs,517
|
||||
pytz/zoneinfo/Asia/Shanghai,sha256=ccva1KJcnaL7OjulCubfBx6rJlqSD87dau1sS3WJ_Vo,545
|
||||
pytz/zoneinfo/Asia/Singapore,sha256=giw8WJTln02hzReUqtFHFdWDgvEXyTZgQki_SiDGqGM,415
|
||||
pytz/zoneinfo/Asia/Srednekolymsk,sha256=PYi_JOgSAbXkVegQ-tNsz3D49oWtW_dU7FhEQJoGADM,1230
|
||||
pytz/zoneinfo/Asia/Taipei,sha256=kVl7KK3kDRqf0_AbKbL2jXsTIc0HZNWX54V9cKHPt_Y,781
|
||||
pytz/zoneinfo/Asia/Tashkent,sha256=rV4AsZdK3_O8rPw_gtghUhgeaQ1H56HhbtVD4gpTg5w,621
|
||||
pytz/zoneinfo/Asia/Tbilisi,sha256=3qbylIQUwPo-bnpDgPqiaXpEWED-_rr82fAseXZ61uI,1071
|
||||
pytz/zoneinfo/Asia/Tehran,sha256=9v-FDUBOZdCVyP8Ruoep7ck9PIR76SAJCR5g5VfSrsg,2610
|
||||
pytz/zoneinfo/Asia/Tel_Aviv,sha256=0F-bkF5hnq-YeFVSCouVMaPVChubj3VkjxfhjHbMbqk,2256
|
||||
pytz/zoneinfo/Asia/Thimbu,sha256=Rp4AukR2rfp4siY8i8EBmKjScmyNnjqIPnOhTwz5K3k,215
|
||||
pytz/zoneinfo/Asia/Thimphu,sha256=Rp4AukR2rfp4siY8i8EBmKjScmyNnjqIPnOhTwz5K3k,215
|
||||
pytz/zoneinfo/Asia/Tokyo,sha256=oCueZgRNxcNcX3ZGdif9y6Su4cyVhga4XHdwlcrYLOs,309
|
||||
pytz/zoneinfo/Asia/Tomsk,sha256=AEb3lgBFLAIeJITeoiN31KtbCCJmjbNz5tpz5boehbI,1241
|
||||
pytz/zoneinfo/Asia/Ujung_Pandang,sha256=yNcv9pUSqtn9wRdg5Xj5Ws0lM6sY4vKE7Bvt6wvqX34,274
|
||||
pytz/zoneinfo/Asia/Ulaanbaatar,sha256=ckipY6ZslPy4xU2peN7ck3_jksY3qVPggEXUGMs6Cms,907
|
||||
pytz/zoneinfo/Asia/Ulan_Bator,sha256=ckipY6ZslPy4xU2peN7ck3_jksY3qVPggEXUGMs6Cms,907
|
||||
pytz/zoneinfo/Asia/Urumqi,sha256=VxwVKxgCe5A-VmZkcxyDAMOyHC5qy7xvOrXy51d3Gdo,173
|
||||
pytz/zoneinfo/Asia/Ust-Nera,sha256=1ATb3km6fWXAsZBSMw1Q148W0uO_KRi1mKGnRmal08U,1276
|
||||
pytz/zoneinfo/Asia/Vientiane,sha256=Rr1_blXOgpIgxW-3XT623SI63xZZfTzW-9UvbkurEW4,211
|
||||
pytz/zoneinfo/Asia/Vladivostok,sha256=yliF7EuoNDSqX9httAgR4g3lG5dQXSSMGEAGkP-A3-U,1230
|
||||
pytz/zoneinfo/Asia/Yakutsk,sha256=NHfgcByLUyuQw0PzS9CAhiEWJ7_qqHIc_lCuEELA-uU,1229
|
||||
pytz/zoneinfo/Asia/Yangon,sha256=8IzmhPKRH3bh0yZVEHF5JfIYe-Jsm19NIUfSHHtbCfM,288
|
||||
pytz/zoneinfo/Asia/Yekaterinburg,sha256=R3NIegRSPcDrKZ2ONmlM3_Np_RTkvfukNhDrfPRt1Ds,1267
|
||||
pytz/zoneinfo/Asia/Yerevan,sha256=5ymBQlhOY3X_S64myQpIZkvNIcwYbvfXmk8y6KEFd4Y,1199
|
||||
pytz/zoneinfo/Atlantic/Azores,sha256=ut7TdE-xiQNjRybg56Tt5b7Zo5zqbuF5IFci2aDMs1Q,3484
|
||||
pytz/zoneinfo/Atlantic/Bermuda,sha256=T6boFJI2vLbWd9xWxiV-MiM4-NELokbKf4NFOt0Z5tI,1990
|
||||
pytz/zoneinfo/Atlantic/Canary,sha256=ymK9ufqphvNjDK3hzikN4GfkcR3QeCBiPKyVc6FjlbA,1897
|
||||
pytz/zoneinfo/Atlantic/Cape_Verde,sha256=ESQvE3deMI-lx9mG0yJLEsFX5KRl-7c6gD5O2h0Zm9Q,270
|
||||
pytz/zoneinfo/Atlantic/Faeroe,sha256=NibdZPZtapnYR_myIZnMdTaSKGsOBGgujj0_T2NvAzs,1815
|
||||
pytz/zoneinfo/Atlantic/Faroe,sha256=NibdZPZtapnYR_myIZnMdTaSKGsOBGgujj0_T2NvAzs,1815
|
||||
pytz/zoneinfo/Atlantic/Jan_Mayen,sha256=8dHPGd6GTq7ctIKt2PcpMc2vBOuRjFebCF6qm52W6LI,2242
|
||||
pytz/zoneinfo/Atlantic/Madeira,sha256=e1K2l8ykd8xpznQNs3SSuIZ1ZfVx2Y69EXrhvYV3P14,3475
|
||||
pytz/zoneinfo/Atlantic/Reykjavik,sha256=l9dpiCPgQjKBCncz68a5_KMrfrXUZbbIub6HvCv3UHc,1174
|
||||
pytz/zoneinfo/Atlantic/South_Georgia,sha256=fDHtwjfiODvwh86DZGI3cRrH3i1-Qnx7euix74HQLg8,172
|
||||
pytz/zoneinfo/Atlantic/St_Helena,sha256=sO8nA2HVdPUA_bKvoMSiuCwUqu71KflmTyWBH9bLOdQ,156
|
||||
pytz/zoneinfo/Atlantic/Stanley,sha256=YMgRPUyaFFS7PmFTCIMLYiKQ0x9ta18Uv2q_SwW4UMo,1242
|
||||
pytz/zoneinfo/Australia/ACT,sha256=aAQmT5wJ3Ilyv9xdOpIo2XNNX2nNOuvc410IUDgMd9g,2214
|
||||
pytz/zoneinfo/Australia/Adelaide,sha256=dq31oeX2rIcrdvm6d1rIweETZ_5DCRlFFEDEwvkEiHw,2233
|
||||
pytz/zoneinfo/Australia/Brisbane,sha256=s2laqpdMvWafSRnn0C9Jo4n5dKC2VSJb6BBexfjJO7Y,443
|
||||
pytz/zoneinfo/Australia/Broken_Hill,sha256=Ei2Cd5vzMq4vnmBv0v2V49OhkZ4SwckASCIScY0q6oM,2269
|
||||
pytz/zoneinfo/Australia/Canberra,sha256=aAQmT5wJ3Ilyv9xdOpIo2XNNX2nNOuvc410IUDgMd9g,2214
|
||||
pytz/zoneinfo/Australia/Currie,sha256=wByOtmWwEqSJv5dScETF3CJ6gbUQWfFkKug9tmz8ap4,2214
|
||||
pytz/zoneinfo/Australia/Darwin,sha256=wbzSQwA9xkG9FCxkOart4uny4HzNVUJoxFMHg3vLcLo,318
|
||||
pytz/zoneinfo/Australia/Eucla,sha256=j0SCMkMqv-M28JkYgjjmlbqF2b164UR5kgzWWFXkSzw,494
|
||||
pytz/zoneinfo/Australia/Hobart,sha256=CMNyxzyfJ9pH9XGfNhWAioggnG0PtBPbCG-Tz2jZ6sc,2326
|
||||
pytz/zoneinfo/Australia/LHI,sha256=Q_7KVo8lUTEwB8QfLysmQerdBuGR20xguGMTveu3Zvk,1880
|
||||
pytz/zoneinfo/Australia/Lindeman,sha256=W5CxSYLuhQ5Enuo7AjoTattZwBqKS5-bcq-YoLLo1qs,513
|
||||
pytz/zoneinfo/Australia/Lord_Howe,sha256=Q_7KVo8lUTEwB8QfLysmQerdBuGR20xguGMTveu3Zvk,1880
|
||||
pytz/zoneinfo/Australia/Melbourne,sha256=ozWKlX9FhTkkWps646ceIRTb6w1OPzQhvE9Eg7OWe7c,2214
|
||||
pytz/zoneinfo/Australia/NSW,sha256=aAQmT5wJ3Ilyv9xdOpIo2XNNX2nNOuvc410IUDgMd9g,2214
|
||||
pytz/zoneinfo/Australia/North,sha256=wbzSQwA9xkG9FCxkOart4uny4HzNVUJoxFMHg3vLcLo,318
|
||||
pytz/zoneinfo/Australia/Perth,sha256=6M5yXgHVoyO8zibbtrMSrnf5hr0PQ1CjCrIhsB87ESw,470
|
||||
pytz/zoneinfo/Australia/Queensland,sha256=s2laqpdMvWafSRnn0C9Jo4n5dKC2VSJb6BBexfjJO7Y,443
|
||||
pytz/zoneinfo/Australia/South,sha256=dq31oeX2rIcrdvm6d1rIweETZ_5DCRlFFEDEwvkEiHw,2233
|
||||
pytz/zoneinfo/Australia/Sydney,sha256=aAQmT5wJ3Ilyv9xdOpIo2XNNX2nNOuvc410IUDgMd9g,2214
|
||||
pytz/zoneinfo/Australia/Tasmania,sha256=CMNyxzyfJ9pH9XGfNhWAioggnG0PtBPbCG-Tz2jZ6sc,2326
|
||||
pytz/zoneinfo/Australia/Victoria,sha256=ozWKlX9FhTkkWps646ceIRTb6w1OPzQhvE9Eg7OWe7c,2214
|
||||
pytz/zoneinfo/Australia/West,sha256=6M5yXgHVoyO8zibbtrMSrnf5hr0PQ1CjCrIhsB87ESw,470
|
||||
pytz/zoneinfo/Australia/Yancowinna,sha256=Ei2Cd5vzMq4vnmBv0v2V49OhkZ4SwckASCIScY0q6oM,2269
|
||||
pytz/zoneinfo/Brazil/Acre,sha256=dM3AWrI7Z9PID5-MXVGD_dfokjmDLrOfkHBVamaGA94,648
|
||||
pytz/zoneinfo/Brazil/DeNoronha,sha256=6WHMFwQCyyNfZgLizT-MlRSeJ_pTpvZ_ZbfyTXzyD-U,728
|
||||
pytz/zoneinfo/Brazil/East,sha256=R2d0V9j2J0-UyFaM8MHFy38sJMZnJRPDDwnKj6I2-tQ,2002
|
||||
pytz/zoneinfo/Brazil/West,sha256=q6aegVxK8Ek9Bw9X8cPd9Jopnmu1wnq2T54jAD_4qtk,616
|
||||
pytz/zoneinfo/CET,sha256=yakjxBnqNx6nR5gksu4gUDnE6V-uHC296LO5E7LQ4Pw,2102
|
||||
pytz/zoneinfo/CST6CDT,sha256=AMxFqFYh5PRPIN6SjZKDZlMtHc5Dw7ffx-k5IEPyCBk,2294
|
||||
pytz/zoneinfo/Canada/Atlantic,sha256=TZpmc5PwWoLfTfQoQ_b3U17BE2iVKSeNkR0Ho8mbTn8,3424
|
||||
pytz/zoneinfo/Canada/Central,sha256=0JsHcZxpM30Sd3KTit1BwZws4gHn5j8RS2Yj-zvzv94,2882
|
||||
pytz/zoneinfo/Canada/Eastern,sha256=ggOSzbHkmfgu9wTQzP0MUKsrKMbgveuAeThh1eFl1a0,3494
|
||||
pytz/zoneinfo/Canada/Mountain,sha256=IifIfkjUBbRumwp5pAujaoNVq-8bBJ6F0M2Ufz5PJQc,2388
|
||||
pytz/zoneinfo/Canada/Newfoundland,sha256=r1-17uKv27eZ3JsVkw_DLZQbo6wvjuuVu7C2pDsmOgI,3655
|
||||
pytz/zoneinfo/Canada/Pacific,sha256=-ncV1mfM0K5x60RbLnI6ejRB-__oTpazdB3lwwZPq5o,2892
|
||||
pytz/zoneinfo/Canada/Saskatchewan,sha256=yjqT08pHbICYe83H8JmtaDBvCFqRv7Tfze3Y8xuXukw,980
|
||||
pytz/zoneinfo/Canada/Yukon,sha256=agbpCco506MSV46rKLEkJd7_RTjinyaBbScQIUDZM00,2084
|
||||
pytz/zoneinfo/Chile/Continental,sha256=GB14PW0xABV283dXc8qL-nnDW-ViFUR3bne7sg0Aido,2529
|
||||
pytz/zoneinfo/Chile/EasterIsland,sha256=paHp1QRXIa02kgd0-4V6vWXdqcwheow-hJQD9VqacfQ,2233
|
||||
pytz/zoneinfo/Cuba,sha256=TlB5hicCM5kBKkc4lvc2Ca5-9O4tBHQRLVJnHKK7VEY,2428
|
||||
pytz/zoneinfo/EET,sha256=aeEN8LfvOF8LxHbsQxZHPpwuo7As2pfAEwY_Bt2yGrU,1876
|
||||
pytz/zoneinfo/EST,sha256=l-r5Es5tuZqHqm3nvg_Vcois8R5oJmB0IjN4UAZlvj0,118
|
||||
pytz/zoneinfo/EST5EDT,sha256=9Z6hFxZ_gL3y99R_bTbrtGJ917lVm-ljhggRvmlbgV8,2294
|
||||
pytz/zoneinfo/Egypt,sha256=eXtOYN1sUfjfFmYDIXB6dAE9Hxx7ffrjPgwcB3CJQWU,1963
|
||||
pytz/zoneinfo/Eire,sha256=uO3ewnHI5E1a4_9tBdh54WBRTaBOwb48noE9lyZdq4c,3522
|
||||
pytz/zoneinfo/Etc/GMT,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/Etc/GMT+0,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/Etc/GMT+1,sha256=mQBgj6VLrmTvMXQyxVk6PeBCGDvtMtDtQTb5CaKpXIE,120
|
||||
pytz/zoneinfo/Etc/GMT+10,sha256=RheCdFh3L9KTs1IA7gafWGBujK_a7ifMWb-ya2JX9vo,121
|
||||
pytz/zoneinfo/Etc/GMT+11,sha256=sKye6ylwRvyNlYdpyEHwSF4ni8D0ltZtGIfaPeANTqQ,121
|
||||
pytz/zoneinfo/Etc/GMT+12,sha256=UHQ2-vMBE0sYg9z2Sh3GnH-8iWE5la7cyemc9_aw_fY,121
|
||||
pytz/zoneinfo/Etc/GMT+2,sha256=1pLFnVhT-wXuJAUDd5vawvtCN467nHEw2caBc7rqetI,120
|
||||
pytz/zoneinfo/Etc/GMT+3,sha256=YZnwH5EjhIcQVSOWSohDAGnl8gXlDyibtAfYscWHin8,120
|
||||
pytz/zoneinfo/Etc/GMT+4,sha256=h9DbBHfi_lvphOEdiHVG6g8kVMVurG6osWIfKtFaN0I,120
|
||||
pytz/zoneinfo/Etc/GMT+5,sha256=jG4_B_Tk5IBapB-Q1QOyOBbVpjoAafHyrnjRc0oO5Oo,120
|
||||
pytz/zoneinfo/Etc/GMT+6,sha256=CAyx3wbPd-yZ3We-QZ7h4ziu_TxmIdtlGNyGr8NB-1s,120
|
||||
pytz/zoneinfo/Etc/GMT+7,sha256=7Of_yiEdusTvTQg9xXW1DJy1FpwCA2QmPDxX7b0a64Y,120
|
||||
pytz/zoneinfo/Etc/GMT+8,sha256=_A-rnQ7y9hmQ3kXS-oCDkpq3aLIqPvnEaeYI0XV1-dQ,120
|
||||
pytz/zoneinfo/Etc/GMT+9,sha256=srIOLxy_5F4ZODiaVd3M6C1x5Ultvp9hWMIWy2sRLL8,120
|
||||
pytz/zoneinfo/Etc/GMT-0,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/Etc/GMT-1,sha256=-b82Rx5HcwyD_o_-SNKViYdHnMCZXgH-LBcsOEOqZUQ,121
|
||||
pytz/zoneinfo/Etc/GMT-10,sha256=pfc8BmY7dzUU10JLed62wMhmvKJT9qizsmq1pJ-0N18,122
|
||||
pytz/zoneinfo/Etc/GMT-11,sha256=OwCooxA3eA-cyq0KKqGv7jZ3hE8YPnxyWsitNdOEr-4,122
|
||||
pytz/zoneinfo/Etc/GMT-12,sha256=qRGLNOVeiY2Z8xz5U3gi0ABzn7NyFP51Ng20lXEXUsk,122
|
||||
pytz/zoneinfo/Etc/GMT-13,sha256=MjwL3YNNx690-9B_vUB6WcttWBW5xP8AwGl7jXYEh6c,122
|
||||
pytz/zoneinfo/Etc/GMT-14,sha256=KiaZ_BN2dwxG4473JLbP5SiDTeWuP_vWOd8yeDcYdsM,122
|
||||
pytz/zoneinfo/Etc/GMT-2,sha256=NROeV-MJx7S5CNAgxZ4IdZIXTOkGxeFMIJ7WOnj2Ums,121
|
||||
pytz/zoneinfo/Etc/GMT-3,sha256=jVfHcz8UOa1bBM9N_6_wNtO0cKqaGDXmiSbhGyzk0MY,121
|
||||
pytz/zoneinfo/Etc/GMT-4,sha256=MIlKIJe9y8SYRKCBpt4Os4pcMwIhiU7jgsMor7QaBuA,121
|
||||
pytz/zoneinfo/Etc/GMT-5,sha256=tE6H1-LOCVgxaYii3yoMBnwf2SYbydB3KeXoUV0RYHw,121
|
||||
pytz/zoneinfo/Etc/GMT-6,sha256=S2e3bGUKz2GTx9OXbsvGHNDx7LS4wGMcB4e_QbkHhMU,121
|
||||
pytz/zoneinfo/Etc/GMT-7,sha256=o3oaQW-xdgOc31e9_yLEkjIW7dK-nokrtBqlFsdkCAg,121
|
||||
pytz/zoneinfo/Etc/GMT-8,sha256=3dI0smF53GWCC58AP5UBbZsq5Xsk6IwX5T3wlNkEJvc,121
|
||||
pytz/zoneinfo/Etc/GMT-9,sha256=4Vvk7IbM-7szf4srQU4dim344CA1vVH2VrOEEJ4nzdQ,121
|
||||
pytz/zoneinfo/Etc/GMT0,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/Etc/Greenwich,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/Etc/UCT,sha256=ECMjnryWIrBKjcF4U8CCABqv6865oXT3ZlylefPH4ok,118
|
||||
pytz/zoneinfo/Etc/UTC,sha256=qx3bM8cYflZAgDOoFl6jsUMuAkcQ56sqr-wDaovX8Jo,118
|
||||
pytz/zoneinfo/Etc/Universal,sha256=qx3bM8cYflZAgDOoFl6jsUMuAkcQ56sqr-wDaovX8Jo,118
|
||||
pytz/zoneinfo/Etc/Zulu,sha256=qx3bM8cYflZAgDOoFl6jsUMuAkcQ56sqr-wDaovX8Jo,118
|
||||
pytz/zoneinfo/Europe/Amsterdam,sha256=8SABbArmmhNJIgIiOcvqXHJQWGAfjrwCL_MzkuT5Q00,2940
|
||||
pytz/zoneinfo/Europe/Andorra,sha256=gTB5jCQmvIw3JJi1_vAcOYuhtzPBR6RXUx9gVV6p6ug,1742
|
||||
pytz/zoneinfo/Europe/Astrakhan,sha256=Ea8afHd0POypLLea80Dqd90AUJRAxoHE4nzQB0oMXcA,1183
|
||||
pytz/zoneinfo/Europe/Athens,sha256=XDY-FBUddRyQHN8GxQLZ4awjuOlWlzlUdjv7OdXFNzA,2262
|
||||
pytz/zoneinfo/Europe/Belfast,sha256=QZabRJMa3ObQQkMITRFJ0GsjMzlLPIJcG07cpSXqKhg,3678
|
||||
pytz/zoneinfo/Europe/Belgrade,sha256=lH-YiOIWfk08pjvzJEIvj2tm6aOKGuuqLv2ZmtN0h7U,1948
|
||||
pytz/zoneinfo/Europe/Berlin,sha256=KJOL98aeEqPnjhPJx7PU_Dr8D1smBDw7rYKtFKrjNpI,2326
|
||||
pytz/zoneinfo/Europe/Bratislava,sha256=df9iODoxg2jGJtsBcHwNvayNA49458pwthAZ80uR4C0,2329
|
||||
pytz/zoneinfo/Europe/Brussels,sha256=waVPmHnhS4xgBi_kDBjKyLjpqYNGVkWauXDQ6mqZalw,2961
|
||||
pytz/zoneinfo/Europe/Bucharest,sha256=PQg3JKHStaTwgFcM9omNvyk1un5OcBsnEzZITI1uLi4,2212
|
||||
pytz/zoneinfo/Europe/Budapest,sha256=YipNStQrEeH9vMeyEPwUnA4fE0f_szC-V6snHvmokWs,2396
|
||||
pytz/zoneinfo/Europe/Busingen,sha256=K5QY7Ujj2VUchKR4bhhb0hgdAJhmwED71ykXDQOGKe8,1909
|
||||
pytz/zoneinfo/Europe/Chisinau,sha256=quaRIkDzTVrOME4HCl4QXOGoEeq6nhjbUXaBJKO2RbA,2436
|
||||
pytz/zoneinfo/Europe/Copenhagen,sha256=2x74ApE1VKX0GP1oDL8eoI1J5xSnJSNAygEMJ_U9CU0,2151
|
||||
pytz/zoneinfo/Europe/Dublin,sha256=uO3ewnHI5E1a4_9tBdh54WBRTaBOwb48noE9lyZdq4c,3522
|
||||
pytz/zoneinfo/Europe/Gibraltar,sha256=egOcazf2u1njGZ0tDj-f1NzZT_K5rpUKSqtShxO7U6c,3052
|
||||
pytz/zoneinfo/Europe/Guernsey,sha256=QZabRJMa3ObQQkMITRFJ0GsjMzlLPIJcG07cpSXqKhg,3678
|
||||
pytz/zoneinfo/Europe/Helsinki,sha256=GEkB7LsVhmegt7YuuWheCDvDGC7b7Nw9bTdDGS9qkJc,1900
|
||||
pytz/zoneinfo/Europe/Isle_of_Man,sha256=QZabRJMa3ObQQkMITRFJ0GsjMzlLPIJcG07cpSXqKhg,3678
|
||||
pytz/zoneinfo/Europe/Istanbul,sha256=K1coZUh7ZAwnysrKIf2iEMvK7ABusdar8gKUufwgFdE,2157
|
||||
pytz/zoneinfo/Europe/Jersey,sha256=QZabRJMa3ObQQkMITRFJ0GsjMzlLPIJcG07cpSXqKhg,3678
|
||||
pytz/zoneinfo/Europe/Kaliningrad,sha256=E4Js62WqCcRIUWmdXUTaTstWTkENOYoTaeg8p1GLzv4,1509
|
||||
pytz/zoneinfo/Europe/Kiev,sha256=iVkTPFkl2tADYapa1HASlaV3tT2VsJpTPTTJC_9HtAk,2088
|
||||
pytz/zoneinfo/Europe/Kirov,sha256=Sr4HEUwk3tPTXioeCLhvlgKbCAFU7Gy2UB3f--uWLDc,1153
|
||||
pytz/zoneinfo/Europe/Lisbon,sha256=L6n3snx6pNHHJIL6JOLFOAlYkQ2J5uB_y5MG_Ic_PDU,3469
|
||||
pytz/zoneinfo/Europe/Ljubljana,sha256=lH-YiOIWfk08pjvzJEIvj2tm6aOKGuuqLv2ZmtN0h7U,1948
|
||||
pytz/zoneinfo/Europe/London,sha256=QZabRJMa3ObQQkMITRFJ0GsjMzlLPIJcG07cpSXqKhg,3678
|
||||
pytz/zoneinfo/Europe/Luxembourg,sha256=ZOXfkcnI5FpIn1G46qA8dm-a4PXiOtt7EiE63k7_SoQ,2960
|
||||
pytz/zoneinfo/Europe/Madrid,sha256=2fCwBiKya-OmEwtO7LbkmE9UqkiWnNoCeJQgFqqLR-I,2628
|
||||
pytz/zoneinfo/Europe/Malta,sha256=xRwBfrV8hOihGtqcek5_B6l5hjc206g3yfbEWXIaUis,2620
|
||||
pytz/zoneinfo/Europe/Mariehamn,sha256=GEkB7LsVhmegt7YuuWheCDvDGC7b7Nw9bTdDGS9qkJc,1900
|
||||
pytz/zoneinfo/Europe/Minsk,sha256=CaJASVmtqqRBe3VX8gnTBvFwzeeKSKR_MpxZuL3D1_c,1361
|
||||
pytz/zoneinfo/Europe/Monaco,sha256=8DHr1ymf4c5sZKAzLBd4GhXsTZUXMOYUKhhVmmGRdrs,2944
|
||||
pytz/zoneinfo/Europe/Moscow,sha256=KmkofRcj6T8Ph28PJChm8JVp13uRvef6TZ0GuPzUiDw,1535
|
||||
pytz/zoneinfo/Europe/Nicosia,sha256=0Unm0IFT7HyGeQ7F3vTa_-klfysCgrulqFO6BD1plZU,2002
|
||||
pytz/zoneinfo/Europe/Oslo,sha256=8dHPGd6GTq7ctIKt2PcpMc2vBOuRjFebCF6qm52W6LI,2242
|
||||
pytz/zoneinfo/Europe/Paris,sha256=wMOaHPLy0KwYfPxMbNq_B8U21RctvO0go5jhc0TlXCQ,2962
|
||||
pytz/zoneinfo/Europe/Podgorica,sha256=lH-YiOIWfk08pjvzJEIvj2tm6aOKGuuqLv2ZmtN0h7U,1948
|
||||
pytz/zoneinfo/Europe/Prague,sha256=df9iODoxg2jGJtsBcHwNvayNA49458pwthAZ80uR4C0,2329
|
||||
pytz/zoneinfo/Europe/Riga,sha256=i0wh8qfjPHC917_24zoICVubx8uw76-igUdhNS-BGvA,2226
|
||||
pytz/zoneinfo/Europe/Rome,sha256=AkZNTzx9Rca1s94Fo3DZBEI0ZQtlNCKeqM4Jn3h4fZs,2683
|
||||
pytz/zoneinfo/Europe/Samara,sha256=z2innqSZ8_lkEy8cIyF9JM_FfnO2sWZaqeFqOh8pD7M,1215
|
||||
pytz/zoneinfo/Europe/San_Marino,sha256=AkZNTzx9Rca1s94Fo3DZBEI0ZQtlNCKeqM4Jn3h4fZs,2683
|
||||
pytz/zoneinfo/Europe/Sarajevo,sha256=lH-YiOIWfk08pjvzJEIvj2tm6aOKGuuqLv2ZmtN0h7U,1948
|
||||
pytz/zoneinfo/Europe/Saratov,sha256=BMej49HlQG24CWCh5VOENrB3jPuJPScPszRtb7MrJ3I,1183
|
||||
pytz/zoneinfo/Europe/Simferopol,sha256=qf7DeCNvgREUPmgBSQgVo5dPVbD1kISnJRGlLMC-s3s,1481
|
||||
pytz/zoneinfo/Europe/Skopje,sha256=lH-YiOIWfk08pjvzJEIvj2tm6aOKGuuqLv2ZmtN0h7U,1948
|
||||
pytz/zoneinfo/Europe/Sofia,sha256=ajEKUev9JSld_rgEij4Q21kC2FoZnoxkd_stoQZaV3Q,2121
|
||||
pytz/zoneinfo/Europe/Stockholm,sha256=Xgp4GSh8-pzdeJeP8TQ20jWDDUj17R69h6RYTbLYd2g,1909
|
||||
pytz/zoneinfo/Europe/Tallinn,sha256=tu-0nzk8K_Ji-63SJGuIHddHjeKaWCcSDh2rbxC5URA,2178
|
||||
pytz/zoneinfo/Europe/Tirane,sha256=ztlZyCS9WCXeVW8nBun3Tyi5HUY0EtFbiBbEc1gucuw,2084
|
||||
pytz/zoneinfo/Europe/Tiraspol,sha256=quaRIkDzTVrOME4HCl4QXOGoEeq6nhjbUXaBJKO2RbA,2436
|
||||
pytz/zoneinfo/Europe/Ulyanovsk,sha256=nFsgcVTmTiiFzHtyJDRnO-3H4GRAfAeceb6b2jFHLUQ,1267
|
||||
pytz/zoneinfo/Europe/Uzhgorod,sha256=81lBZAUeG8PA-PFZQZBF4sH-qPUuVm3Oldd7jO_ALaI,2094
|
||||
pytz/zoneinfo/Europe/Vaduz,sha256=K5QY7Ujj2VUchKR4bhhb0hgdAJhmwED71ykXDQOGKe8,1909
|
||||
pytz/zoneinfo/Europe/Vatican,sha256=AkZNTzx9Rca1s94Fo3DZBEI0ZQtlNCKeqM4Jn3h4fZs,2683
|
||||
pytz/zoneinfo/Europe/Vienna,sha256=WIQmHNORxtl4hh93rde0VF_U88jIyKUAoMyfvSkN0cg,2228
|
||||
pytz/zoneinfo/Europe/Vilnius,sha256=Ezwn0P_nxjGzmv3pk5omndS_YjVW5BdKY_lhG__QKuo,2190
|
||||
pytz/zoneinfo/Europe/Volgograd,sha256=o911mI2yYHTho76W57khBYSJFxxjKDNSRL8NyLHkKIo,1183
|
||||
pytz/zoneinfo/Europe/Warsaw,sha256=tu-hwAy6H3FT19qseYW7KsQFQmdrQTNjrFLj2fDApLk,2696
|
||||
pytz/zoneinfo/Europe/Zagreb,sha256=lH-YiOIWfk08pjvzJEIvj2tm6aOKGuuqLv2ZmtN0h7U,1948
|
||||
pytz/zoneinfo/Europe/Zaporozhye,sha256=V0dhGl3gET8OftMezf8CVy-W00Z7FtuEev5TjI2Rnyw,2106
|
||||
pytz/zoneinfo/Europe/Zurich,sha256=K5QY7Ujj2VUchKR4bhhb0hgdAJhmwED71ykXDQOGKe8,1909
|
||||
pytz/zoneinfo/Factory,sha256=jNxztCY26pmV2H53q5_0y2lrmIHhq_T6DK-20qqBniM,120
|
||||
pytz/zoneinfo/GB,sha256=QZabRJMa3ObQQkMITRFJ0GsjMzlLPIJcG07cpSXqKhg,3678
|
||||
pytz/zoneinfo/GB-Eire,sha256=QZabRJMa3ObQQkMITRFJ0GsjMzlLPIJcG07cpSXqKhg,3678
|
||||
pytz/zoneinfo/GMT,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/GMT+0,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/GMT-0,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/GMT0,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/Greenwich,sha256=Qn2S0se4SXBn-BoX9E3QSUa4XVGSOfttGpSKKUylo3E,118
|
||||
pytz/zoneinfo/HST,sha256=yfWiqV-QCu-p5LnH0TaZowNcVBPc3M1RWYwJswt1m2U,119
|
||||
pytz/zoneinfo/Hongkong,sha256=Hx3X5iX_UsB-jzyUskNwUMOf1WOEVZzgzY5GPfupTEU,1191
|
||||
pytz/zoneinfo/Iceland,sha256=l9dpiCPgQjKBCncz68a5_KMrfrXUZbbIub6HvCv3UHc,1174
|
||||
pytz/zoneinfo/Indian/Antananarivo,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Indian/Chagos,sha256=7NyJlHLhU_aygLKUNYs9g5qpUAhkHAUBgtIM5oWK4qM,211
|
||||
pytz/zoneinfo/Indian/Christmas,sha256=kpotAJzRFdBu2aJ08l1t2A8ST-3TpBg0Xl5PF1APOCI,173
|
||||
pytz/zoneinfo/Indian/Cocos,sha256=iopQ1LI7PVAZfbtNm6BzB0HDQ2VJBzD7QLdnCXAQqTM,182
|
||||
pytz/zoneinfo/Indian/Comoro,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Indian/Kerguelen,sha256=MRNLjdtQk3ze-T1DctgXANYojDifitnt8pN32pLMMEk,173
|
||||
pytz/zoneinfo/Indian/Mahe,sha256=7_UdBaBvSTurA_SqaLSgV1C81lyiUKES-tbToH0hERI,173
|
||||
pytz/zoneinfo/Indian/Maldives,sha256=TZIU35mRFWl5OC7s3byDioD_UBhx5uHBJZSxbemaWd8,211
|
||||
pytz/zoneinfo/Indian/Mauritius,sha256=ZyJQna6vJQH2DUPpLzcK1umqCcBqc5ZpxtEr7Rex8Sk,253
|
||||
pytz/zoneinfo/Indian/Mayotte,sha256=6gLlbmb_WEjAwXIfPTsI3uLChDnWcSMUG2m3r1iiMHw,271
|
||||
pytz/zoneinfo/Indian/Reunion,sha256=-hoKObWb-BxdtId489DRIglQkugjtOwchmKRjMsTIFs,173
|
||||
pytz/zoneinfo/Iran,sha256=9v-FDUBOZdCVyP8Ruoep7ck9PIR76SAJCR5g5VfSrsg,2610
|
||||
pytz/zoneinfo/Israel,sha256=0F-bkF5hnq-YeFVSCouVMaPVChubj3VkjxfhjHbMbqk,2256
|
||||
pytz/zoneinfo/Jamaica,sha256=ua4hGv3opJohmLVUA8cGDUaC6Oc_q5KwLuopJZODsiU,498
|
||||
pytz/zoneinfo/Japan,sha256=oCueZgRNxcNcX3ZGdif9y6Su4cyVhga4XHdwlcrYLOs,309
|
||||
pytz/zoneinfo/Kwajalein,sha256=KpvwzvpH4FAXnlY1Oc7kMlANLiGfWxxIl4MY_N3qKFs,340
|
||||
pytz/zoneinfo/Libya,sha256=QteBmF7rZo7h34de8LssYdW14DQ5sCpp9dDkInX1Tbw,641
|
||||
pytz/zoneinfo/MET,sha256=qt-jBzpyLmJwJNCLaVUZcx4sWDaFaqZUp-dM4z4Jh50,2102
|
||||
pytz/zoneinfo/MST,sha256=_fjruatCNwcylIgwznsfPZuQ07crH35-NZKsYVLxt_c,118
|
||||
pytz/zoneinfo/MST7MDT,sha256=anOjxZSlk240RcU0F4Q37TXfAmt-tgutmh62UEqUWUo,2294
|
||||
pytz/zoneinfo/Mexico/BajaNorte,sha256=OHHtvy3J70z6wvKBHgPqMEnGs6SXp8fkf0WX9ZiOODk,2342
|
||||
pytz/zoneinfo/Mexico/BajaSur,sha256=bmpkiv4g-sOHfUIuCtNmL3h-NUU0qBfUAo_dY-YVlPs,1550
|
||||
pytz/zoneinfo/Mexico/General,sha256=a_B5mCNBzJYh1C0R8SGJhlTEE3Z2KjZlWPejy08-mQE,1604
|
||||
pytz/zoneinfo/NZ,sha256=Tmd_rvTVMk3A95pZSS6MiAT5IBOWoomDEgx0ZOHRGr8,2451
|
||||
pytz/zoneinfo/NZ-CHAT,sha256=kqGe2a6l7CSdO58honCfowprIdZM2Dil5ryb54WY7kI,2078
|
||||
pytz/zoneinfo/Navajo,sha256=6_yPo1_mvnt9DgpPzr0QdHsjdsfUG6ALnagQLML1DSM,2444
|
||||
pytz/zoneinfo/PRC,sha256=ccva1KJcnaL7OjulCubfBx6rJlqSD87dau1sS3WJ_Vo,545
|
||||
pytz/zoneinfo/PST8PDT,sha256=YHfC8CI_kZ3yUTI3PLyr81ms1kDHq1EoO34LH6i5-lc,2294
|
||||
pytz/zoneinfo/Pacific/Apia,sha256=z5j6mHUiB22HHpNf7t13g4jck1wqXFoN5hqu1w9-Q6Y,1125
|
||||
pytz/zoneinfo/Pacific/Auckland,sha256=Tmd_rvTVMk3A95pZSS6MiAT5IBOWoomDEgx0ZOHRGr8,2451
|
||||
pytz/zoneinfo/Pacific/Bougainville,sha256=LwyjDIRgCWxlSOz9APIJESPqmFqEJsmTFGUl2pMR2T8,286
|
||||
pytz/zoneinfo/Pacific/Chatham,sha256=kqGe2a6l7CSdO58honCfowprIdZM2Dil5ryb54WY7kI,2078
|
||||
pytz/zoneinfo/Pacific/Chuuk,sha256=iQhNp6NlDa65KnxmWZvld1TvtWdV6QACmTNGCKD57MQ,287
|
||||
pytz/zoneinfo/Pacific/Easter,sha256=paHp1QRXIa02kgd0-4V6vWXdqcwheow-hJQD9VqacfQ,2233
|
||||
pytz/zoneinfo/Pacific/Efate,sha256=yr4B1LJu_z7YoiE4NtWah5nArhBqbyISOqaj6DWQ8Mo,478
|
||||
pytz/zoneinfo/Pacific/Enderbury,sha256=XsirzlBTcgZlM237Ckn-KgYl_5xsknj5AMfp7Za0U_Q,250
|
||||
pytz/zoneinfo/Pacific/Fakaofo,sha256=MbXu3bmoxFUUpqtAKcNE-Er2CWGHf7BsmjMTqC-CdoE,212
|
||||
pytz/zoneinfo/Pacific/Fiji,sha256=c1kQOUn75oNu3BGaxkimQLT5VWU7vOuOz9gFMxS7aNo,1090
|
||||
pytz/zoneinfo/Pacific/Funafuti,sha256=MwCYvDU-jRABu3iV2NhKh7NZ7-C5zfz6vrhn4QOGBF0,174
|
||||
pytz/zoneinfo/Pacific/Galapagos,sha256=ToOhSLxdZRGS1nTigntrTDToDhyDk9IeyPNsr0kdSRU,254
|
||||
pytz/zoneinfo/Pacific/Gambier,sha256=2_05SnUlz-UF4Cwlm7sT-AtnbW-8I3bEoJW8mB1wO6E,172
|
||||
pytz/zoneinfo/Pacific/Guadalcanal,sha256=byH4c69YS6cUiH68EkEmUCC1pMASuL0gczBfYPJX02E,174
|
||||
pytz/zoneinfo/Pacific/Guam,sha256=yELXYaAXZL4ah2lz9IQ8R_DLOgm0tD5k20rQQLm2Sgg,516
|
||||
pytz/zoneinfo/Pacific/Honolulu,sha256=fwPRv1Jk56sCOi75uZfd_Iy2k2aSQHx3B2K5xUlSPzM,329
|
||||
pytz/zoneinfo/Pacific/Johnston,sha256=fwPRv1Jk56sCOi75uZfd_Iy2k2aSQHx3B2K5xUlSPzM,329
|
||||
pytz/zoneinfo/Pacific/Kiritimati,sha256=azF7cvD0t1YAPc344ptQyndVAPTFTxcNlgbXdPXu82M,254
|
||||
pytz/zoneinfo/Pacific/Kosrae,sha256=RevUy6i-mwxG3YtFidONRRM8wvrB91P1TBpcBZY349U,377
|
||||
pytz/zoneinfo/Pacific/Kwajalein,sha256=KpvwzvpH4FAXnlY1Oc7kMlANLiGfWxxIl4MY_N3qKFs,340
|
||||
pytz/zoneinfo/Pacific/Majuro,sha256=Tfd82jBHgIYeV5nT9hBnnGgqCP9zGwh-bLCaf6fp_y4,330
|
||||
pytz/zoneinfo/Pacific/Marquesas,sha256=Vz3odW3iQNVHXOwscEq85cK4Wq6QQw19aU8UheH4GLk,181
|
||||
pytz/zoneinfo/Pacific/Midway,sha256=ooP2chRfEBjAAj8kkqKrz5lkA8wrd2wYb94UzZyKGoo,187
|
||||
pytz/zoneinfo/Pacific/Nauru,sha256=t4XQvAg-9hya2iUOCIvCLDRbUfhgXwt9bNennRFKNlQ,268
|
||||
pytz/zoneinfo/Pacific/Niue,sha256=VjOrNgRsv-J1pheT3Vio_x8naXkuxgxf_DPCC8ZSMUQ,257
|
||||
pytz/zoneinfo/Pacific/Norfolk,sha256=jtRmPTbAn-QTWnmhBd53TuXitoCLX909K3BWJ8oI2_4,314
|
||||
pytz/zoneinfo/Pacific/Noumea,sha256=CkBMYtLVD9iqlYt_J5bKp2kxy0bItZG6uYWcGaxquUk,314
|
||||
pytz/zoneinfo/Pacific/Pago_Pago,sha256=ooP2chRfEBjAAj8kkqKrz5lkA8wrd2wYb94UzZyKGoo,187
|
||||
pytz/zoneinfo/Pacific/Palau,sha256=AzAKnWVhW__fWjUXyh3nJmwQFFRwbc8JgaI3MjodsH4,190
|
||||
pytz/zoneinfo/Pacific/Pitcairn,sha256=Bd2McuOmdwO6BBzlpd8ZdK-sfqdyoodWTCNwdX6bURo,214
|
||||
pytz/zoneinfo/Pacific/Pohnpei,sha256=KQHRFB67vEcL6LrTqMJw854BSJRE0hD1FkAXOaR0s9Q,325
|
||||
pytz/zoneinfo/Pacific/Ponape,sha256=KQHRFB67vEcL6LrTqMJw854BSJRE0hD1FkAXOaR0s9Q,325
|
||||
pytz/zoneinfo/Pacific/Port_Moresby,sha256=5IhRu_AfRy6m7BorZm_F8RlTqKywj4K9leRDbSFB-fo,196
|
||||
pytz/zoneinfo/Pacific/Rarotonga,sha256=FqkipkaSFPJ0l7AbyKEXIm4TZpDrxPitE0NFfPglrK4,593
|
||||
pytz/zoneinfo/Pacific/Saipan,sha256=yELXYaAXZL4ah2lz9IQ8R_DLOgm0tD5k20rQQLm2Sgg,516
|
||||
pytz/zoneinfo/Pacific/Samoa,sha256=ooP2chRfEBjAAj8kkqKrz5lkA8wrd2wYb94UzZyKGoo,187
|
||||
pytz/zoneinfo/Pacific/Tahiti,sha256=ToZ65Gmwuc5tpXcENrcsEUAGNvHtt7FKn66bl5q2uWo,173
|
||||
pytz/zoneinfo/Pacific/Tarawa,sha256=Zx-RgNRaIKJ1md55dpmWCnjLA05GV8bw90WOlbplvAg,174
|
||||
pytz/zoneinfo/Pacific/Tongatapu,sha256=1sfOaG7KcoizbgJYjOgCtgUQKv8SOjFC6UIFDqIrR8U,384
|
||||
pytz/zoneinfo/Pacific/Truk,sha256=iQhNp6NlDa65KnxmWZvld1TvtWdV6QACmTNGCKD57MQ,287
|
||||
pytz/zoneinfo/Pacific/Wake,sha256=RSzrT65ZwmOAUnL31N8JhRHJbWlV24Qe9p0qe0G3qhY,174
|
||||
pytz/zoneinfo/Pacific/Wallis,sha256=uanwj6GXRwtjlignIk9XTr595v3HtNQDGe4XrVEGQCc,174
|
||||
pytz/zoneinfo/Pacific/Yap,sha256=iQhNp6NlDa65KnxmWZvld1TvtWdV6QACmTNGCKD57MQ,287
|
||||
pytz/zoneinfo/Poland,sha256=tu-hwAy6H3FT19qseYW7KsQFQmdrQTNjrFLj2fDApLk,2696
|
||||
pytz/zoneinfo/Portugal,sha256=L6n3snx6pNHHJIL6JOLFOAlYkQ2J5uB_y5MG_Ic_PDU,3469
|
||||
pytz/zoneinfo/ROC,sha256=kVl7KK3kDRqf0_AbKbL2jXsTIc0HZNWX54V9cKHPt_Y,781
|
||||
pytz/zoneinfo/ROK,sha256=fC9w2GUJijtrfiFg2L1Jdr3y4bBjQlTE9NJmt5D6sgs,517
|
||||
pytz/zoneinfo/Singapore,sha256=giw8WJTln02hzReUqtFHFdWDgvEXyTZgQki_SiDGqGM,415
|
||||
pytz/zoneinfo/Turkey,sha256=K1coZUh7ZAwnysrKIf2iEMvK7ABusdar8gKUufwgFdE,2157
|
||||
pytz/zoneinfo/UCT,sha256=ECMjnryWIrBKjcF4U8CCABqv6865oXT3ZlylefPH4ok,118
|
||||
pytz/zoneinfo/US/Alaska,sha256=oZA1NSPS2BWdymYpnCHFO8BlYVS-ll5KLg2Ez9CbETs,2371
|
||||
pytz/zoneinfo/US/Aleutian,sha256=IB1DhwJQAKbhPJ9jHLf8zW5Dad7HIkBS-dhv64E1OlM,2356
|
||||
pytz/zoneinfo/US/Arizona,sha256=KumIxxid0LUzIrrXuzoiammLT-UOj6iFQdHoO0FFtzg,344
|
||||
pytz/zoneinfo/US/Central,sha256=4aZFw-svkMyXmSpNufqzK-xveos-oVJDpEyI8Yu9HQE,3576
|
||||
pytz/zoneinfo/US/East-Indiana,sha256=GrNub1_3Um5Qh67wOx58_TEAz4fwAeAlk2AlMTVA_sI,1666
|
||||
pytz/zoneinfo/US/Eastern,sha256=7AoiEGjr3wV4P7C4Qs35COZqwr2mjNDq7ocpsSPFOM8,3536
|
||||
pytz/zoneinfo/US/Hawaii,sha256=fwPRv1Jk56sCOi75uZfd_Iy2k2aSQHx3B2K5xUlSPzM,329
|
||||
pytz/zoneinfo/US/Indiana-Starke,sha256=BiALShjiOLg1o8mMRWJ1jyTlJkgvwzte7B9WSOvTUNg,2428
|
||||
pytz/zoneinfo/US/Michigan,sha256=RB736oxzhQTrK3FTJA5OxIxZdH3bpalRpBBZk8cgb5w,2174
|
||||
pytz/zoneinfo/US/Mountain,sha256=6_yPo1_mvnt9DgpPzr0QdHsjdsfUG6ALnagQLML1DSM,2444
|
||||
pytz/zoneinfo/US/Pacific,sha256=VOy1PikdjiVdJ7lukVGzwl8uDxV_KYqznkTm5BLEiDM,2836
|
||||
pytz/zoneinfo/US/Samoa,sha256=ooP2chRfEBjAAj8kkqKrz5lkA8wrd2wYb94UzZyKGoo,187
|
||||
pytz/zoneinfo/UTC,sha256=qx3bM8cYflZAgDOoFl6jsUMuAkcQ56sqr-wDaovX8Jo,118
|
||||
pytz/zoneinfo/Universal,sha256=qx3bM8cYflZAgDOoFl6jsUMuAkcQ56sqr-wDaovX8Jo,118
|
||||
pytz/zoneinfo/W-SU,sha256=KmkofRcj6T8Ph28PJChm8JVp13uRvef6TZ0GuPzUiDw,1535
|
||||
pytz/zoneinfo/WET,sha256=2LBpgbAlN_Bm38fvnVoHUyBzWz8mQBwdVxV18koFKbc,1873
|
||||
pytz/zoneinfo/Zulu,sha256=qx3bM8cYflZAgDOoFl6jsUMuAkcQ56sqr-wDaovX8Jo,118
|
||||
pytz/zoneinfo/iso3166.tab,sha256=_ovReSwOfsa0JQfFijukM-vdrb9MMDHqym2pxB3vN9I,4445
|
||||
pytz/zoneinfo/leapseconds,sha256=nt73uXEfW-ewlEmivFKAqsrlo2VdXRIxVatCzNbtegQ,2564
|
||||
pytz/zoneinfo/posixrules,sha256=7AoiEGjr3wV4P7C4Qs35COZqwr2mjNDq7ocpsSPFOM8,3536
|
||||
pytz/zoneinfo/tzdata.zi,sha256=AJNOjf8DKD-czDdot-LiNURZUEiBgqCzfEJaZE-s9XU,110476
|
||||
pytz/zoneinfo/zone.tab,sha256=4h4AclATOm8faTNIh3RJL4rhM2q5hXQcDAbbNu_x9S0,19222
|
||||
pytz/zoneinfo/zone1970.tab,sha256=BA99s4W7xj9VdoO0b21WiJs4arN4_nBVfcoEUol0npA,17866
|
||||
@@ -0,0 +1,6 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: bdist_wheel (0.30.0)
|
||||
Root-Is-Purelib: true
|
||||
Tag: py2-none-any
|
||||
Tag: py3-none-any
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"classifiers": ["Development Status :: 6 - Mature", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.4", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules"], "download_url": "https://pypi.org/project/pytz/", "extensions": {"python.details": {"contacts": [{"email": "stuart@stuartbishop.net", "name": "Stuart Bishop", "role": "author"}, {"email": "stuart@stuartbishop.net", "name": "Stuart Bishop", "role": "maintainer"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "http://pythonhosted.org/pytz"}}}, "generator": "bdist_wheel (0.30.0)", "keywords": ["timezone", "tzinfo", "datetime", "olson", "time"], "license": "MIT", "metadata_version": "2.0", "name": "pytz", "platform": "Independent", "summary": "World timezone definitions, modern and historical", "version": "2018.9"}
|
||||
@@ -0,0 +1 @@
|
||||
pytz
|
||||
Reference in New Issue
Block a user