403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.6/site-packages/setuptools/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.6/site-packages/setuptools/__pycache__/package_index.cpython-36.opt-2.pyc
3

��a���@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZ
ddlZddlZddlZddlmZddlZddlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-ej.d	�Z/ej.d
ej0�Z1ej.d�Z2ej.dej0�j3Z4d
j5�Z6ddddgZ7dZ8dZ9e9j:dj:ej;�ed�Z<dd�Z=dd�Z>dd�Z?d@dd�Z@dAdd�ZAdBdd�ZBdedfd d�ZCd!d"�ZDej.d#ej0�ZEeDd$d%��ZFGd&d'�d'�ZGGd(d)�d)eG�ZHGd*d�de�ZIej.d+�jJZKd,d-�ZLd.d/�ZMdCd0d1�ZNd2d3�ZOGd4d5�d5�ZPGd6d7�d7e
jQ�ZRejSjTfd8d9�ZUd:d;�ZVeNe8�eU�ZUd<d=�ZWd>d?�ZXdS)D�N)�wraps)�
CHECKOUT_DIST�Distribution�BINARY_DIST�normalize_path�SOURCE_DIST�Environment�find_distributions�	safe_name�safe_version�to_filename�Requirement�DEVELOP_DIST�EGG_DIST�
parse_version)�log)�DistutilsError)�	translate)�Wheel)�unique_everseenz^egg=([-A-Za-z0-9_.+!]+)$zhref\s*=\s*['"]?([^'"> ]+)z�<a href="([^"#]+)">([^<]+)</a>\n\s+\(<a (?:title="MD5 hash"\n\s+)href="[^?]+\?:action=show_md5&amp;digest=([0-9a-f]{32})">md5</a>\)z([-+.a-z0-9]{2,}):z.tar.gz .tar.bz2 .tar .zip .tgz�PackageIndex�distros_for_url�parse_bdist_wininst�interpret_distro_name�z<setuptools/{setuptools.__version__} Python-urllib/{py_major}z{}.{})Zpy_major�
setuptoolscCsBy
tj|�Stk
r<}ztd|f�|�WYdd}~XnXdS)Nz1Not a URL, existing file, or requirement spec: %r)r
�parse�
ValueErrorr)�spec�e�r �#/usr/lib/python3.6/package_index.py�parse_requirement_arg6s

r"cCs�|j�}d\}}}|jd�r�|jd�r8|dd�}d}nn|jdd�rb|dd�}|dd�}d}nD|jd	�r~|dd�}d}n(|jdd�r�|dd�}|dd�}d}|||fS)Nz.exez
.win32.exe�
�win32z	.win32-py���z.win-amd64.exe�z	win-amd64z
.win-amd64-py�)NNNi����i�i�������i�i�i��i����r*i��)�lower�endswith�
startswith)�namer+�base�py_verZplatr r r!r?s$



c	Csxtjj|�}|\}}}}}}tjj|jd�d�}|dkrX|dkrXtjj|jd�d�}d|krp|jdd�\}}||fS)	N�/�zsourceforge.net�download��#������)�urllibr�urlparse�unquote�split)	�url�parts�scheme�server�pathZ
parameters�query�fragmentr/r r r!�egg_info_for_urlWsrCccsdt|�\}}xt|||�D]
}|VqW|r`tj|�}|r`x$t||jd�|td�D]
}|VqRWdS)Nr2)�
precedence)rC�distros_for_location�EGG_FRAGMENT�matchr�groupr)r<�metadatar/rB�distrGr r r!rbs

cCs�|jd�r|dd	�}|jd�r8d|kr8tj|||�gS|jd�rxd|krxt|�}|j�s^gSt||j|jtdd�gS|jd�r�t|�\}}}|dk	r�t	||||t
|�Sx4tD],}|j|�r�|dt|��}t	|||�Sq�WgS)
Nz.egg.zipr'z.egg�-z.whlr2)�location�project_name�versionrDz.exer*)
r,rZ
from_locationrZ
is_compatiblerMrNrrrr�
EXTENSIONS�len)rL�basenamerIZwheelZwin_baser0�platformZextr r r!rEps.



rEcCstt|�tjj|�|�S)N)rEr�osr@rQ)�filenamerIr r r!�distros_for_filename�srUc
cs�|jd�}|r.tdd�|dd�D��r.dSxNtdt|�d�D]8}t||dj|d|��dj||d��|||d�VqBWdS)NrKcss|]}tjd|�VqdS)z	py\d\.\d$N)�rerG)�.0�pr r r!�	<genexpr>�sz(interpret_distro_name.<locals>.<genexpr>r4r2)�
py_versionrDrR)r;�any�rangerPr�join)rLrQrIrZrDrRr=rXr r r!r�s
 $cst���fdd��}|S)Ncst�||��S)N)r)�args�kwargs)�funcr r!�wrapper�szunique_values.<locals>.wrapper)r)r`rar )r`r!�
unique_values�srbz(<([^>]*\srel\s*=\s*['"]?([^'">]+)[^>]*)>ccs�xvtj|�D]h}|j�\}}tttj|j�jd���}d|ksFd|krx,t	j|�D]}t
jj|t
|jd���VqRWqWxHdD]@}|j|�}|dkr~t	j||�}|r~t
jj|t
|jd���Vq~WdS)	N�,Zhomepager3r2�
<th>Home Page�<th>Download URL)rdrer6)�REL�finditer�groups�set�map�str�stripr+r;�HREFr8r�urljoin�
htmldecoderH�find�search)r<�pagerG�tagZrelZrels�posr r r!�find_external_links�s"

ruc@s$eZdZdd�Zdd�Zdd�ZdS)�ContentCheckercCsdS)Nr )�self�blockr r r!�feed�szContentChecker.feedcCsdS)NTr )rwr r r!�is_valid�szContentChecker.is_validcCsdS)Nr )rw�reporter�templater r r!�report�szContentChecker.reportN)�__name__�
__module__�__qualname__ryrzr}r r r r!rv�srvc@sBeZdZejd�Zdd�Zedd��Zdd�Z	dd	�Z
d
d�ZdS)
�HashCheckerzK(?P<hash_name>sha1|sha224|sha384|sha256|sha512|md5)=(?P<expected>[a-f0-9]+)cCs||_tj|�|_||_dS)N)�	hash_name�hashlib�new�hash�expected)rwr�r�r r r!�__init__�szHashChecker.__init__cCs>tjj|�d}|st�S|jj|�}|s0t�S|f|j��S)Nr2r6)r8rr9rv�patternrq�	groupdict)�clsr<rBrGr r r!�from_urlszHashChecker.from_urlcCs|jj|�dS)N)r��update)rwrxr r r!ryszHashChecker.feedcCs|jj�|jkS)N)r�Z	hexdigestr�)rwr r r!rzszHashChecker.is_validcCs||j}||�S)N)r�)rwr{r|�msgr r r!r}s
zHashChecker.reportN)r~rr�rV�compiler�r��classmethodr�ryrzr}r r r r!r��sr�csLeZdZdNdd�Z�fdd�ZdOd
d�ZdPdd
�ZdQdd�Zdd�Zdd�Z	dd�Z
dd�Zdd�ZdRdd�Z
dd�ZdS�fdd�	Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�ZdTd*d+�ZdUd,d-�Zd.d/�Zd0Zd1d2�Zd3d4�ZdVd5d6�Zd7d8�Zd9d:�Zd;d<�Zd=d>�Zd?d@�Z e!dWdAdB��Z"dCdD�Z#dEdF�Z$dGdH�Z%dIdJ�Z&dKdL�Z'�Z(S)Xr�https://pypi.org/simple/�*NTcOsltj|f|�|�|dd|jd��|_i|_i|_i|_tjdj	t
t|���j|_
g|_tjj|_dS)Nr1�|)rr�r,�	index_url�scanned_urls�fetched_urls�
package_pagesrVr�r]rjrrG�allows�to_scanr8�request�urlopen�opener)rwr�ZhostsZ	ca_bundleZ
verify_sslr^�kwr r r!r�szPackageIndex.__init__cs0yt|j�Wntk
r"dSXt�j|�S)N)rrN�	Exception�super�add)rwrJ)�	__class__r r!r�)s
zPackageIndex.addFcCs�||jkr|rdSd|j|<t|�s4|j|�dStt|��}|r^|j|�sRdS|jd|�|sr|sr||jkr�tt|j	|��dS|j|�s�d|j|<dS|j
d|�d|j|<d}|j|||�}|dkr�dSt|t
jj�o�|jdk�r�|j
d|j�d|j|j<d|jjdd	�j�k�r.|j�dS|j}|j�}t|t��s|t|t
jj��r^d
}n|jjd��pnd
}|j|d�}|j�x6tj|�D](}	t
jj|t|	j d
���}
|j!|
��q�W|j"|j#��r�t$|dd�dk�r�|j%||�}dS)NTzFound link: %sz
Reading %sz<Download error on %s: %%s -- Some packages may not be found!i�zAuthentication error: %s�htmlzcontent-type�zlatin-1�charset�ignorer2�codei�)&r��
URL_SCHEME�process_filename�listr�url_ok�debugr�rjr��info�open_url�
isinstancer8�error�	HTTPErrorr�r�r<�headers�getr+�close�readrkZ	get_param�decodermrgrrnrorH�process_urlr-r��getattr�
process_index)rwr<Zretrieve�dists�tmpl�fr/rrr�rG�linkr r r!r�2sT





 zPackageIndex.process_urlcCs�tjj|�s|jd|�dStjj|�rd|rdtjj|�}x(tj|�D]}|jtjj||�d�qFWt	|�}|r�|j
d|�tt|j
|��dS)Nz
Not found: %sTz	Found: %s)rSr@�exists�warn�isdir�realpath�listdirr�r]rUr�r�rjr�)rw�fn�nestedr@�itemr�r r r!r�gszPackageIndex.process_filenamecCsbt|�}|o|jd�j�dk}|s8|jtjj|�d�r<dSd}|rRt||��n|j||�dS)Nr2�fileTzN
Note: Bypassing %s (disallowed host; see http://bit.ly/2hrImnY for details).
)	r�rHr+r�r8rr9rr�)rwr<Zfatal�s�is_filer�r r r!r�wszPackageIndex.url_okcCs2ttjj|�}dd�|D�}ttj|j|��dS)Ncss0|](}tj|�D]}|jd�r||fVqqdS)z	.egg-linkN)rSr�r,)rWr@�entryr r r!rY�sz.PackageIndex.scan_egg_links.<locals>.<genexpr>)�filterrSr@r�r��	itertools�starmap�
scan_egg_link)rwZsearch_path�dirsZ	egg_linksr r r!�scan_egg_links�szPackageIndex.scan_egg_linksc
Cs�ttjj||���}ttdttj|���}WdQRXt	|�dkrDdS|\}}x>t
tjj||��D](}tjj|f|��|_t|_
|j|�q`WdS)Nr4)�openrSr@r]r�r�rjrkrlrPr	rLrrDr�)rwr@r�Z	raw_lines�linesZegg_pathZ
setup_pathrJr r r!r��s zPackageIndex.scan_egg_linkcCs�d}|j|j�s|Stttjj|t|j�d�jd���}t|�dksRd|dkrV|St	|d�}t
|d�}d|jj|j
�i�|<t|�t|�fS)Nr1r4r5r2rT)NN)r-r�r�rjr8rr:rPr;r
rr��
setdefaultr+r)rwr�ZNO_MATCH_SENTINELr=�pkg�verr r r!�_scan�s"zPackageIndex._scanc	
Cs�xJtj|�D]<}y"|jtjj|t|jd����Wqtk
rFYqXqW|j|�\}}|sbdSxXt	||�D]J}t
|�\}}|jd�r�|r�|r�|d||f7}n
|j|�|j
|�qnWtjdd�|�S)Nr2r�z.pyz
#egg=%s-%scSsd|jddd�S)Nz<a href="%s#md5=%s">%s</a>r2�r4)rH)�mr r r!�<lambda>�sz,PackageIndex.process_index.<locals>.<lambda>)rmrgr�r8rrnrorHrrurCr,�need_version_info�scan_url�PYPI_MD5�sub)	rwr<rrrGr�r��new_urlr/�fragr r r!r��s""

zPackageIndex.process_indexcCs|jd|�dS)NzPPage at %s links to .py file(s) without version info; an index scan is required.)�scan_all)rwr<r r r!r��szPackageIndex.need_version_infocGs:|j|jkr*|r |j|f|��|jd�|j|j�dS)Nz6Scanning index of all packages (this may take a while))r�r�r�r�r�)rwr�r^r r r!r��szPackageIndex.scan_allcCs~|j|j|jd�|jj|j�s:|j|j|jd�|jj|j�sR|j|�x&t|jj|jf��D]}|j|�qhWdS)Nr1)	r�r��unsafe_namer�r��keyrM�not_found_in_indexr�)rw�requirementr<r r r!�
find_packages�s
zPackageIndex.find_packagescsR|j�|j|�x,||jD]}||kr.|S|jd||�qWtt|�j||�S)Nz%s does not match %s)�prescanr�r�r�r�r�obtain)rwr�Z	installerrJ)r�r r!r��s
zPackageIndex.obtaincCsL|j|jd|�|j�sH|j�tj|�td|jjtj	j
|�f��dS)NzValidating %%s checksum for %sz7%s validation failed for %s; possible download problem?)r}r�rzr�rS�unlinkrr�r.r@rQ)rw�checkerrT�tfpr r r!�
check_hash�s

zPackageIndex.check_hashcCsTxN|D]F}|jdks4t|�s4|jd�s4tt|��r@|j|�q|jj|�qWdS)Nzfile:)r�r�r-r�rr��append)rwZurlsr<r r r!�add_find_linkss



zPackageIndex.add_find_linkscCs"|jrtt|j|j��d|_dS)N)r�r�rjr�)rwr r r!r�szPackageIndex.prescancCs<||jr|jd}}n|jd}}|||j�|j�dS)Nz#Couldn't retrieve index page for %rz3Couldn't find index page for %r (maybe misspelled?))r�r�r�r�r�)rwr��methr�r r r!r�s
zPackageIndex.not_found_in_indexcCs~t|t�sjt|�}|rR|j|jd�||�}t|�\}}|jd�rN|j|||�}|Stj	j
|�rb|St|�}t|j
||�dd�S)Nr2z.pyrL)r�r
r��
_download_urlrHrCr,�	gen_setuprSr@r�r"r��fetch_distribution)rwr�tmpdirr>�foundr/rBr r r!r3#s

zPackageIndex.downloadc	s��jd|�i�d}d	�����fdd�	}|rH�j��j|�||�}|r`|dk	r`|||�}|dkr��jdk	rz�j�||�}|dkr�|r��j|�||�}|dkrˆjd�r�dp�d|�n�jd|�|j|jd�SdS)
NzSearching for %scs�|dkr�}x�||jD]t}|jtkrJ�rJ|�kr�jd|�d�|<q||ko`|jtkp`�}|r�j|j��}||_tj	j
|j�r|SqWdS)Nz&Skipping development or system egg: %sr2)r�rDrr�rr3rL�download_locationrSr@r�)Zreq�envrJZtest�loc)�
develop_okrw�skipped�sourcer�r r!rp]s z-PackageIndex.fetch_distribution.<locals>.findz:No local packages or working download links found for %s%sza source distribution of r�zBest match: %s)rL)N)r�r�r�r�r�Zcloner�)	rwr�r��
force_scanr�r�Zlocal_indexrJrpr )r�rwr�r�r�r!r�Es0




zPackageIndex.fetch_distributioncCs"|j||||�}|dk	r|jSdS)N)r�rL)rwr�r�r�r�rJr r r!�fetch�szPackageIndex.fetchc

Cs�tj|�}|r*dd�t||jd�d�D�p,g}t|�dkr�tjj|�}tjj|�|kr�tjj	||�}ddl
m}|||�s�tj
||�|}ttjj	|d�d��2}	|	jd|dj|djtjj|�df�WdQRX|S|r�td	||f��ntd
��dS)NcSsg|]}|jr|�qSr )rN)rW�dr r r!�
<listcomp>�sz*PackageIndex.gen_setup.<locals>.<listcomp>r2r)�samefilezsetup.py�wzIfrom setuptools import setup
setup(name=%r, version=%r, py_modules=[%r])
z�Can't unambiguously interpret project/version identifier %r; any dashes in the name or version should be escaped using underscores. %rzpCan't process plain .py files without an '#egg=name-version' suffix to enable automatic setup script generation.)rFrGrrHrPrSr@rQ�dirnamer]Zsetuptools.command.easy_installr��shutilZcopy2r��writerMrN�splitextr)
rwrTrBr�rGr�rQ�dstr�r�r r r!r��s2

 zPackageIndex.gen_setupi cCs|jd|�d}z�tj|�}|j|�}t|tjj�rJtd||j	|j
f��|j�}d}|j}d}d|kr�|jd�}	t
tt|	��}|j|||||�t|d��Z}
xD|j|�}|r�|j|�|
j|�|d7}|j|||||�q�Pq�W|j|||
�WdQRX|S|�r|j�XdS)	NzDownloading %szCan't download %s: %s %srr2zcontent-lengthzContent-Length�wbr6)r�r�r�r�r�r8r�r�rr�r��dl_blocksizeZget_all�maxrj�int�
reporthookr�r�ryr�r�r�)rwr<rT�fpr�r��blocknum�bs�sizeZsizesr�rxr r r!�_download_to�s:





zPackageIndex._download_tocCsdS)Nr )rwr<rTrZblksizer
r r r!r�szPackageIndex.reporthookcCs�|jd�rt|�Syt||j�Sttjjfk
r�}z@djdd�|j	D��}|r`|j
||�ntd||f�|�WYdd}~X�ntj
jk
r�}z|Sd}~Xn�tj
jk
r�}z.|r�|j
||j�ntd||jf�|�WYdd}~Xn�tjjk
�rB}z0|�r|j
||j�ntd||jf�|�WYdd}~XnTtjjtj
fk
�r�}z,|�rr|j
||�ntd||f�|�WYdd}~XnXdS)Nzfile:� cSsg|]}t|��qSr )rk)rW�argr r r!r��sz)PackageIndex.open_url.<locals>.<listcomp>z%s %szDownload error for %s: %sz;%s returned a bad status line. The server might be down, %s)r-�
local_open�open_with_authr�r�http�client�
InvalidURLr]r^r�rr8r�r�ZURLError�reasonZ
BadStatusLine�lineZ
HTTPException�socket)rwr<Zwarning�vr�r r r!r��s8
$ zPackageIndex.open_urlcCs�t|�\}}|r4x&d|kr0|jdd�jdd�}qWnd}|jd�rN|dd�}tjj||�}|dksn|jd	�rz|j||�S|d
ks�|jd�r�|j||�S|jd�r�|j	||�S|d
kr�t
jjt
j
j|�d�S|j|d�|j||�SdS)Nz..�.�\�_Z__downloaded__z.egg.zipr'Zsvnzsvn+Zgitzgit+zhg+r�r4Tr*)rC�replacer,rSr@r]r-�
_download_svn�
_download_git�_download_hgr8r��url2pathnamerr9r��_attempt_download)rwr>r<r�r.rBrTr r r!r�s$


zPackageIndex._download_urlcCs|j|d�dS)NT)r�)rwr<r r r!r�1szPackageIndex.scan_urlcCs6|j||�}d|jdd�j�kr.|j|||�S|SdS)Nr�zcontent-typer�)rr�r+�_download_html)rwr<rTr�r r r!r4szPackageIndex._attempt_downloadcCslt|�}x@|D]8}|j�rtjd|�rD|j�tj|�|j||�SPqW|j�tj|�td|��dS)Nz <title>([^- ]+ - )?Revision \d+:zUnexpected HTML page found at )	r�rlrVrqr�rSr�rr)rwr<r�rTr�rr r r!r ;s


zPackageIndex._download_htmlcCs
tjdt�|jdd�d}d}|j�jd�r�d|kr�tjj|�\}}}}}}	|r�|jd�r�d	|d
d�kr�|d
d�jd	d�\}}t	|�\}
}|
r�d|
kr�|
jdd�\}}
d||
f}nd
|
}|}||||||	f}tjj
|�}|jd||�tj
d|||f�|S)Nz"SVN download support is deprecatedr5r2rr�zsvn:�@z//r1r4�:z --username=%s --password=%sz --username=z'Doing subversion checkout from %s to %szsvn checkout%s -q %s %s)�warningsr��UserWarningr;r+r-r8rr9�
_splituser�
urlunparser�rS�system)rwr<rTZcredsr>�netlocr@rX�qr��auth�host�userZpwr=r r r!rJs& zPackageIndex._download_svncCsptjj|�\}}}}}|jdd�d}|jdd�d}d}d|krR|jdd�\}}tjj||||df�}||fS)N�+r2r5rr!r�r6)r8rZurlsplitr;�rsplitZ
urlunsplit)r<�
pop_prefixr>r(r@rAr��revr r r!�_vcs_split_rev_from_url`sz$PackageIndex._vcs_split_rev_from_urlcCsl|jdd�d}|j|dd�\}}|jd||�tjd||f�|dk	rh|jd|�tjd	||f�|S)
Nr5r2rT)r/zDoing git clone from %s to %szgit clone --quiet %s %szChecking out %szgit -C %s checkout --quiet %s)r;r1r�rSr')rwr<rTr0r r r!rrs
zPackageIndex._download_gitcCsl|jdd�d}|j|dd�\}}|jd||�tjd||f�|dk	rh|jd|�tjd	||f�|S)
Nr5r2rT)r/zDoing hg clone from %s to %szhg clone --quiet %s %szUpdating to %szhg --cwd %s up -C -r %s -q)r;r1r�rSr')rwr<rTr0r r r!r�s
zPackageIndex._download_hgcGstj|f|��dS)N)rr�)rwr�r^r r r!r��szPackageIndex.debugcGstj|f|��dS)N)rr�)rwr�r^r r r!r��szPackageIndex.infocGstj|f|��dS)N)rr�)rwr�r^r r r!r��szPackageIndex.warn�r�)r�r2NT)F)F)F)N)N)FFFN)FF)N)F))r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r3r�r�r�rrrr�r�r�rr r�staticmethodr1rrr�r�r��
__classcell__r r )r�r!rsN
	
5




		
#
J

)$
#z!&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?cCs|jd�}tj|�S)Nr)rHr�Zunescape)rGZwhatr r r!�
decode_entity�s
r5cCs
tt|�S)N)�
entity_subr5)�textr r r!ro�s	rocs�fdd�}|S)Ncs��fdd�}|S)Ncs.tj�}tj��z
�||�Stj|�XdS)N)rZgetdefaulttimeoutZsetdefaulttimeout)r^r_Zold_timeout)r`�timeoutr r!�_socket_timeout�s


z@socket_timeout.<locals>._socket_timeout.<locals>._socket_timeoutr )r`r9)r8)r`r!r9�sz'socket_timeout.<locals>._socket_timeoutr )r8r9r )r8r!�socket_timeout�sr:cCs2tjj|�}|j�}tj|�}|j�}|jdd�S)N�
r�)r8rr:�encode�base64Z	b64encoder�r)r*Zauth_sZ
auth_bytesZ
encoded_bytesZencodedr r r!�_encode_auth�s

