ó
Ð²Ebc           @@  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 n  e j e ƒ Z d
 e f d „  ƒ  YZ d „  Z d S(   i    (   t   absolute_importN(   t   Command(   t   ERRORt   SUCCESS(   t   FAVORITE_HASHt   STRONG_HASHES(   t   read_chunkst   write_output(   t   MYPY_CHECK_RUNNING(   t   Values(   t   Listt   HashCommandc           B@  s,   e  Z d  Z d Z e Z d „  Z d „  Z RS(   s   
    Compute a hash of a local package archive.

    These can be used with --hash in a requirements file to do repeatable
    installs.
    s   %prog [options] <file> ...c         C@  s]   |  j  j d d d d d t d d d t d	 d
 j d j t ƒ ƒ ƒ|  j j d |  j  ƒ d  S(   Ns   -as   --algorithmt   destt	   algorithmt   choicest   actiont   storet   defaultt   helps$   The hash algorithm to use: one of {}s   , i    (   t   cmd_optst
   add_optionR   R   t   formatt   joint   parsert   insert_option_group(   t   self(    (    s8   /tmp/pip-build-UPPWic/pip/pip/_internal/commands/hash.pyt   add_options   s    		c         C@  sW   | s |  j  j t j ƒ t S| j } x* | D]" } t d | | t | | ƒ ƒ q- Wt S(   Ns   %s:
--hash=%s:%s(	   R   t   print_usaget   syst   stderrR   R   R   t   _hash_of_fileR   (   R   t   optionst   argsR   t   path(    (    s8   /tmp/pip-build-UPPWic/pip/pip/_internal/commands/hash.pyt   run+   s    	(   t   __name__t
   __module__t   __doc__t   usaget   Truet   ignore_require_venvR   R"   (    (    (    s8   /tmp/pip-build-UPPWic/pip/pip/_internal/commands/hash.pyR      s
   	c         C@  sU   t  |  d ƒ : } t j | ƒ } x! t | ƒ D] } | j | ƒ q. WWd QX| j ƒ  S(   s!   Return the hash digest of a file.t   rbN(   t   opent   hashlibt   newR   t   updatet	   hexdigest(   R!   R   t   archivet   hasht   chunk(    (    s8   /tmp/pip-build-UPPWic/pip/pip/_internal/commands/hash.pyR   8   s
    (   t
   __future__R    R+   t   loggingR   t   pip._internal.cli.base_commandR   t   pip._internal.cli.status_codesR   R   t   pip._internal.utils.hashesR   R   t   pip._internal.utils.miscR   R   t   pip._internal.utils.typingR   t   optparseR	   t   typingR
   t	   getLoggerR#   t   loggerR   R   (    (    (    s8   /tmp/pip-build-UPPWic/pip/pip/_internal/commands/hash.pyt   <module>   s   $