HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/site-packages/wheel/__pycache__/wheelfile.cpython-37.pyc
B

O��g�@s�ddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
mZddlm
Z
mZmZddlmZddlmZmZmZe�dej�ZdZd
d	d
�ZGdd�de�ZdS)�)�annotationsN)�StringIO�
TextIOWrapper)�ZIP_DEFLATED�ZipFile�ZipInfo)�
WheelError)�log�urlsafe_b64decode�urlsafe_b64encodez�^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]+?))(-(?P<build>\d[^\s-]*))?
     -(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>\S+)\.whl$i��cCs6ttj�d|pt����}t|t�}t�|�dd�S)N�SOURCE_DATE_EPOCHr�)�int�os�environ�get�time�max�MINIMUM_TIMESTAMP�gmtime)�	timestamp�r�3/tmp/pip-unpacked-wheel-f1gdtpe6/wheel/wheelfile.py�get_zipinfo_datetimes
rc@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,|jdkr:td|����tj	||||dd�d�
|j�d��|_|jd|_
i|_i|_|dk�r�d	|j|j
<d	|j|j
d
<d	|j|j
d<y|�|j
�}Wn(tk
r�td|j
�d
��d�YnX|��x�t�t|ddd��D]�}|\}}}	|�s�q|�d�\}
}yt�|
�Wn&tk
�r`td|
���d�YnX|
��dk�r~td�
|
���|
t|�d��f|j|<�qWWdQRXdS)Nz.whlzBad wheel filename T)�compression�
allowZip64z{}.dist-infoZnameverz/RECORDr)NNz.jwsz.p7szMissing z file�zutf-8)�newline�encoding�=zUnsupported hash algorithm: >�md5�sha1z4Weak hash algorithm ({}) is not permitted by PEP 427�ascii)r�path�basename�
WHEEL_INFO_RE�matchZparsed_filename�endswithrr�__init__�format�groupZdist_info_path�record_path�_file_hashes�_file_sizes�open�KeyError�csv�readerr�split�hashlib�new�
ValueError�lowerr
�encode)�self�file�moderr&�record�liner%Zhash_sum�size�	algorithmrrrr*(sJ



zWheelFile.__init__Ncs������fdd�}t|t�r$|jn|�|dkrT��d�sT�|jkrTtd��d���t�||||��|dkr���d�s�|j�\}��dk	r�t�	|���j
|��_
�S)Ncs<�j}�|���|�|r8����kr8td��d���dS)NzHash mismatch for file '�')�_eof�update�digestr)�newdata�eof)�ef�ef_name�
expected_hash�running_hash�update_crc_origrr�_update_crc^s

z#WheelFile.open.<locals>._update_crcr�/zNo hash found for file 'rA)�
isinstancer�filenamer)r.rrr0r5r6rL)r:Zname_or_infor<�pwdrLr@r)rGrHrIrJrKrr0]s


zWheelFile.openc	Cs�t�d|j�d|�d��g}x�t�|�D]�\}}}|��x~t|�D]r}tj�tj�	||��}tj�
|�rFtj�||��tjj
d�}||jkr�qF|�d�r�|�||f�qF|�||�qFWq*W|��x|D]\}}|�||�q�WdS)Nz
creating 'z' and adding 'z' to itrMz
.dist-info)r	�inforOr�walk�sort�sortedr%�normpath�join�isfile�relpath�replace�sepr-r)�append�write)	r:�base_dir�deferred�root�dirnames�	filenames�namer%�arcnamerrr�write_fileszs 

zWheelFile.write_filesc	Cs~t|d��}t�|���}|��}WdQRXt|p4|t|j�d�}t�	|j
�t�|j
�Bd>|_|ph|j
|_|�|||�dS)N�rb)�	date_time�)r0r�fstat�fileno�readrr�st_mtime�stat�S_IMODE�st_mode�S_IFMT�
external_attrr�
compress_type�writestr)r:rOrcrq�f�st�data�zinforrrr\�szWheelFile.writecCs�t|t�r0t|t�d�}|j|_dtjBd>|_t|t�rD|�	d�}t
�||||�t|t�rd|jn|}t
�d|�d��||jkr�|�|�}|jt|����d�f|j|<t|�|j|<dS)N)rfi�rgzutf-8zadding 'rAr$)rN�strrrrrqrl�S_IFREGrpr9rrrrOr	rQr-�_default_algorithmrbrrD�decoder.�lenr/)r:�zinfo_or_arcnamerurq�fname�hash_rrrrr�s 




zWheelFile.writestrcs��jdk	rx�jdkrx�jrxt�}tj|dddd�}|��fdd��j��D��|�t	�j
�ddf����j
|���t
���dS)	N�w�,�"�
)�	delimiter�	quotechar�lineterminatorc3s.|]&\}\}}||d|�j|fVqdS)r!N)r/)�.0r}r@r~)r:rr�	<genexpr>�sz"WheelFile.close.<locals>.<genexpr>r)�fpr<r.rr2�writer�	writerows�items�writerowr+r-rr�getvaluer�close)r:rur�r)r:rr��s
zWheelFile.close)rN)NN)N)�__name__�
__module__�__qualname__�__doc__r5�sha256ryrr*r0rdr\rrr�rrrrr!s5


r)N)�
__future__rr2r5�os.pathr�rerlr�iorr�zipfilerrrZ	wheel.clirZ
wheel.utilr	r
r�compile�VERBOSEr'rrrrrrr�<module>s