3 Pf]R @ s d dl Z d dlZd dlZd dlZd dlZd dlZyd dlmZ W n ek r` d dl mZ Y nX ddl mZ ddlm Z mZmZmZmZmZ ddlmZmZmZ ejeZdZdZG d d d eZdS ) N)Thread )DistlibException)HTTPBasicAuthHandlerRequestHTTPPasswordMgrurlparsebuild_openerstring_types)cached_propertyzip_dirServerProxyzhttps://pypi.python.org/pypipypic @ s e Zd ZdZdZd*ddZdd Zdd Zd d Zdd Z dd Z dd Zd+ddZd,ddZ d-ddZd.ddZdd Zd/ddZd0d d!Zd1d"d#Zd$d% Zd&d' Zd2d(d)ZdS )3PackageIndexzc This class represents a package index compatible with PyPI, the Python Package Index. s. ----------ThIs_Is_tHe_distlib_index_bouNdaRY_$Nc C s |pt | _| j t| j\}}}}}}|s<|s<|s<|dkrJtd| j d| _d| _d| _d| _d| _ t tjdR}xJdD ]B} y(t j| dg||d } | d kr| | _P W q| tk r Y q|X q|W W dQ R X dS ) z Initialise an instance. :param url: The URL of the index. If not specified, the URL for PyPI is used. httphttpszinvalid repository: %sNwgpggpg2z --version)stdoutstderrr )r r )r r ) DEFAULT_INDEXurlread_configurationr r password_handlerssl_verifierr gpg_home rpc_proxyopenosdevnull subprocessZ check_callOSError)selfr schemenetlocpathZparamsZqueryZfragZsinksrc r) /usr/lib/python3.6/index.py__init__$ s( zPackageIndex.__init__c C s&