add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
f

��_�^c@s�ddlZddlZddlZddlZddlZddlZddlmZmZmZddl	m
Z
mZeddd�Zeddd��
�Zejdd�dd	��ZGd
d�de�ZGdd
�d
�Zeddd�ZGdd�d�Zdd�ZGdd�d�ZGdd�d�Zdd�Zdd�Zdd�ZdS)�N)�datetime�	timedelta�tzinfo�)�_common�_tzpathi�i)ZmaxsizecCs
t|d�S)N�Zseconds)rr�r�+/usr/lib64/python3.10/zoneinfo/_zoneinfo.py�_load_timedelta�r
cseZdZdZe��Ze��Z	dZdd�Z
dd�Zedd��Z
e�fd	d
��Zed1�fdd
�	�Zedd�dd��Zedd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zed'd(��Zd)d*�Zd+d,�Ze d-d.��Z!e d/d0��Z"�Z#S)2�ZoneInfoiZzoneinfocCst��|_t��|_dS�N)�collections�OrderedDict�
_strong_cache�weakref�WeakValueDictionary�_weak_cache)�clsrrr	�__init_subclass__$s
zZoneInfo.__init_subclass__cCsf|j�|d�}|dur0|j�||�|��}d|_|j�||�|j|<t|j�|jkrb|jj	dd�|S)NTF)Zlast)
rZgetZ
setdefault�
_new_instance�_from_cacher�pop�len�_strong_cache_sizeZpopitem)r�keyZinstancerrr	�__new__(szZoneInfo.__new__cCs|�|�}d|_|S)NF)rr)rr�objrrr	�no_cache6s
zZoneInfo.no_cachecsrt��|�}||_|�|�|_|jdur6t|jd�}n
t�|�}|�}|�|�Wd�n1sd0Y|S)NZrb)	�superr�_key�_find_tzfile�
_file_pathZopenrZload_tzdata�
_load_file)rrrZfile_objZf��	__class__rr	r=s

(zZoneInfo._new_instanceNcs8t��|�}||_d|_|�|�t|�|_|j|_|Sr
)	rrr r"r#�repr�
_file_repr�_file_reduce�
__reduce__)r�fobjrrr$rr	�	from_fileMs

zZoneInfo.from_file)�	only_keyscCsH|dur0|D] }|j�|d�|j�|d�qn|j��|j��dSr
)rrrZclear)rr,rrrr	�clear_cacheZs
zZoneInfo.clear_cachecCs|jSr
)r ��selfrrr	rerzZoneInfo.keycC�|�|�jSr
)�_find_trans�utcoff�r/�dtrrr	�	utcoffseti�zZoneInfo.utcoffsetcCr0r
)r1�dstoffr3rrr	�dstlr6zZoneInfo.dstcCr0r
)r1�tznamer3rrr	r9or6zZoneInfo.tznamec	CsZt|t�std��|j|ur$td��|�|�}t|j�}|dkrZ||jdkrZ|j}d}n�|dksp||jdkr�t|j	t
�s�|j	�||j�\}}n�|dkr�|j	}d}n�t
�|j|�}|dkr�||jdkr�|j|d|�\}}n2||jdk�r|jd}|j	}n|j}|jd}|j|j}|��||j|dk}||j7}|�rV|jdd�S|S)Nz&fromutc() requires a datetime argumentzdt.tzinfo is not selfrr������)�fold)�
isinstancerZ	TypeErrorr�
ValueError�_get_local_timestampr�
_trans_utc�_tti_before�	_tz_after�_ttinfo�get_trans_info_fromutc�year�bisect�bisect_right�_ttinfosr2�
total_secondsZreplace)	r/r4Z	timestamp�	num_transZttir<�idxZtti_prevZshiftrrr	�fromutcrsF



��
��



