ó
'^c           @@  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 d  d l	 m
 Z
 m Z d  d l m Z m Z e j e  Z d e f d     YZ d	   Z d S(
   i    (   t   absolute_importN(   t   Command(   t   ERROR(   t   FAVORITE_HASHt   STRONG_HASHES(   t   read_chunkst   write_outputt   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         O@  sq   t  t |   j | |   |  j j d d d d d t d d d t d	 d
 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 %ss   , i    (
   t   superR   t   __init__t   cmd_optst
   add_optionR   R   t   joint   parsert   insert_option_group(   t   selft   argst   kw(    (    s8   /tmp/pip-build-eiI0Wo/pip/pip/_internal/commands/hash.pyR      s    		c         C@  sW   | s |  j  j t j  t S| j } x* | D]" } t d | | t | |   q- Wd  S(   Ns   %s:
--hash=%s:%s(   R   t   print_usaget   syst   stderrR   R	   R   t   _hash_of_file(   R   t   optionsR   R	   t   path(    (    s8   /tmp/pip-build-eiI0Wo/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-eiI0Wo/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-eiI0Wo/pip/pip/_internal/commands/hash.pyR   4   s
    (   t
   __future__R    R(   t   loggingR   t   pip._internal.cli.base_commandR   t   pip._internal.cli.status_codesR   t   pip._internal.utils.hashesR   R   t   pip._internal.utils.miscR   R   t	   getLoggerR    t   loggerR   R   (    (    (    s8   /tmp/pip-build-eiI0Wo/pip/pip/_internal/commands/hash.pyt   <module>   s   "