3
PfE @ s@ d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlZyd dlZW n e k
rd d dl
ZY nX d dlZddlm
Z
ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. dd l/m0Z0m1Z1 dd
l2m3Z3m4Z4 ej5e6Z7ej8dZ9ej8dej:Z;ej8d
ZG dd deZ?G dd de@ZAG dd deAZBG dd deAZCG dd de@ZDG dd deAZEG dd deAZFG dd d eAZGG d!d" d"eAZHG d#d$ d$eAZIeIeG eEd%d&d'd(d)ZJeJjKZKej8d*ZLG d+d, d,e@ZMdS ). N)BytesIO )DistlibException)urljoinurlparse
urlunparseurl2pathnamepathname2urlqueuequoteunescapestring_typesbuild_openerHTTPRedirectHandler text_typeRequest HTTPErrorURLError)DistributionDistributionPath make_dist)Metadata) cached_propertyparse_credentialsensure_slashsplit_filenameget_project_dataparse_requirementparse_name_and_versionServerProxynormalize_name)
get_schemeUnsupportedVersionError)Wheel
is_compatiblez^(\w+)=([a-f0-9]+)z;\s*charset\s*=\s*(.*)\s*$ztext/html|application/x(ht)?mlzhttps://pypi.python.org/pypic C s | dkrt } t| dd}|j S )z
Return all distribution names known by an index.
:param url: The URL of the index.
:return: A list of all known distribution names.
Ng @)timeout)
DEFAULT_INDEXr
list_packages)urlclient r* /usr/lib/python3.6/locators.pyget_all_distribution_names) s r, 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 }xdD ]}||kr
|| }P q
W |d kr0d S t |}|jdkrpt|j |}t|drh|j|| n|||<