r>c@s$eZdZdd�Zdd�Zdd�ZdS)�
CredentialcCs||_||_dS)N)�username�password)rwr@rAr r r!r��szCredential.__init__ccs|jV|jVdS)N)r@rA)rwr r r!�__iter__�szCredential.__iter__cCsdt|�S)Nz%(username)s:%(password)s)�vars)rwr r r!�__str__�szCredential.__str__N)r~rr�r�rBrDr r r r!r?�sr?c@s0eZdZdd�Zedd��Zdd�Zdd�Zd	S)
�
PyPIConfigcCsPtjdddgd�}tjj||�tjjtjjd�d�}tjj	|�rL|j
|�dS)Nr@rA�
repositoryr��~z.pypirc)�dict�fromkeys�configparser�RawConfigParserr�rSr@r]�
expanduserr�r�)rw�defaultsZrcr r r!r��s
zPyPIConfig.__init__cs&�fdd��j�D�}tt�j|��S)Ncs g|]}�j|d�j�r|�qS)rF)r�rl)rW�section)rwr r!r��sz2PyPIConfig.creds_by_repository.<locals>.<listcomp>)ZsectionsrHrj�_get_repo_cred)rwZsections_with_repositoriesr )rwr!�creds_by_repository�szPyPIConfig.creds_by_repositorycCs6|j|d�j�}|t|j|d�j�|j|d�j��fS)NrFr@rA)r�rlr?)rwrNZrepor r r!rO�szPyPIConfig._get_repo_credcCs*x$|jj�D]\}}|j|�r|SqWdS)N)rP�itemsr-)rwr<rF�credr r r!�find_credentials
zPyPIConfig.find_credentialN)r~rr�r��propertyrPrOrSr r r r!rE�s	rEcCs<tjj|�}|\}}}}}}|jd�r2tjjd��|d	krHt|�\}	}
nd}	|	s�t�j	|�}|r�t
|�}	|j|f}tj
d
|��|	r�dt|	�}	||
||||f}
tjj|
�}tjj|�}|jd|	�ntjj|�}|jdt�||�}|	�r8tjj|j�\}}}}}}||k�r8||
k�r8||||||f}
tjj|
�|_|S)Nr"znonnumeric port: ''r�https�*Authenticating as %s for %s (from .pypirc)zBasic Z
Authorizationz
User-Agent)rrU)rV)r8rr9r,rrrr%rErSrkr@rr�r>r&r�ZRequestZ
add_header�
user_agentr<)r<r�Zparsedr>r(r@�paramsrAr�r*ZaddressrRr�r=r�r�r�s2Zh2Zpath2Zparam2Zquery2Zfrag2r r r!r
s8

rcCs |jd�\}}}|r|nd|fS)Nr!)�
rpartition)r+r,Zdelimr r r!r%<sr%cCs|S)Nr )r<r r r!�
fix_sf_urlGsr[cCstjj|�\}}}}}}tjj|�}tjj|�r<tjj|�S|j	d�r�tjj
|�r�g}x�tj|�D]b}	tjj||	�}
|	dkr�t
|
d��}|j�}WdQRXPntjj
|
�r�|	d7}	|jdj|	d��qbWd}
|
j|dj|�d�}d\}}n
d\}}}ddi}tj|�}tjj|||||�S)Nr1z
index.html�rz<a href="{name}">{name}</a>)r.zB<html><head><title>{url}</title></head><body>{files}</body></html>r;)r<�files���OK��Path not found�	Not foundzcontent-typez	text/html)r^r_)r`rarb)r8rr9r�rrSr@�isfiler�r,r�r�r]r�r�r��format�io�StringIOr�r�)r<r>r?r@ZparamrAr�rTr]r��filepathrZbodyr��status�messager�Zbody_streamr r r!rKs,


r)N)N)N)r)Y�sysrSrVrer�rr=r�r�r#rJr�Zhttp.clientrZurllib.parser8Zurllib.requestZurllib.error�	functoolsrrZ
pkg_resourcesrrrrrrr	r
rrr
rrrZ	distutilsrZdistutils.errorsrZfnmatchrZsetuptools.wheelrZ setuptools.extern.more_itertoolsrr�rF�Irmr�rGr�r;rO�__all__Z_SOCKET_TIMEOUTZ_tmplrd�version_inforWr"rrCrrErUrrbrfrurvr�rr�r6r5ror:r>r?rKrEr�r�rr%r[rr r r r!�<module>s�@
	

!
!
!

&/

Youez - 2016 - github.com/yon3zu
LinuXploit