σ οRec @@ 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( ( s /builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/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 | |