Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc

�

4Μgl���ddlZddlmZmZmZmZmZmZmZddl	m
Z
mZmZddl
mZerddlmZdZgd�ZGd�d	�ZGd
�de�Zy)�N)�
TYPE_CHECKING�BinaryIO�Dict�Iterable�List�NoReturn�Optional)�HashMismatch�HashMissing�InstallationError)�read_chunks)�_Hash�sha256)r�sha384�sha512c��eZdZdZddeeeeefddfd�Zdd�Z	e
defd��Zd	ed
ede
fd�Zdeeddfd
�Zdeedfddfd�Zdeddfd�Zdeddfd�Zdeeefde
fd�Zde
fd�Zdede
fd�Zdefd�Zy)�HasheszaA wrapper that builds multiple hashes at once and checks them against
    known-good values

    N�hashes�returnc��i}|�B|j�D]/\}}t|�D�cgc]}|j���c}||<�1||_ycc}w)zo
        :param hashes: A dict of algorithm names pointing to lists of allowed
            hex digests
        N)�items�sorted�lower�_allowed)�selfr�allowed�alg�keys�ks      �E/usr/local/lib/python3.12/site-packages/pip/_internal/utils/hashes.py�__init__zHashes.__init__sT��
����#�\�\�^�	��T�39�$�<�@�<�a����	�<�@����,� ��
�� As�A�otherc��t|t�stS|s|S|s|Si}|jj	�D]9\}}||jvr�|D�cgc]}||j|vs�|��c}||<�;t|�Scc}w�N)�
isinstancer�NotImplementedrr)rr"�newr�values�vs      r �__and__zHashes.__and__'s����%��(�!�!���K���L��� �>�>�/�/�1�K�C���$�-�-�'��#)�E�6�a�Q�$�-�-��2D�-D��6�E�C��H�2��c�{���Fs�B�+Bc�V�td�|jj�D��S)Nc3�2K�|]}t|����y�wr$)�len)�.0�digestss  r �	<genexpr>z&Hashes.digest_count.<locals>.<genexpr><s����F�/E�G�3�w�<�/E�s�)�sumrr(�rs r �digest_countzHashes.digest_count:s ���F�t�}�}�/C�/C�/E�F�F�F��	hash_name�
hex_digestc�>�||jj|g�vS)z/Return whether the given hex digest is allowed.)r�get)rr5r6s   r �is_hash_allowedzHashes.is_hash_allowed>s���T�]�]�.�.�y�"�=�=�=r4�chunksc��i}|jj�D]}	tj|�||<�|D](}|j�D]}|j|���*|j�D]&\}}|j�|j|vs�&y|j|�y#tt
f$rt
d|����wxYw)z�Check good hashes against ones built from iterable of chunks of
        data.

        Raise HashMismatch if none match.

        zUnknown hash name: N)rr�hashlibr'�
ValueError�	TypeErrorrr(�updater�	hexdigest�_raise)rr:�gotsr5�chunk�hash�gots       r �check_against_chunkszHashes.check_against_chunksBs��������+�+�-�I�
K�")�+�+�i�"8��Y��.��E����
�����E�"�&��#�j�j�l�N�I�s��}�}��$�-�-�	�":�:��+�	
���D����	�*�
K�'�*=�i�[�(I�J�J�
K�s�B3�3CrBrrc�.�t|j|��r$)r
r�rrBs  r rAz
Hashes._raiseYs���4�=�=�$�/�/r4�filec�6�|jt|��S)zaCheck good hashes against a file-like object

        Raise HashMismatch if none match.

        )rFr
)rrIs  r �check_against_filezHashes.check_against_file\s���(�(��T�):�;�;r4�pathc�h�t|d�5}|j|�cddd�S#1swYyxYw)N�rb)�openrK)rrLrIs   r �check_against_pathzHashes.check_against_pathds(��
�$��
���*�*�4�0��
�
�s�(�1c�\�|j�D]\}}|j||�s�yy)z3Return whether any of the given hashes are allowed.TF)rr9)rrr5r6s    r �
has_one_ofzHashes.has_one_ofhs/��%+�\�\�^�!�I�z��#�#�I�z�:��&4�r4c�,�t|j�S)z,Return whether I know any known-good hashes.)�boolrr2s r �__bool__zHashes.__bool__os���D�M�M�"�"r4c�`�t|t�stS|j|jk(Sr$)r%rr&r)rr"s  r �__eq__z
Hashes.__eq__ss%���%��(�!�!��}�}����.�.r4c	��tdjtd�|jj	�D����S)N�,c3�VK�|]!\}}|D]}dj||f�����#y�w)�:N)�join)r.r�digest_list�digests    r r0z"Hashes.__hash__.<locals>.<genexpr>{s7�����,A�(��[�"-���H�H�c�6�]�+�"-�,�,A�s�'))rDr\rrrr2s r �__hash__zHashes.__hash__xs=����H�H���,0�M�M�,?�,?�,A���
�
�	
r4r$)r"rrr)�__name__�
__module__�__qualname__�__doc__r	r�strrr!r*�property�intr3rTr9r�bytesrFrArrKrPrRrU�objectrWr_�r4r rrs���

 �x��S�$�s�)�^�(<�=�
 ��
 ��&�G�c�G��G�>��>�#�>�$�>��8�E�?��t��.0�4��W��-�0�*�0�<�x�<�D�<�1�s�1�t�1���c�3�h���D��#�$�#�/�F�/�t�/�
	
�#�	
r4rc�>��eZdZdZd�fd�Zdeedfddfd�Z�xZS)	�
MissingHashesz�A workalike for Hashes used when we're missing a hash for a requirement

    It computes the actual hash of the requirement and raises a HashMissing
    exception showing it to the user.

    rc�2��t�|�tgi��y)z!Don't offer the ``hashes`` kwarg.)rN)�superr!�
FAVORITE_HASH)r�	__class__s �r r!zMissingHashes.__init__�s���	����� 3��4r4rBrrc�B�t|tj���r$)rrnr@rHs  r rAzMissingHashes._raise�s���$�}�-�7�7�9�:�:r4)rN)	r`rarbrcr!rrdrA�
__classcell__)ros@r rkrk�s)����5�;�4��W��-�;�*�;r4rk)r<�typingrrrrrrr	�pip._internal.exceptionsr
rr�pip._internal.utils.miscr
rrn�
STRONG_HASHESrrkrir4r �<module>rvsG���T�T�T�Q�Q�0���
�
�
/�
�l
�l
�^;�F�;r4

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists