
    dh                         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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)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    ]/var/www/html/vivango/api/ia/venv/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   list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&   4   sj    	dD	 W{{9% ) 	EKK	 >>	 >>s   7AA5)r6   loggingr$   optparser   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>rE      sV      
  2 9 C >			8	$#' #L   r   