Your IP : 216.73.216.52


Current Path : /snap/certbot/current/lib64/python3.12/site-packages/wheel/__pycache__/
Upload File :
Current File : //snap/certbot/current/lib64/python3.12/site-packages/wheel/__pycache__/wheelfile.cpython-312.pyc

�

`I�i"��T�ddlmZgd�ZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZddlmZmZmZddlmZmZmZerddlmZmZe	j4de	j6�Zd	Zej<d
�ZGd�de �Z!dd
�Z"dd�Z#	d			dd�Z$Gd�de�Z%y)�)�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���wheelc��eZdZy)rN)�__name__�
__module__�__qualname__���/build/snapcraft-certbot-53a6961353a63169611ae8a78f6bfa4f/parts/certbot/install/lib/python3.12/site-packages/wheel/wheelfile.pyrr!s��rrc�J�tj|�jd�S)z!urlsafe_b64encode without padding�=)�base64�urlsafe_b64encode�rstrip)�datas rrr%s���#�#�D�)�0�0��6�6rc�Z�ddt|�dzz
z}tj||z�S)z!urlsafe_b64decode without paddingr��)�lenr�urlsafe_b64decode)r�pads  rr#r#*s.��
�!�s�4�y�1�}�%�
&�C��#�#�D�3�J�/�/rc���ttjjd|xst	j���}t|t�}t	j|�ddS)N�SOURCE_DATE_EPOCHr�)�int�os�environ�get�time�max�MINIMUM_TIMESTAMP�gmtime)�	timestamps r�get_zipinfo_datetimer10sL��
�B�J�J�N�N�#6�	�8P�T�Y�Y�[�Q�R�I��I�0�1�I��;�;�y�!�!�A�&�&rc��eZdZdZej
Zdef					d
d�Z		d							dd�Z	d
d�Z
		d							dd�Z	d							dd�Zdd	�Z
y)rz�A ZipFile derivative class that also reads SHA-256 hashes from
    .dist-info/RECORD and checks any read files against those.
    �rc��tjj|�}tj	|�|_|j
d�r|j
�td|����tj||||d��dj|j
jd��|_|jdz|_
i|_i|_|dk(�rd	|j|j<d	|j|jd
z<d	|j|jdz<	|j!|j�}|5t%j&t)|dd���D]}|\}}}	|s�|j+d�\}
}	t-j.|
�|
j3�dvrtd|
�d���|
t5|j7d��f|j|<��	ddd�yy#t"$rtd|j�d
��d�wxYw#t0$rtd|
���d�wxYw#1swYyxYw)Nz.whlzBad wheel filename T)�compression�
allowZip64z{}.dist-info�nameverz/RECORDr3�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�match�parsed_filename�endswithrr
�__init__�format�group�dist_info_path�record_path�_file_hashes�_file_sizes�open�KeyError�csv�readerr�split�hashlib�new�
ValueError�lowerr#�encode)�self�file�moder5rB�record�linerA�hash_sum�size�	algorithms           rrFzWheelFile.__init__AsW���7�7�#�#�D�)��,�2�2�8�<���� � ��(�D�,@�,@�,H��2�8�,�?�@�@�����t�T�{�t�T�,�3�3�� � �&�&�y�1�
��� �.�.��:���NP�������3�;�2<�D���d�.�.�/�;E�D���d�.�.��7�8�;E�D���d�.�.��7�8�
O����4�#3�#3�4���
��J�J�!�&�"�w�G���D�,0�(�D�(�D�#� �*2�.�.��*=�'�I�x�$����I�.�!���(�O�;�(�3�I�;�?&�'���"�)�(�/�/�'�*B�C�/�D�%�%�d�+�+�
�
����
O� �8�D�,<�,<�+=�U�!C�D�$�N�
O��&�$�(�:�9�+�F��#�$�$��
�
�s2�(G4�AH7�H�AH7�4$H�H4�4H7�7INc�����	�
�d����	�
fd�}t|t�r|jn|�|dk(r.�jd�s�|jvrtd��d���t
j||||��|dk(rN�jd�s=|j�\}���)tj|��	�j|c�
�_
�S)Nc����j}�|��j|�|r#�j��k7rtd��d���yy)NzHash mismatch for file '�')�_eof�update�digestr)�newdata�eof�ef�ef_name�
expected_hash�running_hash�update_crc_origs  �����r�_update_crcz#WheelFile.open.<locals>._update_crc�sQ����'�'�C��G�$�����(��|�*�*�,�
�=� �#;�G�9�A�!F�G�G�>�srr3�/zNo hash found for file 'ra)re�bytes�return�None)�
isinstancer�filenamerErKrr
rMrRrSrl)rW�name_or_inforY�pwdrlr^rgrhrirjrks      @@@@@rrMzWheelFile.open{s����	H�	H�&0��g�%F�L�!�!�L�	�
�C�K��$�$�S�)��t�0�0�0��7��y��B�C�C�
�\�\�$��d�C�
8���3�;�w�/�/��4�'+�'8�'8��'A�$�I�}��(� '�{�{�9�5��24�.�.�+�/�����	rc��tjd|j|�g}tj|�D�]\}}}|j�t
|�D]�}tjjtjj||��}tjj|�s�`tjj||�jtjjd�}||jk(r��|jd�r|j!||f���|j#||�����|j�|D]\}}|j#||��y)Nzcreating %r and adding %r to itrmz
.dist-info)�log�inforrr)�walk�sort�sortedrA�normpath�join�isfile�relpath�replace�seprJrE�append�write)	rW�base_dir�deferred�root�dirnames�	filenames�namerA�arcnames	         r�write_fileszWheelFile.write_files�s�����2�D�M�M�8�L�*,��)+����):�
	2�%�D�(�I�
�M�M�O��y�)�	
2���w�w�'�'������T�4�(@�A���7�7�>�>�$�'� �g�g�o�o�d�H�=�E�E�b�g�g�k�k�SV�W�G��$�"2�"2�2�����|�4� ����w��8��
�
�4��1�	
2�	
	2�	�
�
��%�	&�M�D�'��J�J�t�W�%�	&rc���t|d�5}tj|j��}|j	�}ddd�t|xs|t
j���}tj|j�tj|j�zdz|_|xs|j|_|j||�y#1swY��xYw)N�rb��	date_time�)rMr)�fstat�fileno�readrr1�st_mtime�stat�S_IMODE�st_mode�S_IFMT�
external_attrr5�
compress_type�writestr)rWrrr�r��f�str�zinfos        rr�zWheelFile.write�s����(�D�
!�	�Q����!�(�(�*�%�B��6�6�8�D�	����x�+?����+L�
�� $�|�|�B�J�J�7�$�+�+�b�j�j�:Q�Q�VX�X���+�?�t�/?�/?����
�
�e�T�=�1�	�	�s�4C�C&c�t�t|t�rAt|t���}|j|_dtjzdz|_t|t�r|jd�}tj||||�t|t�r|jn|}tjd|�||jk7rk|j!|�}|j"t%|j'��j)d�f|j*|<t-|�|j.|<yy)Nr�i�r�r:z	adding %rr@)rq�strrr1r5r�r��S_IFREGr�rVr
r�rrrvrwrJ�_default_algorithmr�rrd�decoderKr"rL)rW�zinfo_or_arcnamerr��fname�hash_s      rr�zWheelFile.writestr�s���&��,�&� �,@�,B� ��.2�-=�-=��*�.3�d�l�l�.B�r�-I��*��d�C� ��;�;�w�'�D�����/��}�E��*�G�4�
�%�%�!�	�
	����e�$��D�$�$�$��+�+�D�1�E��
