XylotrechusZ
U
��.e_� � @ sD d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlZzd dlZW n e k
rd d dl
ZY nX d dlZddlm
Z
ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ dd l0m1Z1m2Z2 dd
l3m4Z4m5Z5 e�6e7�Z8e�9d�Z:e�9dej;�Z<e�9d
�Z=dZ>d-dd�Z?G dd� de�Z@G dd� deA�ZBG dd� deB�ZCG dd� deB�ZDG dd� deA�ZEG dd� deB�ZFG dd� deB�ZGG dd � d eB�ZHG d!d"� d"eB�ZIG d#d$� d$eB�ZJeJeH� eFd%d&d'�d(d)�ZKeKjLZLe�9d*�ZMG d+d,� d,eA�ZNdS ).� N)�BytesIO� )�DistlibException)�urljoin�urlparse�
urlunparse�url2pathname�pathname2url�queue�quote�unescape�string_types�build_opener�HTTPRedirectHandler� text_type�Request� HTTPError�URLError)�Distribution�DistributionPath� make_dist)�Metadata�MetadataInvalidError) �cached_property�parse_credentials�ensure_slash�split_filename�get_project_data�parse_requirement�parse_name_and_version�ServerProxy�normalize_name)�
get_scheme�UnsupportedVersionError)�Wheel�
is_compatiblez^(\w+)=([a-f0-9]+)z;\s*charset\s*=\s*(.*)\s*$ztext/html|application/x(ht)?mlzhttps://pypi.org/pypic C s6 | dkrt } t| dd�}z|�� W �S |d�� X dS )z�
Return all distribution names known by an index.
:param url: The URL of the index.
:return: A list of all known distribution names.
N� @��timeout�close)�
DEFAULT_INDEXr �
list_packages)�url�client� r. �@/usr/lib/python3.8/site-packages/pip/_vendor/distlib/locators.py�get_all_distribution_names) s r0 c @ s$ e Zd ZdZdd� Ze Z ZZdS )�RedirectHandlerzE
A class to work around a bug in some Python 3.2.x releases.
c C s� d }dD ]}||kr|| } q"q|d kr.d S t |�}|jdkrnt|�� |�}t|d�rf|�||� n|||<