fddlZddlZd dZdZdZdZejejddddZ e fdZ [ d Z Gd d e Z d aedS)Nc|}|t|ttfr%tddt |d|zt t tjj |stt||}nStj dd}|t|}n!ttjd}t#|adS)Nz!tzpaths must be a list or tuple, znot z: PYTHONTZPATHTZPATH) isinstancestrbytes TypeErrortypeallmapospathisabs ValueError_get_invalid_paths_messageenvironget_parse_python_tzpath sysconfigget_config_vartupler)totzpaths base_tzpathenv_vars 7/opt/alt/python311/lib64/python3.11/zoneinfo/_tzpath.py reset_tzpathrsG gU| , , 45g55'556  3rw}g..// B7@@AA A *..66  .w77KK.(22K;  FFFcF|sdS|tj}tt tjj|}t|t|kr1ddl}t|}| d|zt|S)Nrz>Invalid paths specified in PYTHONTZPATH environment variable. ) splitr pathseprfilterrrlenwarningsrwarnInvalidTZPathWarning)r raw_tzpath new_tzpathr%msgs rrrs rrz**JvbgmZ8899J :#j//))(44 L     rcXd|D}d}|||z}d|zS)Nc3XK|]%}tj|!|V&dSN)r rr).0rs r z-_get_invalid_paths_message..6s5IIdRW]]45H5HITIIIIIIrz z@Paths should be absolute but found the following relative paths:)join)r invalid_pathsprefix indented_strs rrr5sCIIgIIIM FFKK 666L K  rct|tD]E}tj||}tj|r|cSFdS)z,Retrieve the path to a TZif file from a key.N)_validate_tzfile_pathrr rr0isfile)key search_pathfilepaths r find_tzfiler:As_# 7<< S11 7>>( # # OOO  4r_ctj|rtd|tj|}t |t |krtd|tjtj||}||std|dS)Nz.ZoneInfo keys may not be absolute paths, got: z6ZoneInfo keys must be normalized relative paths, got: z;ZoneInfo keys must refer to subdirectories of TZPATH, got: )r rrrnormpathr$r0 startswith)r_basenew_pathresolveds rr5r5Os w}}T  CT C C   w%%H 8}}D !! KT K K   w UH = =>>H   u % %  P$ P P     rcddlm}t} |ddd5}|D]-}|}|r||. dddn #1swxYwYn#ttf$rYnwxYwd}tD]}tj |s#tj|D]\}}}||kr2d|vr|dd |vr|d |D]} tj || } tj | | } tjd kr | tjd } | r| |vrz|| r|| ܐd |vr|d |S) a"Returns a set containing all available time zones. .. caution:: This may attempt to open a large number of files, since the best way to determine if a given file on the time zone search path is to open it and check for the "magic string" at the beginning. r) resourcestzdatazonesrNc t|d5}|ddkcdddS#1swxYwYdS#t$rYdSwxYw)NrbsTZifF)openread Exception)fpathfs r valid_keyz&available_timezones..valid_keys eT"" ,avvayyG+ , , , , , , , , , , , , , , , , , ,   55 s-A8 A<A<A AArightposix)start/ posixrules) importlibrDsetfilesjoinpathrKstripadd ImportErrorFileNotFoundErrorrr rexistswalkremover0relpathsepreplace) rD valid_zonesrOzonerPtz_rootrootdirnamesrXfilerNr7s ravailable_timezonesrjiso$#####%%K __X & & / / 8 8 = =c B B *a * *zz||*OOD))) * * * * * * * * * * * * * * * * * +     ))w~~g&&  %'WW%5%5 ) ) !D(Ewh&&OOG,,,h&&OOG,,, ) ) T400gooe7o;;6S==++bfc22Cc[009U##)OOC((( ) ),{"" <((( s5;B1B BBBBBB/.B/ceZdZdZdS)r'z?Warning raised if an invalid path is specified in PYTHONTZPATH.N)__name__ __module__ __qualname____doc__r rrr'r'sIIIIrr'r r-)r rrrrr:rr>r0 _TEST_PATHr5rjRuntimeWarningr'rr rrrrs     4,   W  bgll344 5 5crc : '1    .>>>BJJJJJ>JJJ  r