B ~Se܄Q@s$dZdZdZeZeZddddddd d d d d dg ZddlZddlZddlZ ddl Z ddl m Z ddl m Z ddl mZddl mZddlmZmZmZddlmZddlmZmZyeWn ek reZddZYn XddZddZddZiZddZ d d!Z!e"dZ#ej"d"d#Z$Gd$d%d%ej%Z&e&Z&Z'd&d'Z(d(e(_)d)d*Z*d(e*_)Gd+d,d,eZ+e+Z,Gd-d.d.eZ-e-Z.Gd/d0d0ej%Z/ifd1d2Z0d(e0_)d3d4Z1e2d5kre1d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddd%ddddgQZ3edde3DZ3ee3Z4d6d7d8d9d:dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdidjdkdldmdndodpdqdrdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d d d dddddddddddddddddd d!d"d#d$d%d'd(d)d*d+d,d-d.d/d1d2d5d7d8d9d:d;d<d=d?d@dAdBdCdEdFdGdHdIdJdLdNdOdPdQdRdSdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdedgdhdidjdkdldmdndodpdsdtdudwdydzd{d|d}d~dddddddddddddddddddddddddddddddސdߐdddddddddddddddddddddddddddddddddddddddd d d d d dddddddddddddddd'd(d)d*d+d,d-d.d/d0d1dCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdTdUdVdWdXdYdZd[d\d]d^d_d`dadcdddedgdhdidkdldudwdxdzd{d~dd%gZ5edde5DZ5ee5Z6dS(z datetime.tzinfo timezone definitions generated from the Olson timezone database: ftp://elsie.nci.nih.gov/pub/tz*.tar.gz See the datetime section of the Python Library Reference for information on how to use these modules. 2017bz2017.2timezoneutccountry_timezones country_namesAmbiguousTimeErrorInvalidTimeErrorNonExistentTimeErrorUnknownTimeZoneError all_timezonesall_timezones_setcommon_timezonescommon_timezones_setN)r)r)r)r )LazyDictLazyListLazySet) unpickler) build_tzinfo _byte_stringcCs|d|S)z >>> ascii('Hello') 'Hello' >>> ascii('\N{TRADE MARK SIGN}') #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... UnicodeEncodeError: ... ASCII)encode)sr>/opt/alt/python37/lib/python3.7/site-packages/pytz/__init__.pyascii.s rcCs |dS)a >>> ascii('Hello') 'Hello' >>> ascii(u'Hello') 'Hello' >>> ascii(u'\N{TRADE MARK SIGN}') #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... UnicodeEncodeError: ... r)r)rrrrr<s cCs\|dd}x0|D](}|tjjks2tjj|krtd|qWtjjd|}t|dS)zOpen a resource from the zoneinfo subdir for reading. Uses the pkg_resources module if available and no standard file found at the calculated location. /zBad path segment: %r/usr/share/zoneinforb)r) lstripsplitospathpardirsep ValueErrorjoinopen)name name_partspartfilenamerrr open_resourceJs  r+cCs*yt|dStk r$dSXdS)z(Return true if the given resource existsTFN)r+closeIOError)r'rrrresource_existsYs  r.cCs|dkrtSy t|}Wntk r8t|YnXt|}|tkr|tkrzt|}zt ||t|<Wd| Xnt|t|S)ao Return a datetime.tzinfo implementation for the given timezone >>> from datetime import datetime, timedelta >>> utc = timezone('UTC') >>> eastern = timezone('US/Eastern') >>> eastern.zone 'US/Eastern' >>> timezone(unicode('US/Eastern')) is eastern True >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc) >>> loc_dt = utc_dt.astimezone(eastern) >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' >>> loc_dt.strftime(fmt) '2002-10-27 01:00:00 EST (-0500)' >>> (loc_dt - timedelta(minutes=10)).strftime(fmt) '2002-10-27 00:50:00 EST (-0500)' >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt) '2002-10-27 01:50:00 EDT (-0400)' >>> (loc_dt + timedelta(minutes=10)).strftime(fmt) '2002-10-27 01:10:00 EST (-0500)' Raises UnknownTimeZoneError if passed an unknown zone. >>> try: ... timezone('Asia/Shangri-La') ... except UnknownTimeZoneError: ... print('Unknown') Unknown >>> try: ... timezone(unicode('\N{TRADE MARK SIGN}')) ... except UnknownTimeZoneError: ... print('Unknown') Unknown UTCN) upperrrUnicodeEncodeErrorr _unmunge_zone _tzinfo_cacher r+rr,)zonefprrrrss%   cCs|ddddS)z?Undo the time zone name munging done by older versions of pytz._plus_+_minus_-)replace)r4rrrr2sr2)hourscsteZdZdZdZeZeZeZfddZ ddZ ddZ dd Z d d Z dd dZdddZddZddZZS)r/zUTC Optimized UTC implementation. It unpickles using the single module global instance defined beneath this class declaration. cs&|jdkr||Sttj||S)N)tzinfolocalizesuperr __class__fromutc)selfdt)r@rrrAs  z UTC.fromutccCstS)N)ZERO)rBrCrrr utcoffsetsz UTC.utcoffsetcCsdS)Nr/r)rBrCrrrtznamesz UTC.tznamecCstS)N)rD)rBrCrrrdstszUTC.dstcCstdfS)Nr)_UTC)rBrrr __reduce__szUTC.__reduce__FcCs|jdk rtd|j|dS)z Convert naive time to local timeNz*Not naive datetime (tzinfo is already set))r=)r=r$r:)rBrCis_dstrrrr>s z UTC.localizecCs*|j|kr|S|jdkr td||S)z6Correct the timezone information on the given datetimeNzNaive time - no tzinfo set)r=r$ astimezone)rBrCrJrrr normalizes   z UTC.normalizecCsdS)Nzr)rBrrr__repr__sz UTC.__repr__cCsdS)Nr/r)rBrrr__str__sz UTC.__str__)F)F)__name__ __module__ __qualname____doc__r4rD _utcoffset_dst_tznamerArErFrGrIr>rLrMrN __classcell__rr)r@rr/s   r/cCstS)a*Factory function for utc unpickling. Makes sure that unpickling a utc instance always returns the same module global. These examples belong in the UTC class above, but it is obscured; or in the README.txt, but we are not depending on Python 2.4 so integrating the README.txt examples with the unit tests is not trivial. >>> import datetime, pickle >>> dt = datetime.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 >>> utc is UTC is timezone('UTC') True >>> utc is timezone('GMT') False )rrrrrrHsrHTcGst|S)zFactory function for unpickling pytz tzinfo instances. Just a wrapper around tzinfo.unpickler to save a few bytes in each pickle by shortening the path. )r)argsrrr_psrXc@s eZdZdZddZddZdS)_CountryTimezoneDictaMap ISO 3166 country code to a list of timezone names commonly used in that country. iso3166_code is the two letter code used to identify the country. >>> def print_list(list_of_strings): ... 'We use a helper so doctests work under Python 2.3 -> 3.x' ... for s in list_of_strings: ... print(s) >>> print_list(country_timezones['nz']) Pacific/Auckland Pacific/Chatham >>> print_list(country_timezones['ch']) Europe/Zurich >>> print_list(country_timezones['CH']) Europe/Zurich >>> print_list(country_timezones[unicode('ch')]) Europe/Zurich >>> print_list(country_timezones['XXX']) Traceback (most recent call last): ... KeyError: 'XXX' Previously, this information was exposed as a function rather than a dictionary. This is still supported:: >>> print_list(country_timezones('nz')) Pacific/Auckland Pacific/Chatham cCs||S)zBackwards compatibility.r)rB iso3166_coderrr__call__9sz_CountryTimezoneDict.__call__c Csi}td}zxx|D]p}|d}|dr.q|dddd\}}}|tkrRqy|||Wqtk r|g||<YqXqW||_Wd|XdS)Nzzone.tabzUTF-8#) r+decode startswithrr appendKeyErrordatar,)rBrczone_tablinecode coordinatesr4rrr_fill=s     z_CountryTimezoneDict._fillN)rOrPrQrRr[rhrrrrrYsrYc@seZdZdZddZdS)_CountryNameDictzgDictionary proving ISO3166 code -> English name. >>> print(country_names['au']) Australia cCsji}td}zNxB|D]6}|d}|dr2q|dd\}}|||<qW||_Wd|XdS)Nz iso3166.tabzUTF-8r\r;)r+ readlinesr_r`rstriprcr,)rBrcrdrerfr'rrrrhYs   z_CountryNameDict._fillN)rOrPrQrRrhrrrrriSsric@sTeZdZdZddZddZddZdd Zd d Zd d Z dddZ dddZ dS) _FixedOffsetNcCs.t|dkrtd|||_tj|d|_dS)Nizabsolute offset is too large)minutes)absr$_minutesdatetime timedelta_offset)rBrmrrr__init__ps  z_FixedOffset.__init__cCs|jS)N)rr)rBrCrrrrEvsz_FixedOffset.utcoffsetcCs t|jffS)N) FixedOffsetro)rBrrrrIysz_FixedOffset.__reduce__cCstS)N)rD)rBrCrrrrG|sz_FixedOffset.dstcCsdS)Nr)rBrCrrrrFsz_FixedOffset.tznamecCs d|jS)Nzpytz.FixedOffset(%d))ro)rBrrrrMsz_FixedOffset.__repr__FcCs|jdk rtd|j|dS)z Convert naive time to local timeNz*Not naive datetime (tzinfo is already set))r=)r=r$r:)rBrCrJrrrr>s z_FixedOffset.localizecCs*|j|kr|S|jdkr td||S)z6Correct the timezone information on the given datetimeNzNaive time - no tzinfo set)r=r$rK)rBrCrJrrrrLs   z_FixedOffset.normalize)F)F) rOrPrQr4rsrErIrGrFrMr>rLrrrrrlls rlcCs2|dkr tS||}|dkr.||t|}|S)areturn a fixed-offset timezone based off a number of minutes. >>> one = FixedOffset(-330) >>> one pytz.FixedOffset(-330) >>> one.utcoffset(datetime.datetime.now()) datetime.timedelta(-1, 66600) >>> one.dst(datetime.datetime.now()) datetime.timedelta(0) >>> two = FixedOffset(1380) >>> two pytz.FixedOffset(1380) >>> two.utcoffset(datetime.datetime.now()) datetime.timedelta(0, 82800) >>> two.dst(datetime.datetime.now()) datetime.timedelta(0) The datetime.timedelta must be between the range of -1 and 1 day, non-inclusive. >>> FixedOffset(1440) Traceback (most recent call last): ... ValueError: ('absolute offset is too large', 1440) >>> FixedOffset(-1440) Traceback (most recent call last): ... ValueError: ('absolute offset is too large', -1440) An offset of 0 is special-cased to return UTC. >>> FixedOffset(0) is UTC True There should always be only one instance of a FixedOffset per timedelta. This should be true for multiple creation calls. >>> FixedOffset(-330) is one True >>> FixedOffset(1380) is two True It should also be true for pickling. >>> import pickle >>> pickle.loads(pickle.dumps(one)) is one True >>> pickle.loads(pickle.dumps(two)) is two True rN)r/get setdefaultrl)offset_tzinfosinforrrrts 5 rtcCs:ddl}ddl}ddl}|jd|jddl}||S)Nr)doctestr sysr!insertr"pytztestmod)rzr r{r}rrr_testsr__main__zAfrica/Abidjanz Africa/AccrazAfrica/Addis_AbabazAfrica/Algiersz Africa/Asmaraz Africa/Asmeraz Africa/Bamakoz Africa/Banguiz Africa/Banjulz Africa/BissauzAfrica/BlantyrezAfrica/BrazzavillezAfrica/Bujumburaz Africa/CairozAfrica/Casablancaz Africa/CeutazAfrica/Conakryz Africa/DakarzAfrica/Dar_es_SalaamzAfrica/Djiboutiz Africa/DoualazAfrica/El_AaiunzAfrica/FreetownzAfrica/Gaboronez Africa/HararezAfrica/Johannesburgz Africa/JubazAfrica/KampalazAfrica/Khartoumz Africa/KigalizAfrica/Kinshasaz Africa/LagoszAfrica/Librevillez Africa/Lomez Africa/LuandazAfrica/Lubumbashiz Africa/Lusakaz Africa/Malaboz Africa/Maputoz Africa/MaseruzAfrica/MbabanezAfrica/MogadishuzAfrica/MonroviazAfrica/NairobizAfrica/Ndjamenaz Africa/NiameyzAfrica/NouakchottzAfrica/OuagadougouzAfrica/Porto-NovozAfrica/Sao_TomezAfrica/TimbuktuzAfrica/Tripoliz Africa/TuniszAfrica/Windhoekz America/AdakzAmerica/AnchoragezAmerica/AnguillazAmerica/AntiguazAmerica/AraguainazAmerica/Argentina/Buenos_AireszAmerica/Argentina/Catamarcaz America/Argentina/ComodRivadaviazAmerica/Argentina/CordobazAmerica/Argentina/JujuyzAmerica/Argentina/La_RiojazAmerica/Argentina/MendozazAmerica/Argentina/Rio_GallegoszAmerica/Argentina/SaltazAmerica/Argentina/San_JuanzAmerica/Argentina/San_LuiszAmerica/Argentina/TucumanzAmerica/Argentina/Ushuaiaz America/ArubazAmerica/AsuncionzAmerica/Atikokanz America/Atkaz America/BahiazAmerica/Bahia_BanderaszAmerica/Barbadosz America/BelemzAmerica/BelizezAmerica/Blanc-SablonzAmerica/Boa_VistazAmerica/Bogotaz America/BoisezAmerica/Buenos_AireszAmerica/Cambridge_BayzAmerica/Campo_GrandezAmerica/CancunzAmerica/CaracaszAmerica/CatamarcazAmerica/CayennezAmerica/CaymanzAmerica/ChicagozAmerica/ChihuahuazAmerica/Coral_HarbourzAmerica/CordobazAmerica/Costa_RicazAmerica/CrestonzAmerica/CuiabazAmerica/CuracaozAmerica/DanmarkshavnzAmerica/DawsonzAmerica/Dawson_CreekzAmerica/DenverzAmerica/DetroitzAmerica/DominicazAmerica/EdmontonzAmerica/EirunepezAmerica/El_SalvadorzAmerica/EnsenadazAmerica/Fort_NelsonzAmerica/Fort_WaynezAmerica/FortalezazAmerica/Glace_BayzAmerica/GodthabzAmerica/Goose_BayzAmerica/Grand_TurkzAmerica/GrenadazAmerica/GuadeloupezAmerica/GuatemalazAmerica/GuayaquilzAmerica/GuyanazAmerica/HalifaxzAmerica/HavanazAmerica/HermosillozAmerica/Indiana/IndianapoliszAmerica/Indiana/KnoxzAmerica/Indiana/MarengozAmerica/Indiana/PetersburgzAmerica/Indiana/Tell_CityzAmerica/Indiana/VevayzAmerica/Indiana/VincenneszAmerica/Indiana/WinamaczAmerica/IndianapoliszAmerica/InuvikzAmerica/IqaluitzAmerica/Jamaicaz America/JujuyzAmerica/JuneauzAmerica/Kentucky/LouisvillezAmerica/Kentucky/MonticellozAmerica/Knox_INzAmerica/KralendijkzAmerica/La_Pazz America/LimazAmerica/Los_AngeleszAmerica/LouisvillezAmerica/Lower_PrinceszAmerica/MaceiozAmerica/ManaguazAmerica/ManauszAmerica/MarigotzAmerica/MartiniquezAmerica/MatamoroszAmerica/MazatlanzAmerica/MendozazAmerica/MenomineezAmerica/MeridazAmerica/MetlakatlazAmerica/Mexico_CityzAmerica/MiquelonzAmerica/MonctonzAmerica/MonterreyzAmerica/MontevideozAmerica/MontrealzAmerica/MontserratzAmerica/NassauzAmerica/New_YorkzAmerica/Nipigonz America/NomezAmerica/NoronhazAmerica/North_Dakota/BeulahzAmerica/North_Dakota/CenterzAmerica/North_Dakota/New_SalemzAmerica/OjinagazAmerica/PanamazAmerica/PangnirtungzAmerica/ParamaribozAmerica/PhoenixzAmerica/Port-au-PrincezAmerica/Port_of_SpainzAmerica/Porto_AcrezAmerica/Porto_VelhozAmerica/Puerto_RicozAmerica/Punta_ArenaszAmerica/Rainy_RiverzAmerica/Rankin_InletzAmerica/RecifezAmerica/ReginazAmerica/ResolutezAmerica/Rio_BrancozAmerica/RosariozAmerica/Santa_IsabelzAmerica/SantaremzAmerica/SantiagozAmerica/Santo_DomingozAmerica/Sao_PaulozAmerica/ScoresbysundzAmerica/Shiprockz America/SitkazAmerica/St_BarthelemyzAmerica/St_JohnszAmerica/St_KittszAmerica/St_LuciazAmerica/St_ThomaszAmerica/St_VincentzAmerica/Swift_CurrentzAmerica/Tegucigalpaz America/ThulezAmerica/Thunder_BayzAmerica/TijuanazAmerica/TorontozAmerica/TortolazAmerica/VancouverzAmerica/VirginzAmerica/WhitehorsezAmerica/WinnipegzAmerica/YakutatzAmerica/YellowknifezAntarctica/CaseyzAntarctica/DaviszAntarctica/DumontDUrvillezAntarctica/MacquariezAntarctica/MawsonzAntarctica/McMurdozAntarctica/PalmerzAntarctica/RotherazAntarctica/South_PolezAntarctica/SyowazAntarctica/TrollzAntarctica/VostokzArctic/Longyearbyenz Asia/Adenz Asia/Almatyz Asia/Ammanz Asia/Anadyrz Asia/Aqtauz Asia/Aqtobez Asia/AshgabatzAsia/Ashkhabadz Asia/Atyrauz Asia/Baghdadz Asia/Bahrainz Asia/Bakuz Asia/Bangkokz Asia/Barnaulz Asia/Beirutz Asia/Bishkekz Asia/Bruneiz Asia/Calcuttaz Asia/ChitazAsia/ChoibalsanzAsia/ChongqingzAsia/Chungkingz Asia/Colomboz Asia/Daccaz Asia/Damascusz Asia/Dhakaz Asia/Diliz Asia/Dubaiz Asia/DushanbezAsia/Famagustaz Asia/Gazaz Asia/Harbinz Asia/HebronzAsia/Ho_Chi_MinhzAsia/Hong_Kongz Asia/Hovdz Asia/Irkutskz Asia/Istanbulz Asia/Jakartaz Asia/JayapurazAsia/Jerusalemz Asia/KabulzAsia/Kamchatkaz Asia/Karachiz Asia/KashgarzAsia/Kathmanduz Asia/Katmanduz Asia/Khandygaz Asia/KolkatazAsia/KrasnoyarskzAsia/Kuala_Lumpurz Asia/Kuchingz Asia/Kuwaitz Asia/Macaoz Asia/Macauz Asia/Magadanz Asia/Makassarz Asia/Manilaz Asia/Muscatz Asia/NicosiazAsia/NovokuznetskzAsia/Novosibirskz Asia/Omskz Asia/OralzAsia/Phnom_PenhzAsia/PontianakzAsia/Pyongyangz Asia/QatarzAsia/Qyzylordaz Asia/Rangoonz Asia/Riyadhz Asia/Saigonz Asia/SakhalinzAsia/Samarkandz Asia/Seoulz Asia/ShanghaizAsia/SingaporezAsia/Srednekolymskz Asia/Taipeiz Asia/Tashkentz Asia/Tbilisiz Asia/Tehranz Asia/Tel_Avivz Asia/Thimbuz Asia/Thimphuz Asia/Tokyoz Asia/TomskzAsia/Ujung_PandangzAsia/UlaanbaatarzAsia/Ulan_Batorz Asia/Urumqiz Asia/Ust-NerazAsia/VientianezAsia/Vladivostokz Asia/Yakutskz Asia/YangonzAsia/Yekaterinburgz Asia/YerevanzAtlantic/AzoreszAtlantic/BermudazAtlantic/CanaryzAtlantic/Cape_VerdezAtlantic/FaeroezAtlantic/FaroezAtlantic/Jan_MayenzAtlantic/MadeirazAtlantic/ReykjavikzAtlantic/South_GeorgiazAtlantic/St_HelenazAtlantic/Stanleyz Australia/ACTzAustralia/AdelaidezAustralia/BrisbanezAustralia/Broken_HillzAustralia/CanberrazAustralia/CurriezAustralia/DarwinzAustralia/EuclazAustralia/Hobartz Australia/LHIzAustralia/LindemanzAustralia/Lord_HowezAustralia/Melbournez Australia/NSWzAustralia/NorthzAustralia/PerthzAustralia/QueenslandzAustralia/SouthzAustralia/SydneyzAustralia/TasmaniazAustralia/VictoriazAustralia/WestzAustralia/Yancowinnaz Brazil/AcrezBrazil/DeNoronhaz Brazil/Eastz Brazil/WestCETCST6CDTzCanada/AtlanticzCanada/CentralzCanada/East-SaskatchewanzCanada/EasternzCanada/MountainzCanada/NewfoundlandzCanada/PacificzCanada/Saskatchewanz Canada/YukonzChile/ContinentalzChile/EasterIslandCubaEETESTEST5EDTEgyptEirezEtc/GMTz Etc/GMT+0z Etc/GMT+1z Etc/GMT+10z Etc/GMT+11z Etc/GMT+12z Etc/GMT+2z Etc/GMT+3z Etc/GMT+4z Etc/GMT+5z Etc/GMT+6z Etc/GMT+7z Etc/GMT+8z Etc/GMT+9z Etc/GMT-0z Etc/GMT-1z Etc/GMT-10z Etc/GMT-11z Etc/GMT-12z Etc/GMT-13z Etc/GMT-14z Etc/GMT-2z Etc/GMT-3z Etc/GMT-4z Etc/GMT-5z Etc/GMT-6z Etc/GMT-7z Etc/GMT-8z Etc/GMT-9zEtc/GMT0z Etc/GreenwichzEtc/UCTzEtc/UTCz Etc/UniversalzEtc/ZuluzEurope/AmsterdamzEurope/AndorrazEurope/Astrakhanz Europe/AthenszEurope/BelfastzEurope/Belgradez Europe/BerlinzEurope/BratislavazEurope/BrusselszEurope/BucharestzEurope/BudapestzEurope/BusingenzEurope/ChisinauzEurope/Copenhagenz Europe/DublinzEurope/GibraltarzEurope/GuernseyzEurope/HelsinkizEurope/Isle_of_ManzEurope/Istanbulz Europe/JerseyzEurope/Kaliningradz Europe/Kievz Europe/Kirovz Europe/LisbonzEurope/Ljubljanaz Europe/LondonzEurope/Luxembourgz Europe/Madridz Europe/MaltazEurope/Mariehamnz Europe/Minskz Europe/Monacoz Europe/MoscowzEurope/Nicosiaz Europe/Osloz Europe/PariszEurope/Podgoricaz Europe/Praguez Europe/Rigaz Europe/Romez Europe/SamarazEurope/San_MarinozEurope/SarajevozEurope/SaratovzEurope/Simferopolz Europe/Skopjez Europe/SofiazEurope/StockholmzEurope/Tallinnz Europe/TiranezEurope/TiraspolzEurope/UlyanovskzEurope/Uzhgorodz Europe/VaduzzEurope/Vaticanz Europe/ViennazEurope/VilniuszEurope/Volgogradz Europe/Warsawz Europe/ZagrebzEurope/Zaporozhyez Europe/ZurichGBzGB-EireGMTzGMT+0zGMT-0GMT0 GreenwichHSTHongkongIcelandzIndian/Antananarivoz Indian/ChagoszIndian/Christmasz Indian/Cocosz Indian/ComorozIndian/Kerguelenz Indian/MahezIndian/MaldiveszIndian/MauritiuszIndian/MayottezIndian/ReunionIranIsraelJamaicaJapan KwajaleinLibyaMETMSTMST7MDTzMexico/BajaNortezMexico/BajaSurzMexico/GeneralNZzNZ-CHATNavajoPRCPST8PDTz Pacific/ApiazPacific/AucklandzPacific/BougainvillezPacific/Chathamz Pacific/ChuukzPacific/Easterz Pacific/EfatezPacific/EnderburyzPacific/Fakaofoz Pacific/FijizPacific/FunafutizPacific/GalapagoszPacific/GambierzPacific/Guadalcanalz Pacific/GuamzPacific/HonoluluzPacific/JohnstonzPacific/KiritimatizPacific/KosraezPacific/KwajaleinzPacific/MajurozPacific/MarquesaszPacific/Midwayz Pacific/Nauruz Pacific/NiuezPacific/NorfolkzPacific/NoumeazPacific/Pago_Pagoz Pacific/PalauzPacific/PitcairnzPacific/PohnpeizPacific/PonapezPacific/Port_MoresbyzPacific/RarotongazPacific/Saipanz Pacific/SamoazPacific/TahitizPacific/TarawazPacific/Tongatapuz Pacific/Trukz Pacific/WakezPacific/Wallisz Pacific/YapPolandPortugalROCROK SingaporeTurkeyUCTz US/Alaskaz US/Aleutianz US/Arizonaz US/CentralzUS/East-Indianaz US/Easternz US/HawaiizUS/Indiana-Starkez US/Michiganz US/Mountainz US/PacificzUS/Pacific-NewzUS/Samoa UniversalzW-SUWETZuluccs|]}t|r|VqdS)N)r.).0tzrrr 5srccs|]}|tkr|VqdS)N)r )rrrrrrs)7rR OLSON_VERSIONVERSION __version__ OLSEN_VERSION__all__r{rpos.pathr gettextpytz.exceptionsrrrr pytz.lazyrrr pytz.tzinfor pytz.tzfilerrunicode NameErrorstrrr+r.r3rr2rqrDHOURr=r/rrH__safe_for_unpickling__rXrYrrirrlrtrrOr r r r rrrr sx      <  2 7( B