File: //opt/python38/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/misc.cpython-38.pyc
U
�{�e�\ � @ sl d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZ
d dlmZ d dlmZ d dlmZmZmZ d dlmZ d dlmZmZ d dlmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d d l-m.Z. d d
l/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7 d d
l8m9Z9 d dl:m;Z; d dl<m=Z= dddddddddddddddgZ>e�?e@�ZAe(d�ZBe&e'eC eCef ZDe&eEeEeEf ZFe&eGe&e$eG e$eG f f ZHeeeeCgef ZIeeeeDgef ZJeGd �d!d"�ZKe&eEd#f e&eEeEeEf d$�d%d&�ZLeGdd'�d(d�ZMeGd �d)d�ZNe0d*e1d+�e2d,�d-�d�eGeOe$eI dd/�d0d��ZPedd1�d2d3�ZQedd1�d4d5�ZReRd6�eee)eDeCf eIdd7�d8d9�ZSeGeGd'�d:d�ZTd�eGeGeGd<�d=d�ZUeGe!eG eGd>�d?d@�ZVeGddA�dBdC�ZWeGe!eG eGd>�dDd�ZXeGeGdA�dEdF�ZYeGeGdA�dGdH�ZZeGeEdI�dJdK�Z[e\eGdL�dMd�Z]e!e!e e&e#eG e#eE f dN�dOdP�Z^eGeOd'�dQd�Z_ej`feeEe eaddf dR�dSdT�Zbd�eGeOeGdU�dVd�ZceGe&eGeGf d'�dWd�ZdeGeGddX�dYd�ZeeGeOd'�dZd[�Zfeedd\�d]d^�ZgG d_d`� d`e�Zhe jieGe ehddf da�dbdc��Zjeeh d �ddd�Zkeeh d �dedf�Zleee'e dg�dhdi�ZmeGe$eE eGdj�dkdl�Znd�eGeGeGdn�dodp�ZoeGe&e$eG e$eE f dq�drds�ZpeGeHdq�dtdu�ZqeGeGdq�dvdw�ZreGeeGge&ed#f f e&eGeHf dx�dydz�ZseGeHdq�d{d|�ZteGe&eG dq�d}d~�ZueGe&eGeGe&e$eG e$eG f f d�d�d��ZveGeGd�d�d�ZweGeGd�d�d��Zxe,eGd��d�d��ZyG d�d�� d��ZzeGezd��d�d��Z{eGezd�d�d��Z|eOdd��d�d��Z}dd �d�d�Z~eOd �d�d��Zd�eGeEe&eeEf d��d�d��Z�e!e e"e&eef d��d�d��Z�eeBgeOf e!eB e&e!eB e!eB f d��d�d��Z�G d�d� de.�Z�dS )�� N)�partial)�StringIO)�filterfalse�tee�zip_longest)�Path)�FunctionType�
TracebackType)�Any�BinaryIO�Callable�ContextManager�Dict� Generator�Iterable�Iterator�List�Optional�TextIO�Tuple�Type�TypeVar�Union�cast)�Requirement)�BuildBackendHookCaller)�retry�stop_after_delay�
wait_fixed)�__version__)�CommandError�ExternallyManagedEnvironment)�get_major_minor_version)�WINDOWS)�running_under_virtualenv�rmtree�display_path�
backup_dir�ask�splitext�format_size�is_installable_dir�normalize_path�renames�get_prog�captured_stdout�
ensure_dir�remove_auth_from_url�check_externally_managed� ConfiguredBuildBackendHookCaller�T��returnc C s4 t j�t j�t�dd�} t j�| �} d�t| t� �S )Nz..zpip {} from {} (python {})) �os�path�join�dirname�__file__�abspath�formatr r"