�
�!�%�,�,�.�1�8�8��A�(�D���e�$�'*�$�i�D���U�#�
%rc�����j���jdk(r��jr�t�}t	j
|ddd��}|j
�fd��jj�D��|jt�j�ddf��j�j|j��tj��y)N�w�,�"�
)�	delimiter�	quotechar�lineterminatorc3�Z�K�|]"\}\}}||dz|z�j|f���$y�w)r=N)rL)�.0r�r^r�rWs    �r�	<genexpr>z"WheelFile.close.<locals>.<genexpr>�s=������1��1�	�5��I��O�e�3�T�5E�5E�e�5L�M��s�(+r9)�fprYrKrrO�writer�	writerows�items�writerowrGrJr��getvaluer
�close)rWrr�s`  rr�zWheelFile.close�s�����7�7��4�9�9��#3��8I�8I��:�D��Z�Z���s�SW�X�F�����59�5F�5F�5L�5L�5N��
�
�O�O�V�D�$4�$4�5�r�2�>�?��M�M�$�*�*�D�M�M�O�<��
�
�d�r)rXrrYzLiteral['r', 'w', 'x', 'a']r5r()r3N)rs�
str | ZipInforYzLiteral['r', 'w']rtzbytes | Noneroz	IO[bytes])r�r�rorpr8)rrr�r�z
str | Noner��
int | Nonerorp�N)r�r�rzSizedBuffer | strr�r�rorp)rorp)rrr�__doc__rR�sha256r�rrFrMr�r�r�r�rrrrr:s����!����
-0�'�	8��8�*�8��	8�z#&� �	 �#� � � ��	 �

� �D&�2#�$(�	2��2��2�"�	2�

�2�*%)�	0�'�0� �0�"�	0�

�0�>rr)rrnrornr�)r0zfloat | Noneroztuple[int, int, int, int, int])&�
__future__r�__all__rrOrR�logging�os.pathr)�rer�r,�iorr�typingr	r
r�zipfilerr
r�	_typeshedrr�compile�VERBOSErr.�	getLoggerrv�	Exceptionrrr#r1rrrr�<module>r�s���"�
6��
�
����	���&�-�-�2�2��.�
��
�
�C��J�J��
�
���g���� ��	��	�7�
0�#�'��'�#�'�w��wr