HEX
Server: Apache
System: Linux infong-uk86 4.4.400-icpu-106 #2 SMP Mon Sep 15 08:23:40 UTC 2025 x86_64
User: u44115835 (4976590)
PHP: 8.4.17
Disabled: NONE
Upload Files
File: //kunden/lib/python3/dist-packages/wheel/__pycache__/wheelfile.cpython-39.pyc
a

і.^��@s�ddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZ
ddlmZmZmZddlmZddlmZmZmZmZmZmZe�dej�Zd
d	d
�ZGdd�de�ZdS)�)�print_functionN)�OrderedDict)�log)�ZIP_DEFLATED�ZipInfo�ZipFile)�
WheelError)�urlsafe_b64decode�
as_unicode�native�urlsafe_b64encode�as_bytes�StringIOzt^(?P<namever>(?P<name>.+?)-(?P<ver>.+?))(-(?P<build>\d[^-]*))?
     -(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?)\.whl$cCs,ttj�d|pt����}t�|�dd�S)N�SOURCE_DATE_EPOCHr�)�int�os�environ�get�time�gmtime)Z	timestamp�r�1/usr/lib/python3/dist-packages/wheel/wheelfile.py�get_zipinfo_datetimesrc@sReZdZdZejZdefdd�Zddd�Z	dd	�Z
dd
d�Zddd
�Zdd�Z
dS)�	WheelFilez�A ZipFile derivative class that also reads SHA-256 hashes from
    .dist-info/RECORD and checks any read files against those.
    �rc
Cs�tj�|�}t�|�|_|�d�r,|jdur:td�|���t	j
||||dd�d�|j�d��|_|jd|_
t�|_i|_|dk�r�d	|j|j
<d	|j|j
d
<d	|j|j
d<z|�|j
�}Wn"ty�td�|j
���Yn0|��|D]�}|�d
�}|�dd�\}}}	|r�|�d�\}
}zt�|
�Wn"t�yRtd�|
���Yn0|
��dv�rptd�|
���|
t|�d��f|j|<q�Wd�n1�s�0YdS)Nz.whlzBad wheel filename {!r}T)�compressionZ
allowZip64z{}.dist-infoZnameverz/RECORDr)NNz.jwsz.p7szMissing {} filezutf-8�,��=zUnsupported hash algorithm: {}>Zmd5Zsha1z4Weak hash algorithm ({}) is not permitted by PEP 427�ascii)r�path�basename�
WHEEL_INFO_RE�matchZparsed_filename�endswithr�formatr�__init__�groupZdist_info_path�record_pathr�_file_hashes�_file_sizes�open�KeyError�decode�rsplit�split�hashlib�new�
ValueError�lowerr	�encode)�self�file�moderr"�record�liner!Zhash_sum�size�	algorithmrrrr'&sF

���zWheelFile.__init__Ncs�d�����fdd�	}t�||||��tt|t�r8|jn|��|dkr���d�s��|jvrltd�	t
�����|j�\}��dur�t�|���j
|��_
�S)NcsR|dur�j}�|�n
�||���|�|rN����krNtd�t�����dS)NzHash mismatch for file '{}')Z_eof�update�digestrr&r)�newdata�eof�ZefZef_nameZ
expected_hashZrunning_hashZupdate_crc_origrr�_update_crcRs


z#WheelFile.open.<locals>._update_crcr�/zNo hash found for file '{}')N)rr,r
�
isinstancer�filenamer%r*rr&rr1r2rB)r6Zname_or_infor8�pwdrBr<rrArr,Qs�

zWheelFile.openc	Cs�t�d|j|�g}t�|�D]�\}}}|��t|�D]r}tj�tj�	||��}tj�
|�r8tj�||��tjj
d�}||jkr�q8|�d�r�|�||f�q8|�||�q8q|��|D]\}}|�||�q�dS)Nz#creating '%s' and adding '%s' to itrCz
.dist-info)�logger�inforEr�walk�sort�sortedr!�normpath�join�isfile�relpath�replace�sepr)r%�append�write)	r6Zbase_dirZdeferred�rootZdirnames�	filenames�namer!�arcnamerrr�write_filesls 

zWheelFile.write_filescCs�t|d��&}t�|���}|��}Wd�n1s60Yt|pH|t|j�d�}t�	|j
�t�|j
�Bd>|_|p||j
|_|�|||�dS)N�rb�Z	date_time�)r,r�fstat�fileno�readrr�st_mtime�stat�S_IMODE�st_mode�S_IFMT�
external_attrr�
compress_type�writestr)r6rErWre�f�st�data�zinforrrrS�s&zWheelFile.writecCsrt�||||�t|t�r |jn|}t�d|�||jkrn|�|�}|j	t
t|����f|j
|<t|�|j|<dS)Nzadding '%s')rrfrDrrErGrHr)�_default_algorithmrVrrr>r*�lenr+)r6Zzinfo_or_arcname�bytesre�fname�hash_rrrrf�s�

zWheelFile.writestrcs��jdur��jdkr��jr�t�}tj|dddd�}|��fdd��j��D��|�t	�j
�ddf�tt�j
�t
�d	�}�j|_d
|_��|t|����t���dS)N�wr�"�
)Z	delimiterZ	quotecharZlineterminatorc3s.|]&\}\}}||d|�j|fVqdS)rN)r+)�.0rnr<ro�r6rr�	<genexpr>�s

�
�z"WheelFile.close.<locals>.<genexpr>�rZi�)�fpr8r*r�csv�writerZ	writerows�itemsZwriterowr&r)rrrrrerdrfr
�getvaluer�close)r6riryrjrrtrr|�s�zWheelFile.close)rN)NN)N)�__name__�
__module__�__qualname__�__doc__r1Zsha256rkrr'r,rXrSrfr|rrrrrs+




r)N) Z
__future__rrxr1�os.pathr�rer`r�collectionsrZ	distutilsrrGZzipfilerrrZ	wheel.clirZ
wheel.utilr	r
rrr
r�compile�VERBOSEr#rrrrrr�<module>s" �