HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/wheel/__pycache__/wheelfile.cpython-310.pyc
o

;jH$�@sddlmZgd�ZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZddlmZmZmZddlmZmZmZerPddlmZmZe	�de	j�Zd	Ze�d
�ZGdd�de �Z!ddd�Z"ddd�Z#	dddd�Z$Gdd�de�Z%dS)�)�annotations)�
WHEEL_INFO_RE�	WheelFile�
WheelErrorN)�StringIO�
TextIOWrapper)�IO�
TYPE_CHECKING�Literal)�ZIP_DEFLATED�ZipFile�ZipInfo)�SizedBuffer�StrPathz�^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]+?))(-(?P<build>\d[^\s-]*))?
     -(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>\S+)\.whl$i��Zwheelc@seZdZdS)rN)�__name__�
__module__�__qualname__�rr�C/opt/saltstack/salt/lib/python3.10/site-packages/wheel/wheelfile.pyr!sr�data�bytes�returncCst�|��d�S)z!urlsafe_b64encode without padding�=)�base64�urlsafe_b64encode�rstrip)rrrrr%srcCs"ddt|�d@}t�||�S)z!urlsafe_b64decode without paddingr��)�lenr�urlsafe_b64decode)r�padrrrr*sr�	timestamp�float | None�tuple[int, int, int, int, int]cCs6ttj�d|p
t����}t|t�}t�|�dd�S)N�SOURCE_DATE_EPOCHr�)�int�os�environ�get�time�max�MINIMUM_TIMESTAMP�gmtime)r!rrr�get_zipinfo_datetime0s
r.c@sheZdZdZejZdefd(d	d
�Z		d)d*dd�Z	d+dd�Z
		d,d-dd �Z	d.d/d$d%�Zd0d&d'�Z
dS)1rz�A ZipFile derivative class that also reads SHA-256 hashes from
    .dist-info/RECORD and checks any read files against those.
    �r�filer�mode�Literal['r', 'w', 'x', 'a']�compressionr&c

Cs�tj�|�}t�|�|_|�d�r|jdurtd|����tj	||||dd�d�
|j�d��|_|jd|_
i|_i|_|dkr�|j
|��vrj|j��d	}|��D]}|��|kri|�dd
�d|_||_
nqSd|j|j
<d|j|j
d
<d|j|j
d<z|�|j
�}Wnty�td|j
�d��d�w|�Vt�t|ddd��D]B}|\}	}
}|
s�q�|
�d�\}}
zt�|�Wnty�td|���d�w|��dvr�td|�d���|t|
�d��f|j|	<q�Wd�dS1s�wYdSdS)Nz.whlzBad wheel filename T)r3Z
allowZip64z{}.dist-infoZnameverz/RECORDr/z/record�r�NNz.jwsz.p7szMissing z file��utf-8)�newline�encoding�=zUnsupported hash algorithm: >�md5�sha1zWeak hash algorithm (z) is not permitted by PEP 427�ascii)r'�path�basenamer�matchZparsed_filename�endswithrr�__init__�format�groupZdist_info_path�record_path�_file_hashes�_file_sizesZnamelist�lower�rsplit�open�KeyError�csv�readerr�split�hashlib�new�
ValueErrorr�encode)
�selfr0r1r3r?Zlowered�name�record�liner>Zhash_sum�size�	algorithmrrrrBAsn
����
���
���"��zWheelFile.__init__N�name_or_info�
str | ZipInfo�Literal['r', 'w']�pwd�bytes | Noner�	IO[bytes]cs�d�����fdd�}t|t�r|jn|�|dkr+��d�s+�|jvr+td	��d
���t�||||��|dkrS��d�sS|j�\}��durSt�	|���j
|��_
�S)N�newdatarr�Nonecs@�j}�|���|�|r����krtd��d���dSdS)NzHash mismatch for file '�')�_eof�update�digestr)r_�eof�ZefZef_nameZ
expected_hashZrunning_hashZupdate_crc_origrr�_update_crc�s
�z#WheelFile.open.<locals>._update_crcr/�/zNo hash found for file 'ra)r_rrr`)�
isinstancer
�filenamerArFrrrJrOrPrg)rSrYr1r\rgrXrrfrrJ�s��

zWheelFile.open�base_dir�strr`c	Cs�t�d|j|�g}t�|�D]G\}}}|��t|�D]9}tj�tj�	||��}tj�
|�rUtj�||��tjj
d�}||jkrBq|�d�rO|�||f�q|�||�qq|��|D]
\}}|�||�q]dS)Nzcreating %r and adding %r to itrhz
.dist-info)�log�inforjr'�walk�sort�sortedr>�normpath�join�isfile�relpath�replace�seprErA�append�write)	rSrkZdeferred�root�dirnames�	filenamesrTr>�arcnamerrr�write_files�s&

���zWheelFile.write_filesrjr}�
str | None�
compress_type�
int | NonecCs�t|d��}t�|���}|��}Wd�n1swYt|p$|t|j�d�}t�	|j
�t�|j
�Bd>|_|p>|j
|_|�|||�dS)N�rb�Z	date_time�)rJr'�fstat�fileno�readr
r.�st_mtime�stat�S_IMODE�st_mode�S_IFMT�
external_attrr3r��writestr)rSrjr}r��f�strZzinforrrry�s
��zWheelFile.write�zinfo_or_arcnamer�SizedBuffer | strcCs�t|t�rt|t�d�}|j|_dtjBd>|_t|t�r"|�	d�}t
�||||�t|t�r2|jn|}t
�d|�||jkr\|�|�}|jt|����d�f|j|<t|�|j|<dSdS)Nr�i�r�r7z	adding %rr=)rirlr
r.r3r�r��S_IFREGr�rRrr�rjrmrnrE�_default_algorithmrTrrd�decoderFrrG)rSr�rr��fname�hash_rrrr��s*
�

��


��zWheelFile.writestrcs��jdur<�jdkr<�jr<t�}tj|dddd�}|��fdd��j��D��|�t	�j
�ddf����j
|���t
���dS)	N�w�,�"�
)�	delimiterZ	quotecharZlineterminatorc3s0�|]\}\}}||d|�j|fVqdS)r:N)rG)�.0r�rXr��rSrr�	<genexpr>�s
�
�
�z"WheelFile.close.<locals>.<genexpr>r6)�fpr1rFrrL�writerZ	writerows�itemsZwriterowrCrEr��getvaluer�close)rSrr�rr�rr��s
��zWheelFile.close)r0rr1r2r3r&)r/N)rYrZr1r[r\r]rr^)rkrlrr`r5)rjrlr}rr�r�rr`�N)r�rZrr�r�r�rr`)rr`)rrr�__doc__rO�sha256r�rrBrJr~ryr�r�rrrrr:s �H�
"��r)rrrrr�)r!r"rr#)&�
__future__r�__all__rrLrO�loggingZos.pathr'�rer�r*�iorr�typingrr	r
�zipfilerrr
Z	_typeshedrr�compile�VERBOSErr,�	getLoggerrm�	Exceptionrrrr.rrrrr�<module>s6�


