File: //opt/python38/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-38.pyc
U
�{�e� � @ s� d dl Z d dlmZmZmZmZmZmZ d dlm Z m
Z
mZ d dlm
Z
erdd dl mZ d dlmZ dZddd gZG d
d� d�ZG dd
� d
e�ZdS )� N)�
TYPE_CHECKING�BinaryIO�Dict�Iterable�List�Optional)�HashMismatch�HashMissing�InstallationError)�read_chunks)�_Hash)�NoReturn�sha256�sha384�sha512c @ s� e Zd ZdZd%eeeee f dd�dd�Zd d d�dd�Z e
ed �d
d��Zeee
d�d
d�Zee dd�dd�Zeedf dd�dd�Zedd�dd�Zedd�dd�Zeeef e
d�dd�Ze
d �dd �Zee
d�d!d"�Zed �d#d$�ZdS )&�HasheszaA wrapper that builds multiple hashes at once and checks them against
known-good values
N)�hashes�returnc C s4 i }|dk r*|� � D ]\}}t|�||<