zZoneInfo.fromutccCs�|dur|jr|jStS|�|�}|j|j}t|�}|rL||dkrL|jS|r\||dkr�t|jt	�r||j�
||j|j�S|jSt�
||�d}|j|S)Nrr:r)�
_fixed_offsetrB�
_NO_TTINFOr?�_trans_localr<rrAr=�_TZStr�get_trans_inforErFrGrH)r/r4�tsZltrJrKrrr	r1�s
zZoneInfo._find_transcCs*|��td|jd|jd|jS)N�Q��<)�	toordinal�EPOCHORDINAL�hour�minute�secondr3rrr	r?�s����zZoneInfo._get_local_timestampcCs|jdur|j�St|�Sr
)r r&r.rrr	�__str__�s
zZoneInfo.__str__cCs6|jdur |jj�d|j�d�S|jj�d|j�d�S)Nz(key=�)z.from_file()r r%�__name__r'r.rrr	�__repr__�s
zZoneInfo.__repr__cCs|jj|j|jffSr
)r%�	_unpickler rr.rrr	r)�r6zZoneInfo.__reduce__cCsddl}|�d��dS)Nrz9Cannot pickle a ZoneInfo file created from a file stream.)�pickleZ
PicklingError)r/r`rrr	r(�s�zZoneInfo._file_reducecCs|r||�S|�|�Sr
)r)rrZ
from_cacherrr	r_�szZoneInfo._unpicklecCs
t�|�Sr
)rZfind_tzfile)r/rrrr	r!�r6zZoneInfo._find_tzfilecs@t�|�\}}}}}}|�|||�}|�|||�}	dd�t|||�D��||_|	|_�fdd�|D�|_tt	|��D]}
||
st�|
|_
q�qt|jr�|jd|_
nd|_
|dur�|dkr�t|���|_
n0|js܈s�td��|jr�|jd|_
n
�d|_
t	��dk�st|j
t��sd	|_n��s,d
|_n�d|j
k|_dS)NcSs&g|]\}}}tt|�t|�|��qSr)rCr
)�.0r5Z	dstoffsetr9rrr	�
<listcomp>�s��z'ZoneInfo._load_file.<locals>.<listcomp>csg|]}�|�qSrr)rarK�Z_ttinfo_listrr	rb��rrdzNo time zone information found.r:rFT)rZ	load_data�_utcoff_to_dstoff�_ts_to_localZzipr@rOrH�rangerrA�
_parse_tz_strZdecoderBr>r=rCrM)r/r*�	trans_idxZ	trans_utcr2�isdstZabbr�tz_strr7Ztrans_local�irrcr	r#�s<�
�


zZoneInfo._load_filec
Cs�t|�}dg|}t|�}d}tdt|��D]�}||kr<q�||}||}	|	sRq,||dkr`q,d}
||}||d}||s�|||}
|
s�||dkr�||d}||r�q,|||}
|
r,|d7}|
||<q,t|�D]}||s�||r�d||<q�|S)NrrrT)rZsumrg)
ri�
utcoffsetsZisdstsZtypecntZdstoffsZdst_cntZ	dst_foundrlrKr8r7r2Zcomp_idxrrr	re*s<



zZoneInfo._utcoff_to_dstoffcCs�|sgggSt|�t|�g}t|�dkrP|d}||d}||kr\||}}n|d}}|dd|7<|dd|7<tdt|��D]Z}|||d}|||}||kr�||}}|d||7<|d||7<q�|S)Nrr)�listrrg)riZtrans_list_utcrmZtrans_list_wallZoffset_0Zoffset_1rlrrr	rfis&
zZoneInfo._ts_to_localr
)$r]�
__module__�__qualname__rrrrrrrrr�classmethodrrr+r-Zpropertyrr5r8r9rLr1r?r[r^r)r(r_r!r#ZstaticmethodrerfZ
__classcell__rrr$r	rsD


,
I
>rc@s,eZdZgd�Zdd�Zdd�Zdd�ZdS)	rC�r2r7r9cCs||_||_||_dSr
rr)r/r2r7r9rrr	�__init__�sz_ttinfo.__init__cCs$|j|jko"|j|jko"|j|jkSr
rr)r/Zotherrrr	�__eq__�s

�
�z_ttinfo.__eq__cCs(|jj�d|j�d|j�d|j�d�S)Nz(z, r\)r%r]r2r7r9r.rrr	r^�s��z_ttinfo.__repr__N)r]rorp�	__slots__rsrtr^rrrr	rC�srCc@s2eZdZdZddd�Zdd�Zdd�Zd	d
�ZdS)rP)�stdr8�start�endrQrD�dst_diffNcCsh|||_t|�}t|td�|d�|_||_||_t|�}t|j�}t|||d�|_|j|_|j	|_
dS)Nrrr)ryr
rCrvrwrxr8�_get_trans_inforQ�_get_trans_info_fromutcrD)r/�std_abbr�
std_offset�dst_abbr�
dst_offsetrwrxZdeltarrr	rs�s

�
z_TZStr.__init__cCs |j�|�}|j�|�}||fSr
)rw�
year_to_epochrx)r/rErwrxrrr	�transitions�sz_TZStr.transitionscCs~|�|�\}}||jdkkr(||j8}n
||j7}||krT||koL|kn}n||kof|kn}|rx|jS|jS�Nr)r�ryr8rv)r/rRrEr<rwrxrjrrr	rz�s

