o
    f                     @   s:   d dl Z dd Zdd ZG dd dZG dd	 d	eZdS )
    Nc              
   C   sf   dd l }| d}ddg|d d  }|d }z|j||W S  tttfy2   td|  w )Nr   /.ztzdata.zoneinfozNo time zone found with key )	importlib.resourcessplitjoin	resourcesopen_binaryImportErrorFileNotFoundErrorUnicodeEncodeErrorZoneInfoNotFoundError)key	importlib
componentspackage_nameresource_name r   '/usr/lib/python3.10/zoneinfo/_common.pyload_tzdata   s   
r   c                    s  t }|jdkrd}d}n'd}d}|jd |jd  |j |jd  |j |j }	|d t }|j}|j}|j}|r_t
d| | || }t
d| d	|}	nd
}d
}	|rvtfddt|D  \}
}}nd
}
d
}d
}i |  fddtfdd|D }|jdkr|j|j |jd  }	|d d}|dksJ |d}d }dkr||7 }d }dks|}nd }|	||
|||fS )N      l   q      >Br   c                 3   s"    | ]}t d  dV  qdS )z>lbbr   N)structunpackread).0i)fobjr   r   	<genexpr>H   s     zload_data.<locals>.<genexpr>c                    s0   | vr  d| } | |  | < |  S )N    )finddecode)idxspan_end)
abbr_chars	abbr_valsr   r   get_abbrV   s   zload_data.<locals>.get_abbrc                 3   s    | ]} |V  qd S )Nr   )r"   r)   )r-   r   r   r%   g   s             
    )_TZifHeader	from_fileversiontimecnttypecntcharcntleapcntisstdcntisutcntseekr   r    r!   ziprangetuple)r$   header	time_size	time_type
skip_bytesr6   r5   r7   trans_list_utc	trans_idxutcoffisdstabbrindabbrctz_bytestz_strr   )r+   r,   r$   r-   r   	load_data   sj   

	



rL   c                   @   s(   e Zd Zg dZdd Zedd ZdS )r2   )r4   r:   r9   r8   r5   r6   r7   c                 G   s*   t | j|ddD ]
\}}t| || qd S )NT)strict)r<   	__slots__setattr)selfargsattrvalr   r   r   __init__   s   z_TZifHeader.__init__c                 C   sd   | ddkrtd| d}|dkrd}nt|}| d |f}|td| d }| | S )	Nr   s   TZifz"Invalid TZif file: magic not foundr   r&      z>6l   )r!   
ValueErrorintr   r    )clsstream_versionr4   rQ   r   r   r   r3      s   

z_TZifHeader.from_fileN)__name__
__module____qualname__rN   rT   classmethodr3   r   r   r   r   r2      s
    
r2   c                   @   s   e Zd ZdZdS )r   z2Exception raised when a ZoneInfo key is not found.N)r\   r]   r^   __doc__r   r   r   r   r      s    r   )r   r   rL   r2   KeyErrorr   r   r   r   r   <module>   s
    d$