Current File : //snap/core22/2115/usr/lib/python3.10/zoneinfo/__pycache__/_tzpath.cpython-310.pyc |
o
}�5h� � @ s� d dl Z d dlZddd�Zdd� Zdd� Zdd � Ze j�e j�d
d
��dd� Z e fdd
�Z
[ dd� ZG dd� de�Z
dae� dS )� Nc C s� | }|d ur-t |ttf�rtddt|�� d|�� ��tttjj |��s*t
t|���|}ntj�
dd �}|d ur=t|�}ntt�d��}t|�ad S )Nz!tzpaths must be a list or tuple, znot z: �PYTHONTZPATH�TZPATH)�
isinstance�str�bytes� TypeError�type�all�map�os�path�isabs�
ValueError�_get_invalid_paths_message�environ�get�_parse_python_tzpath� sysconfig�get_config_var�tupler )�to�tzpaths�base_tzpath�env_var� r �'/usr/lib/python3.10/zoneinfo/_tzpath.py�reset_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
�len�warningsr �warn�InvalidTZPathWarning)r �
raw_tzpath�
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 � <genexpr>6 s � z-_get_invalid_paths_message.<locals>.<genexpr>z
z@Paths should be absolute but found the following relative paths:)�join)r �
invalid_paths�prefix�indented_strr r r r 5 s ��r c C s8 t | � tD ]}tj�|| �}tj�|�r| S qdS )z,Retrieve the path to a TZif file from a key.N)�_validate_tzfile_pathr r r r* �isfile)�key�search_path�filepathr r r �find_tzfileA s �r3 �_���c C sv t j�| �r
td| � ���t j�| �}t|�t| �kr"td| � ���t j�t 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 �_base�new_path�resolvedr r r r. O s ��
��r. c C sR ddl m} t� }z(| �dd��}|D ]
}|�� }|r |�|� qW d � n1 s+w Y W n ttfy< Y nw dd� }tD ]Z}t j
�|�sLqCt �|�D ]K\}}}||krld|v rc|�
d� d |v rl|�
d � |D ]-} t j
�|| �}
t j
j|
|d
�}t jdkr�|�t jd�}|r�||v r�qn||
�r�|�|� qnqQqCd|v r�|�
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 )� resources�tzdata�zonesNc S sV z t | d��}|�d�dkW d � W S 1 sw Y W d S ty* Y dS w )N�rb� s TZifF)�open�read� Exception)�fpath�fr r r � valid_key� s (��z&available_timezones.<locals>.valid_key�right�posix)�start�/�
posixrules)� importlibr; �set� open_text�strip�add�ImportError�FileNotFoundErrorr r r �exists�walk�remover* �relpath�sep�replace)r; �valid_zonesrD �zonerE �tz_root�root�dirnames�files�filerC r0 r r r �available_timezonesi sP
�����
���
r_ c @ s e Zd ZdZdS )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 r'