a
    ”¼de3  ã                   @   s®   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZmZ d dlmZmZ d dlmZ erˆd dlmZ d d	lmZ e e¡ZG d
d„ deƒZdd„ ZdS )é    )Úabsolute_importN)ÚCommand)ÚERRORÚSUCCESS)ÚFAVORITE_HASHÚSTRONG_HASHES)Úread_chunksÚwrite_output)ÚMYPY_CHECK_RUNNING)ÚValues)ÚListc                   @   s(   e Zd ZdZdZdZdd„ Zdd„ ZdS )	ÚHashCommandz�
    Compute a hash of a local package archive.

    These can be used with --hash in a requirements file to do repeatable
    installs.
    z%prog [options] <file> ...Tc                 C   s:   | j jdddtdtd d t¡¡d� | j d| j ¡ d S )	Nz-az--algorithmÚ	algorithmÚstorez$The hash algorithm to use: one of {}z, )ÚdestÚchoicesÚactionÚdefaultÚhelpr   )Úcmd_optsÚ
add_optionr   r   ÚformatÚjoinÚparserÚinsert_option_group)Úself© r   úT/var/www/sistema_ama/venv/lib/python3.9/site-packages/pip/_internal/commands/hash.pyÚadd_options   s    ÿúzHashCommand.add_optionsc                 C   s>   |s| j  tj¡ tS |j}|D ]}td||t||ƒƒ q tS )Nz%s:
--hash=%s:%s)	r   Úprint_usageÚsysÚstderrr   r   r	   Ú_hash_of_filer   )r   ÚoptionsÚargsr   Úpathr   r   r   Úrun+   s    ÿzHashCommand.runN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚusageÚignore_require_venvr   r&   r   r   r   r   r      s
   r   c                 C   sT   t | dƒ�2}t |¡}t|ƒD ]}| |¡ qW d  ƒ n1 sB0    Y  | ¡ S )z!Return the hash digest of a file.ÚrbN)ÚopenÚhashlibÚnewr   ÚupdateÚ	hexdigest)r%   r   ÚarchiveÚhashÚchunkr   r   r   r"   8   s
    
*r"   )Ú
__future__r   r/   Úloggingr    Úpip._internal.cli.base_commandr   Úpip._internal.cli.status_codesr   r   Úpip._internal.utils.hashesr   r   Úpip._internal.utils.miscr   r	   Úpip._internal.utils.typingr
   Úoptparser   Útypingr   Ú	getLoggerr'   Úloggerr   r"   r   r   r   r   Ú<module>   s   
$