관리-도구
편집 파일: hashes.pyo
� ��abc @@ s� d d l m Z d d l Z d d l m Z m Z m Z d d l m Z d d l m Z m Z m Z d Z d d d g Z d e f d � � YZ d e f d � � YZ d S( i ( t absolute_importN( t HashMismatcht HashMissingt InstallationError( t read_chunks( t iteritemst iterkeyst itervaluest sha256t sha384t sha512t Hashesc B@ sP e Z d Z d d � Z d � Z d � Z d � Z d � Z d � Z d � Z RS( sa A wrapper that builds multiple hashes at once and checks them against known-good values c C@ s | d k r i n | | _ d S( so :param hashes: A dict of algorithm names pointing to lists of allowed hex digests N( t Nonet _allowed( t selft hashes( ( s4 /usr/lib/python2.7/site-packages/pip/utils/hashes.pyt __init__ s c C@ s� i } xX t | j � D]G } y t j | � | | <Wq t t f k r\ t d | � � q Xq Wx2 | D]* } x! t | � D] } | j | � q{ Wqh Wx7 t | � D]) \ } } | j � | j | k r� d Sq� W| j | � d S( s� Check good hashes against ones built from iterable of chunks of data. Raise HashMismatch if none match. s Unknown hash name: %sN( R R t hashlibt newt ValueErrort TypeErrorR R t updateR t hexdigestt _raise( R t chunkst gotst hash_namet chunkt hasht got( ( s4 /usr/lib/python2.7/site-packages/pip/utils/hashes.pyt check_against_chunks s c C@ s t | j | � � d S( N( R R ( R R ( ( s4 /usr/lib/python2.7/site-packages/pip/utils/hashes.pyR 7 s c C@ s | j t | � � S( sa Check good hashes against a file-like object Raise HashMismatch if none match. ( R R ( R t file( ( s4 /usr/lib/python2.7/site-packages/pip/utils/hashes.pyt check_against_file: s c C@ s) t | d � � } | j | � SWd QXd S( Nt rb( t openR ( R t pathR ( ( s4 /usr/lib/python2.7/site-packages/pip/utils/hashes.pyt check_against_pathB s c C@ s t | j � S( s, Return whether I know any known-good hashes.( t boolR ( R ( ( s4 /usr/lib/python2.7/site-packages/pip/utils/hashes.pyt __nonzero__F s c C@ s | j � S( N( R&