z_TZStr._get_trans_infoc	Cs�|�|�\}}||jj��8}||jj��8}||krP||koH|kn}n||kob|kn}|jdkr�|}||j}n|}||j}||ko�|kn}|r�|jn|j|fSr�)r�rvr2rIr8ry)	r/rRrErwrxrjZambig_startZ	ambig_endr<rrr	r{�s

z_TZStr._get_trans_info_fromutc)NN)r]rorprursr�rzr{rrrr	rP�s


rPcCs,|d}|d|d|d|dtS)Nr�miidi�)rW)rEZyrrr	�_post_epoch_days_before_year�sr�c@s&eZdZgd�Zd	dd�Zdd�ZdS)
�
_DayOffset)�d�julianrXrYrZr;rcCsXd||krdks6nd|}td|�d|����||_||_||_||_||_dS)Nrr�zd must be in [z
, 365], not: )r>r�r�rXrYrZ)r/r�r�rXrYrZZmin_dayrrr	rssz_DayOffset.__init__cCs\t|�}|j}|jr.|dkr.t�|�r.|d7}||d}||jd|jd|j7}|S)N�;rrSrTrU)r�r�r��calendar�isleaprXrYrZ)r/rEZdays_before_yearr��epochrrr	r�sz_DayOffset.year_to_epochN�r;rr)r]rorprursr�rrrr	r�s
r�c@s6eZdZgd�ZdZddd�Zedd��Zd	d
�ZdS)
�_CalendarOffset)�m�wr�rXrYrZ)
r:rir�iZixi�i�i�i�ii0iNr;rcCs�d|krdksntd��d|kr2dks<ntd��d|krPdksZntd��||_||_||_||_||_||_dS)Nrizm must be in (0, 12]izw must be in (0, 5]izd must be in [0, 6])r>r�r�r�rXrYrZ)r/r�r�r�rXrYrZrrr	rs2sz_CalendarOffset.__init__cCs(t|�|j||dko t�|�|S)Nr;)r��_DAYS_BEFORE_MONTHr�r�)rrEZmonthZdayrrr	�_ymd2ordCs����z_CalendarOffset._ymd2ordcCs�t�||j�\}}|j|ddd}||jdd7}||krJ|d8}|�||j|�}|d}||jd|jd|j7}|S)NrirSrTrU)	r�Z
monthranger�r�r�r�rXrYrZ)r/rEZ	first_dayZ
days_in_monthZ	month_dayZordinalr�rrr	r�Ms	z_CalendarOffset.year_to_epochNr�)	r]rorprur�rsrqr�r�rrrr	r�s

	r�c

Cs�|�dd�^}}t�d�}|�|�}|dur:t|�d���|�d�}|�d�}d}|�d�}|rj|�d�}|�d�}r�zt|�}Wn8ty�}	ztd	|���|	�WYd}	~	nd}	~	00d
}|du�r�|�d�}�rzt|�}Wn>t�y}	ztd|���|	�WYd}	~	nd}	~	00|d
}|�s8td|����|d
�dd�}
zdd�|
D�\}}Wn6t�y�}	ztd|���|	�WYd}	~	n
d}	~	00t||||||�S|�r�td|����nt	t
|�t
d
�|�SdS)Nz,rz�(?P<std>[^<0-9:.+-]+|<[a-zA-Z0-9+\-]+>)((?P<stdoff>[+-]?\d{1,2}(:\d{2}(:\d{2})?)?)((?P<dst>[^0-9:.+-]+|<[a-zA-Z0-9+\-]+>)((?P<dstoff>[+-]?\d{1,2}(:\d{2}(:\d{2})?)?))?)?)?$z is not a valid TZ stringrvr8z<>ZstdoffzInvalid STD offset in rr7zInvalid DST offset in rTzMissing transition rules: css|]}t|�VqdSr
)�_parse_dst_start_end)raZxrrr	�	<genexpr>�rdz _parse_tz_str.<locals>.<genexpr>zInvalid TZ string: z%Transition rule present without DST: )�split�reZcompile�matchr>�groupZstrip�_parse_tz_deltarPrCr
)
rkZ
offset_strZ
start_end_strZ	parser_rer�r|r~rr}ZeZstart_end_strsrwrxrrr	rhosN�





&
&&�rhc
Cs�|�d�^}}|ddkr\d}t�d|�}|dur@td|����ttt|����}t|�}n4|ddkrzd}|d	d�}nd}t|�}t	||�}|r�t
tt|d�d
���}t|�}	|	dkr�|�dgd|	�|\|_
|_|_|S)Nz/rZMFzM(\d{1,2})\.(\d).(\d)$zInvalid dst start/end date: ZJTrz:i)r�r�r�r>Ztuple�map�intZgroupsr�r�rnrZextendrXrYrZ)
ZdststrZdateZtimeZn_is_julianr�Zdate_offsetZoffsetZdoyZtime_componentsZn_componentsrrr	r��s*

r�cCszt�d|�}dd�t|jd�D�\}}}|d|d|}d|krPdks`ntd	|����|�d
�dkrv|d9}|S)
Nz=(?P<sign>[+-])?(?P<h>\d{1,2})(:(?P<m>\d{2})(:(?P<s>\d{2}))?)?css"|]}|durt|�ndVqdSr�)r�)raZvrrr	r��s�z"_parse_tz_delta.<locals>.<genexpr>)�hr��srTrUi����rSz/Offset must be strictly between -24h and +24h: Zsignz-r:)r�r�r�r�r>)Ztz_deltar�r�r�r�Ztotalrrr	r��s�
��r�)rFr�rZ	functoolsr�rrrrZrrZEPOCHrVrWZ	lru_cacher
rrCrNrPr�r�r�rhr�r�rrrr	Z<module>s.

pYPK