Viewing File: /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyc
ó
“tÆ_c @@ s# d d l m Z d d l Z d d l m Z m Z m Z d d l m Z m Z m
Z
d d l m Z d d l
m Z e rÞ d d l m Z m Z m Z m Z m Z d d l m Z e rË d d l m Z qÞ d d
l m Z n d Z d d d
g Z d e f d „ ƒ YZ d e f d „ ƒ YZ d S( i ( t absolute_importN( t iteritemst iterkeyst
itervalues( t HashMismatcht HashMissingt InstallationError( t read_chunks( t MYPY_CHECK_RUNNING( t Dictt Listt BinaryIOt NoReturnt Iterator( t PY3( t _Hash( t _hasht sha256t sha384t sha512t Hashesc B@ sq e Z d Z d d „ Z d „ Z e d „ ƒ Z 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( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt __init__) s c C@ sœ t | t ƒ s t S| s | S| s' | Si } xb t | j ƒ D]Q \ } } | | j k r^ q= n g | D] } | | j | k re | ^ qe | | <q= Wt | ƒ S( N( t
isinstanceR t NotImplementedR R ( R t othert newt algt valuest v( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt __and__1 s 4c C@ s t d „ | j j ƒ Dƒ ƒ S( Nc s@ s | ] } t | ƒ Vq d S( N( t len( t .0t digests( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pys <genexpr>H s ( t sumR R ( R ( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt digest_countE s c C@ s | | j j | g ƒ k S( s/ Return whether the given hex digest is allowed.( R t get( R t hash_namet
hex_digest( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt is_hash_allowedJ s c C@ sæ i } x] t | j ƒ D]L } y t j | ƒ | | <Wq t t f k
ra t d j | ƒ ƒ ‚ q Xq Wx2 | D]* } x! t | ƒ D] } | j | ƒ q€ Wqm 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: {}N(
R R t hashlibR t
ValueErrort TypeErrorR t formatR t updateR t hexdigestt _raise( R t chunkst gotsR( t chunkt hasht got( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt check_against_chunksS s
c C@ s t | j | ƒ ‚ d S( N( R R ( R R3 ( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyR1 m s c C@ s | j t | ƒ ƒ S( sa Check good hashes against a file-like object
Raise HashMismatch if none match.
( R7 R ( R t file( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt check_against_fileq s c C@ s) t | d ƒ } | j | ƒ SWd QXd S( Nt rb( t openR9 ( R t pathR8 ( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt check_against_pathz s c C@ s
t | j ƒ S( s, Return whether I know any known-good hashes.( t boolR ( R ( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt __nonzero__ s c C@ s
| j ƒ S( N( R? ( R ( ( sK /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.pyt __bool__„ s N( t __name__t
__module__t __doc__R R R! t propertyR&