�t�_F � @ 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 n d d l m Z d Z d d d g Z Gd d � d e � Z Gd d � d e � Z d S)� )�absolute_importN)� iteritems�iterkeys� itervalues)�HashMismatch�HashMissing�InstallationError)�read_chunks)�MYPY_CHECK_RUNNING)�Dict�List�BinaryIO�NoReturn�Iterator)�PY3)�_Hash)�_hash�sha256�sha384�sha512c @ s� e Z d Z d Z d d d � Z d d � Z e d d � � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d S)�HasheszaA wrapper that builds multiple hashes at once and checks them against known-good values Nc C s | d k r i n | | _ d S)zo :param hashes: A dict of algorithm names pointing to lists of allowed hex digests N)�_allowed)�self�hashes� r ��/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-1.el7.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/hashes.py�__init__) s zHashes.__init__c s� t | t � s t S| s � S� s'