<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
a
    XC?h                     @   s   d dl Z d dlZdddZdd Zdd Zdd	 Ze je jd
d
dd Z	e	fddZ
[	dd ZG dd deZdae  dS )    Nc                 C   s   | }|d urZt |ttfr6tddt| d| tttjj	|sTt
t||}n.tjdd }|d urzt|}nttd}t|ad S )Nz!tzpaths must be a list or tuple, znot z: ZPYTHONTZPATHTZPATH)
isinstancestrbytes	TypeErrortypeallmapospathisabs
ValueError_get_invalid_paths_messageenvironget_parse_python_tzpath	sysconfigZget_config_vartupler   )totzpathsZbase_tzpathenv_var r   5/opt/alt/python39/lib64/python3.9/zoneinfo/_tzpath.pyreset_tzpath   s$    
r   c                 C   sZ   | sdS |  tj}tttjj|}t|t|krVdd l}t	|}|
d| t |S )Nr   r   z>Invalid paths specified in PYTHONTZPATH environment variable. )splitr
   pathsepr   filterr   r   lenwarningsr   warnInvalidTZPathWarning)r   Z
raw_tzpathZ
new_tzpathr   msgr   r   r   r      s    r   c                 C   s(   dd | D }d}|| | }d| S )Nc                 s   s   | ]}t j|s|V  qd S )N)r
   r   r   ).0r   r   r   r   	<genexpr>6       z-_get_invalid_paths_message.<locals>.<genexpr>z
    z@Paths should be absolute but found the following relative paths:)join)r   Zinvalid_pathsprefixZindented_strr   r   r   r   5   s    r   c                 C   s8   t |  tD ]&}tj|| }tj|r|  S qdS )z,Retrieve the path to a TZif file from a key.N)_validate_tzfile_pathr   r
   r   r%   isfile)keyZsearch_pathfilepathr   r   r   find_tzfileA   s    
r+   _c                 C   sv   t j| rtd|  t j| }t|t| krDtd|  t jt j||}||srtd|  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_basenew_pathZresolvedr   r   r   r'   O   s    
r'   c               	   C   sX  ddl m}  t }zP| dd0}|D ]}| }|r&|| q&W d   n1 sV0    Y  W n ttfyx   Y n0 dd }tD ]}t	j
|sqt	|D ]\}}}||krd|v r|d d	|v r|d	 |D ]^}	t	j
||	}
t	j
j|
|d
}t	jdkr|t	jd}|r||v r(q||
r|| qqqd|v rT|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   )	resourcesZtzdataZzonesNc                 S   sX   z>t | d }|ddkW  d    W S 1 s20    Y  W n tyR   Y dS 0 d S )Nrb   s   TZifF)openread	Exception)fpathfr   r   r   	valid_key   s
    2z&available_timezones.<locals>.valid_keyrightposix)start/Z
posixrules)	importlibr1   setZ	open_textstripaddImportErrorFileNotFoundErrorr   r
   r   existswalkremover%   relpathsepreplace)r1   Zvalid_zonesr8   Zzoner9   Ztz_rootrootZdirnamesfilesfiler7   r)   r   r   r   available_timezonesi   s@    	.



rM   c                   @   s   e Zd ZdZdS )r    z?Warning raised if an invalid path is specified in PYTHONTZPATH.N)__name__
__module____qualname____doc__r   r   r   r   r       s   r    r   )N)r
   r   r   r   r   r+   r   r.   r%   Z
_TEST_PATHr'   rM   RuntimeWarningr    r   r   r   r   r   <module>   s   
A