o
0i @ s d dl Z d dlZdddZdd Zdd Zdd Ze je jd
d
dd Z e fdd
Z
[ dd ZG dd deZ
dae dS ) Nc C s | }|d ur-t |ttfrtddt| d| tttjj |s*t
t||}ntj
dd }|d ur=t|}nttd}t|ad S )Nz!tzpaths must be a list or tuple, znot z: ZPYTHONTZPATHTZPATH)
isinstancestrbytes TypeErrortypeallmapospathisabs
ValueError_get_invalid_paths_messageenvironget_parse_python_tzpath sysconfigZget_config_vartupler )totzpathsZbase_tzpathenv_var r 7/opt/alt/python310/lib64/python3.10/zoneinfo/_tzpath.pyreset_tzpath s$
r c C sZ | sdS | tj}tttjj|}t|t|kr+dd l}t |}|
d| t |S )Nr r z>Invalid paths specified in PYTHONTZPATH environment variable. )splitr
pathsepr filterr r lenwarningsr warnInvalidTZPathWarning)r Z
raw_tzpathZ
new_tzpathr msgr r r r s r c C s( dd | D }d}|| | }d| S )Nc s s | ]}t j|s|V qd S N)r
r r ).0r r r r 6 s z-_get_invalid_paths_message..z
z@Paths should be absolute but found the following relative paths:)join)r Z
invalid_pathsprefixZindented_strr r r r 5 s r c C s: t | tD ]}tj|| }tj|r| S qd S r" )_validate_tzfile_pathr r
r r% isfile)keyZsearch_pathfilepathr r r find_tzfileA s r+ _c C sv t j| r
td| t j| }t|t| kr"td| t jt j||}||s9td| d S )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
r r r
normpathr r%
startswith)r Z_basenew_pathZresolvedr r r r' O s
r' c C sT ddl m} t }z(| dd}|D ]
}| }|r!|| qW d n1 s,w Y W n ttfy= Y nw dd }tD ]Z}t j
|sMqDt |D ]K\}}}||krmd|v rd|
d d|v rm|
d |D ]-} t j
|| }
t j
j|
|d }t jd
kr|t jd
}|r||v rqo||
r|| qoqRqDd|v r|
d |S )Nr ) resourcesZtzdataZzonesc S sV z t | d}|ddkW d W S 1 sw Y W d S ty* Y dS w )Nrb s TZifF)openread Exception)fpathfr r r valid_key s (z&available_timezones..valid_keyrightposix)start/Z
posixrules) importlibr1 setZ open_textstripaddImportErrorFileNotFoundErrorr r
r existswalkremover% relpathsepreplace)r1 Zvalid_zonesr8 Zzoner9 Ztz_rootrootZdirnamesfilesfiler7 r) r r r available_timezonesi sR
rM c @ s e Zd ZdS )r N)__name__
__module____qualname__r r r r r s r r r" )r
r r r r r+ r r. r% Z
_TEST_PATHr' rM RuntimeWarningr r r r r r s
A