
    g                         d dl Z d dlZd dlZd dlmZ d dlm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  ej$                  e      Z G d d	e      Zd
ededefdZy)    N)Values)List)Command)ERRORSUCCESS)FAVORITE_HASHSTRONG_HASHES)read_chunkswrite_outputc                   :    e Zd ZdZdZdZd
dZdedee	   de
fd	Zy)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> ...TreturnNc                     | j                   j                  dddt        dt        dj	                  dj                  t                           | j                  j                  d| j                          y )	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)selfs    X/var/www/django_project/virt/lib/python3.12/site-packages/pip/_internal/commands/hash.pyadd_optionszHashCommand.add_options   s_      !!7>>		-( 	! 
	
 	''4==9    optionsargsc           
          |s/| j                   j                  t        j                         t        S |j
                  }|D ]  }t        d||t        ||              t        S )Nz%s:
--hash=%s:%s)	r   print_usagesysstderrr   r   r   _hash_of_filer   )r   r!   r"   r   paths        r   runzHashCommand.run(   sY    KK##CJJ/L%%	 	D#T9mD)6T	 r    )r   N)__name__
__module____qualname____doc__usageignore_require_venvr   r   r   strintr)    r    r   r   r      s7     )E:
6 
c 
s 
r    r   r(   r   r   c                     t        | d      5 }t        j                  |      }t        |      D ]  }|j	                  |        	 ddd       |j                         S # 1 sw Y   j                         S xY w)z!Return the hash digest of a file.rbN)openhashlibnewr
   update	hexdigest)r(   r   archivehashchunks        r   r'   r'   5   sj    	dD	 W{{9% ) 	EKK	 >>	 >>s   7AA5)r6   loggingr%   optparser   typingr   pip._internal.cli.base_commandr   pip._internal.cli.status_codesr   r   pip._internal.utils.hashesr   r	   pip._internal.utils.miscr
   r   	getLoggerr*   loggerr   r0   r'   r2   r    r   <module>rF      sY      
   2 9 C >			8	$#' #L   r    