403Webshell
Server IP : 74.208.236.16  /  Your IP : 216.73.216.220
Web Server : Apache
System : Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User : u102440577 ( 7172810)
PHP Version : 8.4.26
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /kunden/lib/python3/dist-packages/setuptools/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /kunden/lib/python3/dist-packages/setuptools/__pycache__/package_index.cpython-313.pyc
�

�hk���~�SrSSKJr SSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJr SSKJr SSKJr SSKrSSKJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r, SS	K-J.r. S
SK/J0r0J1r1 SSK2J3r3 SS
K4J5r5 \Rl"S5r7\Rl"S\Rp5r9\Rl"S5r:\Rl"S\Rp5Rvr<SR{5r>/SQr?Sr@S\R�S\R�R�S\R�R�3rESrFSrGSrHS5SjrIS5SjrJS5SjrKS\#S4SjrLSrM\Rl"S \Rp5rN\MS!5rO"S"S#5rP"S$S%\P5rQ"S&S'\%5rR\Rl"S(5R�rTS)rUS*rVS6S+jrWS,rX"S-S.\5rY"S/S0\R�5r[\R�R�4S1jr^S2r_\W"\@5"\^5r^S3r`S4rag)7z$PyPI and direct package downloading.�)�annotationsN)�	translate��wraps)�
NamedTuple��unique_everseen)�BINARY_DIST�
CHECKOUT_DIST�DEVELOP_DIST�EGG_DIST�SOURCE_DIST�Distribution�Environment�Requirement�find_distributions�normalize_path�
parse_version�	safe_name�safe_version�to_filename)�Wheel�)�_cfg_read_utf8_with_fallback�_read_utf8_with_fallback)�log)�DistutilsErrorz^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�zsetuptools/z Python-urllib/�.c�t�[R"U5$![an[SU<35UeSnAff=f)Nz/Not a URL, existing file, or requirement spec: )r�parse�
ValueErrorr)�spec�es  �:/usr/lib/python3/dist-packages/setuptools/package_index.py�parse_requirement_argr*HsB���� � ��&�&�����=�d�X�F�
��	���s��
7�2�7c�f�UR5nSup#nURS5(a�URS5(aUSSnSnOeURSS5(a
US	S
nUSSnSnOAURS5(aUSSnS
nO#URSS5(aUS	S
nUSSnS
nX#U4$)z=Return (base,pyversion) or (None,None) for possible .exe name)NNN�.exez
.win32.exeNi�����win32z	.win32-pyi�i�������z.win-amd64.exei�z	win-amd64z
.win-amd64-pyi��)�lower�endswith�
startswith)�namer/�base�py_ver�plats     r)r r Qs���
�J�J�L�E�)��D�$��~�~�f����>�>�,�'�'����:�D��D�
�
�
�k�3�
/�
/��"�R�[�F����:�D��D�
�^�^�,�
-�
-����:�D��D�
�
�
�o�s�
3�
3��"�R�[�F����:�D��D�����c�b�[RRU5nUup#pEpg[RRUR	S5S5nUS:Xa7US:Xa1[RRUR	S5S5nSU;aUR	SS5up�X�4$)N�/���zsourceforge.net�download����#r)�urllibr%�urlparse�unquote�split)	�url�parts�_scheme�server�path�_parameters�_query�fragmentr3s	         r)�egg_info_for_urlrIis����L�L�!�!�#�&�E�;@�8�G�T���<�<����
�
�3��� 3�4�D�
�"�"�t�z�'9��|�|�#�#�D�J�J�s�O�B�$7�8��
�d�{����C��+����>�r6c#��# �[U5up#[XU5Shv�N U(aD[RU5nU(a'[	XRS5U[S9Shv�N gggNPN	7f)zEYield egg or source distribution objects that might be found at a URLNr)�
precedence)rI�distros_for_location�EGG_FRAGMENT�matchr!�groupr)rA�metadatar3rHrNs     r)rrtsl���%�c�*�N�D�#�C�x�8�8�8���"�"�8�,���,��[�[��^�X�-��
�
���9�
�s"�A4�A0�AA4�(A2�)A4�2A4c�b�URS5(aUSSnURS5(aSU;a[R"XU5/$URS5(aPSU;aJ[U5nUR	5(d/$[UUR
UR[S-S9/$URS	5(a#[U5upEnUb[XX%[U5$[H6nURU5(dMUS[U5*n[XU5s $ /$)
z:Yield egg or source distribution objects based on basenamez.egg.zipNr.�.egg�-z.whlr)�location�project_name�versionrKr,)
r0r�
from_locationr�
is_compatiblerUrVr
r r!r
�
EXTENSIONS�len)rT�basenamerP�wheel�win_baser4�platform�exts        r)rLrL�s,������$�$��C�R�=������ � �S�H�_��*�*�8�x�H�I�I����� � �S�H�_��h����"�"�$�$��I��!�"�/�/��
�
�#�a�<�
�
�	
����� � �%8��%B�"��(���(��H�k�8��
�
�����S�!�!���3�s�8�)�,�H�(��X�F�F���Ir6c�h�[[U5[RR	U5U5$)zEYield possible egg or source distribution objects based on a filename)rLr�osrEr[)�filenamerPs  r)�distros_for_filenamerc�s*����x� �"�'�'�"2�"2�8�"<�h��r6c
#�^# �URS5nU(d[SUSS55(ag[[U55HnXgSSR	5(dM O
 [U5n[UUSR
USU5SR
XgS5UUUS9v� g7f)z�Generate the interpretation of a source distro name

Note: if `location` is a filesystem filename, you should call
``pkg_resources.normalize_path()`` on it before passing it to this
routine!
rSc3�P# �UHn[R"SU5v� M g7f)z	py\d\.\d$N)�rerN)�.0�ps  r)�	<genexpr>�(interpret_distro_name.<locals>.<genexpr>�s���K��A�b�h�h�|�Q�7�7��s�$&�Nr)�
py_versionrKr^)r@�any�rangerZ�isdigitr�join)rTr[rPrlrKr^rBrhs        r)r!r!�s����
�N�N�3��E��#�K��q�r��K�K�K���3�u�:�
���8�B�Q�<���!�!���
��J��
�������r��������r��������s
�A#B-�)AB-c�0^�[T5U4Sj5nU$)zg
Wrap a function returning an iterable such that the resulting iterable
only ever yields unique items.
c�&>�[T"U0UD65$�Nr)�args�kwargs�funcs  �r)�wrapper�unique_values.<locals>.wrapper�s����t�T�4�V�4�5�5r6r)rvrws` r)�
unique_valuesry�s"����4�[�6��6��Nr6z3<([^>]*\srel\s{0,10}=\s{0,10}['"]?([^'" >]+)[^>]*)>c
#�# �[RU5H�nUR5up4[[	[
RUR5RS555nSU;dSU;dMc[RU5H=n[RRU[URS555v� M? M� SHtnURU5nUS:wdM[R!X5nU(dM:[RRU[URS555v� Mv g7f)zEFind rel="homepage" and rel="download" links in `page`, yielding URLs�,�homepager:r)z
<th>Home Pagez<th>Download URLr9N)�REL�finditer�groups�set�map�str�stripr/r@�HREFr=r%�urljoin�
htmldecoderO�find�search)rA�pagerN�tag�rel�rels�poss       r)�find_external_linksr��s�������d�#���<�<�>����3�s�y�y�#�)�)�+�"3�"3�C�"8�9�:������t�!3����s�+���l�l�*�*�3�
�5�;�;�q�>�0J�K�K�,�	$�5���i�i��n���"�9��K�K��*�E��u��l�l�*�*�3�
�5�;�;�q�>�0J�K�K�5�s�A5E�;A4E�3E�?Ec�*�\rSrSrSrSrSrSrSrg)�ContentChecker��zH
A null content checker that defines the interface for checking content
c��g)z#
Feed a block of data to the hash.
N���self�blocks  r)�feed�ContentChecker.feed�s��	r6c��g)z3
Check the hash. Return False if validation fails.
Tr��r�s r)�is_valid�ContentChecker.is_valid�s��r6c��g)z]
Call reporter with information about the checker (hash name)
substituted into the template.
Nr�)r��reporter�templates   r)�report�ContentChecker.reports��
	r6r�N)	�__name__�
__module__�__qualname__�__firstlineno__�__doc__r�r�r��__static_attributes__r�r6r)r�r��s�����r6r�c�d�\rSrSr\R
"S5rS
Sjr\S5r	Sr
SrSrSr
g	)�HashCheckerizK(?P<hash_name>sha1|sha224|sha384|sha256|sha512|md5)=(?P<expected>[a-f0-9]+)c�R�Xl[R"U5UlX lgrs)�	hash_name�hashlib�new�hash�expected)r�r�r�s   r)�__init__�HashChecker.__init__s��"���K�K�	�*��	� �
r6c���[RRU5SnU(d
[5$URRU5nU(d
[5$U"S0UR
5D6$)z5Construct a (possibly null) ContentChecker from a URLr9r�)r=r%r>r��patternr��	groupdict)�clsrArHrNs    r)�from_url�HashChecker.from_urls^���<�<�(�(��-�b�1���!�#�#����"�"�8�,���!�#�#��'�U�_�_�&�'�'r6c�:�URRU5 grs)r��updater�s  r)r��HashChecker.feed!s���	�	����r6c�P�URR5UR:H$rs)r��	hexdigestr�r�s r)r��HashChecker.is_valid$s���y�y�"�"�$��
�
�5�5r6c�.�X R-nU"U5$rs)r�)r�r�r��msgs    r)r��HashChecker.report's�����'����}�r6)r�r�r�N��return�None)r�r�r�r�rf�compiler�r��classmethodr�r�r�r�r�r�r6r)r�r�s=���j�j�	#��G�
!�
�(��(� �6�r6r�c��^�\rSrSrSrS*S+U4SjjjrU4SjrS,S-SjjrS,S.SjjrS,S/Sjjr	S0Sjr
S0S	jrS
rSr
S0SjrS1S0S
jjrS0SjrS1U4SjjrS0SjrS0SjrSrS0SjrSrS2S3SjjrS4S5SjjrSrSrSrS0SjrS1Sjr\S5r\ S5r!Sr"\S5r#S r$S!r%S0S"jr&S#r'S$r(\S%5r)S0S&jr*S0S'jr+S0S(jr,S)r-U=r.$)6ri,z;A distribution index that scans web pages for download URLsc�b>�[TU]"U0UD6 USSURS5(+-Ul0Ul0Ul0Ul[R"SR[[U555RUl
/Ul[R R"Ulg)Nr8�|)�superr�r0�	index_url�scanned_urls�fetched_urls�
package_pagesrfr�rpr�rrN�allows�to_scanr=�request�urlopen�opener)r�r��hosts�	ca_bundle�
verify_sslrt�kw�	__class__s       �r)r��PackageIndex.__init__/s����	���$�%�"�%�"�S�)F�y�/A�/A�#�/F�+F�%G�G���"$���"$���#%����j�j����#�i��*?�!@�A�G�G�������n�n�,�,��r6c�n>�[UR5 [TU]U5$![a gf=frs)rrV�	Exceptionr��add)r��distr�s  �r)r��PackageIndex.addAs9���	��$�,�,�'��w�{�4� � ���	��	�s�'�
4�4c	�N�XR;aU(dgSURU'[U5(dURU5 g[[	U55nU(a)URU5(dgUR
SU5 U(dU(aXR;a [[URU55 gURU5(dSURU'gURSU5 SURU'SnURXU-5nUcg[U[RR5(a.UR S:XaURSUR"35 SURUR$'SUR&R)S	S
5R+5;aUR-5 gUR$nUR/5n[U[05(db[U[RR5(aSnO$UR&R3S5=(d SnUR5US
5nUR-5 [6R9U5HLn	[R:R=U[?U	RAS555n
URCU
5 MN UREURF5(a$[IUSS5S:waURKX5nggg)z<Evaluate a URL as a possible download, and maybe retrieve itNTzFound link: %sz
Reading %sz<Download error on %s: %%s -- Some packages may not be found!i�zAuthentication error: �html�content-type�zlatin-1�charset�ignorer�code�)&r��
URL_SCHEME�process_filename�listr�url_ok�debugr�r�r��info�open_url�
isinstancer=�error�	HTTPErrorr�r�rA�headers�getr/�close�readr��	get_param�decoder�r~r%r�r�rO�process_urlr1r��getattr�
process_index)r�rA�retrieve�dists�tmpl�fr3r�r�rN�links           r)r��PackageIndex.process_urlJs_���#�#�#�H��!%����#���#����!�!�#�&�����-�.�E���{�{�3�'�'���
�
�+�S�1���C�+<�+<�$<���T�X�X�u�%�&���{�{�3���%)�D���c�"���	�	�,��$�!%����#��M���M�M�#�c�z�*���9���a����/�/�0�0�Q�V�V�s�]��I�I�.�q�u�u�g�6�7�#'����!�%�%� �������~�r�:�@�@�B�B�
�G�G�I���u�u���v�v�x���$��$�$��!�V�\�\�3�3�4�4�#���)�)�-�-�i�8�E�I���;�;�w��1�D�	���	��]�]�4�(�E��<�<�'�'��j����Q��.H�I�D����T�"�)��>�>�$�.�.�)�)�g�a���.F�#�.M��%�%�c�0�D�/N�)r6c�&�[RRU5(dURSU5 g[RR	U5(arU(dk[RRU5n[R"U5H2nUR[RRX45S5 M4 [U5nU(a2URSU5 [[URU55 gg)Nz
Not found: %sTz	Found: %s)rarE�exists�warn�isdir�realpath�listdirr�rprcr�r�r�r�)r��fn�nestedrE�itemr�s      r)r��PackageIndex.process_filenames����w�w�~�~�b�!�!��I�I�o�r�*��
�7�7�=�=����V��7�7�#�#�B�'�D��
�
�4�(���%�%�b�g�g�l�l�4�&>��E�)�%�R�(����J�J�{�B�'���T�X�X�u�%�&�r6c�:�[U5nU=(a" URS5R5S:HnU(d6UR[R
R
U5S5(agSnU(a
[XQ-5eURXQ5 g)Nr�fileTz�
Note: Bypassing %s (disallowed host; see https://setuptools.pypa.io/en/latest/deprecated/easy_install.html#restricting-downloads-with-allow-hosts for details).
F)	r�rOr/r�r=r%r>rr)r�rA�fatal�s�is_filer�s      r)r��PackageIndex.url_ok�s���s�O���4�����
�(�(�*�f�4���d�k�k�&�,�,�"7�"7��"<�Q�"?�@�@��
W�	�
� ���+�+��I�I�c��r6c��[[RRU5nSU5n[	[
R"URU55 g)Nc3�# �UH>n[R"U5H nURS5(dMX4v� M" M@ g7f)z	.egg-linkN)rarr0)rgrE�entrys   r)ri�.PackageIndex.scan_egg_links.<locals>.<genexpr>�s=���
������D�)���~�~�k�*�
�T�M�)�
��s
�4A�A)�filterrarErr��	itertools�starmap�
scan_egg_link)r��search_path�dirs�	egg_linkss    r)�scan_egg_links�PackageIndex.scan_egg_links�sB���b�g�g�m�m�[�1��
��
�	�	
�Y�
�
�t�1�1�9�
=�>r6c
���[[RRX55n[	[S[
[RUR5555n[U5S:wagUupV[[RRX55HEn[RR"U/UQ76Ul[UlURU5 MG g)Nrk)rrarErpr�rr�r�r��
splitlinesrZrrTrrKr�)r�rEr�content�lines�egg_path�_setup_pathr�s        r)r�PackageIndex.scan_egg_link�s���*�2�7�7�<�<��+D�E���V�D�#�c�i�i��1C�1C�1E�"F�G�H���u�:��?�� %���&�r�w�w�|�|�D�'C�D�D��G�G�L�L��6��6�D�M�)�D�O��H�H�T�N�Er6c	���SnURUR5(dU$[[[R
RU[UR5SRS555n[U5S:wd	SUS;aU$[US5n[US5nSURRUR505U'[U5[U54$)N�NNr8rkr<rrT)r1r�r�r�r=r%r?rZr@rrr��
setdefaultr/r)r�r��NO_MATCH_SENTINELrB�pkg�vers      r)�_scan�PackageIndex._scan�s���&�����t�~�~�.�.�$�$��S����-�-�t�C����4G�4I�/J�/P�/P�QT�/U�V�W���u�:��?�c�U�1�X�o�$�$���a��!���5��8�$��?C����%�%�c�i�i�k�2�6�t�<��3���S�!1�1�1r6c�2�[RU5HKnUR[RRU[
URS5555 MM URU5upEU(dg[X5Hbn[U5upxURS5(a+U(d$U(aUSUSU3-
nOURU5 URU5 Md [RSU5$![a M�f=f)z#Process the contents of a PyPI pagerr��.pyz#egg=rSc�B�SR"URSSS56$)Nz<a href="{}#md5={}">{}</a>r�rk)�formatrO)�ms r)�<lambda>�,PackageIndex.process_index.<locals>.<lambda>�s��2�9�9�1�7�7�1�a��;K�Lr6)r�r~r)r=r%r�r�rOr&r�rIr0�need_version_info�scan_url�PYPI_MD5�sub)	r�rAr�rNr'r(�new_urlr3�frags	         r)r��PackageIndex.process_index�s����]�]�4�(�E�
��
�
�6�<�<�/�/��Z����A��5O�P�Q�)��:�:�c�?�����+�3�5�G�)�'�2�J�D��}�}�U�#�#�D����s�e�1�S�E�2�2�G��*�*�3�/��M�M�'�"�6��|�|�L�d�
�	
��%�
��
�s�AD�
D�Dc�(�URSU5 g)NzPPage at %s links to .py file(s) without version info; an index scan is required.)�scan_all�r�rAs  r)r3�PackageIndex.need_version_info�s���
�
�
 ��	
r6c���URUR;a+U(aUR"U/UQ76 URS5 UR	UR5 g)Nz6Scanning index of all packages (this may take a while))r�r�rr�r4�r�r�rts   r)r;�PackageIndex.scan_all�sE���>�>��!2�!2�2���	�	�#�%��%��I�I�N�O��
�
�d�n�n�%r6c��URURUR-S-5 URR	UR
5(d+URURUR-S-5 URR	UR
5(dURU5 [URR	UR
S55HnURU5 M g)Nr8r�)	r4r��unsafe_namer�r��keyrU�not_found_in_indexr�)r��requirementrAs   r)�
find_packages�PackageIndex.find_packages�s����
�
�d�n�n�{�'>�'>�>��D�E��!�!�%�%�k�o�o�6�6��M�M�$�.�.�;�+C�+C�C�c�I�J��!�!�%�%�k�o�o�6�6��#�#�K�0���*�*�.�.�{����C�D�C��M�M�#��Er6c��>�UR5 URU5 XRHnX1;aUs $URSX5 M  [TU]X5$)Nz%s does not match %s)�prescanrFrCr�r��obtain)r�rE�	installerr�r�s    �r)rJ�PackageIndex.obtainsV����������;�'����)�D��"����J�J�-�{�A�*��w�~�k�5�5r6c�<�URURSU35 UR5(dhUR5 [R
"U5 [
URRS[RRU5S35eg)z
checker is a ContentChecker
zValidating %s checksum for z validation failed for z; possible download problem?N)r�r�r�r�ra�unlinkrr�r2rEr[)r��checkerrb�tfps    r)�
check_hash�PackageIndex.check_hashs���	���t�z�z�%@��
�#K�L����!�!��I�I�K��I�I�h�� ��<�<�$�$�%�%<�R�W�W�=M�=M�h�=W�<X�Y-�-��
�"r6c�
�UH}nURb?[U5(a/URS5(d[[	U55(aURU5 MbURR
U5 M g)z;Add `urls` to the list that will be prescanned for searchesN�file:)r�r�r1r�rr4�append)r��urlsrAs   r)�add_find_links�PackageIndex.add_find_linkss`���C����$�!�#����>�>�'�*�*����,�-�-��
�
�c�"����#�#�C�(�r6c��UR(a)[[URUR55 SUlg)z7Scan urls scheduled for prescanning (e.g. --find-links)N)r�r�r�r4r�s r)rI�PackageIndex.prescan(s'���<�<���T�]�]�D�L�L�1�2���r6c��XR(aURSp2O
URSp2U"X1R5 UR	5 g)Nz#Couldn't retrieve index page for %rz3Couldn't find index page for %r (maybe misspelled?))rCr�rrBr;)r�rE�methr�s    r)rD�PackageIndex.not_found_in_index.s;����� ��	�	�#H�#��	�	�#X�#��S�)�)�*��
�
�r6c�z�[U[5(d�[U5nU(aHURX5n[	U5upVURS5(aUR
XFU5nU$[RRU5(aU$[U5n[URX5SS5$)a�Locate and/or download `spec` to `tmpdir`, returning a local path

`spec` may be a ``Requirement`` object, or a string containing a URL,
an existing local filename, or a project/version requirement spec
(i.e. the string form of a ``Requirement`` object).  If it is the URL
of a .py file with an unambiguous ``#egg=name-version`` tag (i.e., one
that escapes ``-`` as ``_`` throughout), a trivial ``setup.py`` is
automatically created alongside the downloaded file.

If `spec` is a ``Requirement`` object or a string containing a
project/version requirement spec, this method returns the location of
a matching distribution (possibly after downloading it to `tmpdir`).
If `spec` is a locally existing file or directory name, it is simply
returned unchanged.  If `spec` is a URL, it is downloaded to a subpath
of `tmpdir`, and the local filename is returned.  Various errors may be
raised if a problem occurs during downloading.
r,rTN)
r�rr��
_download_urlrIr0�	gen_setuprarErr*r��fetch_distribution)r�r'�tmpdir�scheme�foundr3rHs       r)r:�PackageIndex.download6s���$�$��,�,���%�F���*�*�4�8��!1�$�!7����=�=��'�'� �N�N�5�F�C�E���������%�%���,�T�2���t�.�.�t�<�j�$�O�Or6c�&^^^^^	�TRSU5 [5m	SnS	S
UUU	UU4SjjjnU(a)TR5 TRU5 U"U5nU(dUbU"X5nUc%TRbTR5 U"U5nUc U(dTRU5 U"U5nUc&TRST=(a S=(d SU5 gTRSU5 UR
URS9$)aObtain a distribution suitable for fulfilling `requirement`

`requirement` must be a ``pkg_resources.Requirement`` instance.
If necessary, or if the `force_scan` flag is set, the requirement is
searched for in the (online) package index as well as the locally
installed packages.  If a distribution matching `requirement` is found,
the returned distribution's ``location`` is the value you would have
gotten from calling the ``download()`` method with the matching
distribution's URL or filename.  If no matching distribution is found,
``None`` is returned.

If the `source` flag is set, only source distributions and source
checkout links will be considered.  Unless the `develop_ok` flag is
set, development and system eggs (i.e., those using the ``.egg-info``
format) will be ignored.
zSearching for %sNc��>�UcTnXRH�nUR[:Xa2T(d+UT;a#TRSU5 TR	U5 MIX ;=(a! UR[
:*=(d T(+nU(dM~TR
URT	5nXBl[RRUR5(dM�Us $ g)Nz&Skipping development or system egg: %s)rCrKrrr�rr:rT�download_locationrarEr)
�req�envr��test�loc�
develop_okr��skipped�sourcerbs
     �����r)r��-PackageIndex.fetch_distribution.<locals>.findvs�����{����G�G����?�?�l�2�:��7�*��	�	�D� �� ���D�)���{�U����;�(F�(T�f�*���4��-�-��
�
�v�>�C�-0�*��w�w�~�~�d�&<�&<�=�=�#��%�"r6z:No local packages or working download links found for %s%sza source distribution of r�zBest match: %s)rTrs)rjzEnvironment | None)r�r�rIrFr�r�clonerh)
r�rErb�
force_scanrorm�local_indexr�r�rns
` ` ``   @r)ra�PackageIndex.fetch_distributionXs����4	
�	�	�$�k�2��%����	�	�0��L�L�N����{�+���$�D���/���1�D��<��|�|�'�������$�D��<�
����{�+���$�D��<��I�I�L��7�7�=�2��
�
��I�I�&��-��:�:�t�'=�'=�:�>�>r6c�F�URXX45nUbUR$g)aObtain a file suitable for fulfilling `requirement`

DEPRECATED; use the ``fetch_distribution()`` method now instead.  For
backward compatibility, this routine is identical but returns the
``location`` of the downloaded distribution instead of a distribution
object.
N)rarT)r�rErbrrror�s      r)�fetch�PackageIndex.fetch�s)���&�&�{�J�O�����=�=� �r6c��[RU5nU=(a? [XRS5S5Vs/sHnUR(dMUPM sn=(d /n[U5S:XGaM[RRU5n[RRU5U:wa[RRX75n[RRU5(a$[RRX5(d[R"X5 Un[[RRUS5SSS9n	U	R!SUSR"<SUSR<S	[RR%U5S<S
35 SSS5 U$U(a['SU<SU<35e['S
5es snf!,(df   U$=f)Nrzsetup.py�wzutf-8)�encodingz(from setuptools import setup
setup(name=rz
, version=z, py_modules=[z])
z9Can't unambiguously interpret project/version identifier zI; any dashes in the name or version should be escaped using underscores. zpCan't process plain .py files without an '#egg=name-version' suffix to enable automatic setup script generation.)rMrNr!rOrVrZrarEr[�dirnamerpr�samefile�shutil�copy2�open�writerU�splitextr)
r�rbrHrbrN�dr�r[�dstr
s
          r)r`�PackageIndex.gen_setup�s����"�"�8�,���
�/�x���Q���N��N�A��9�9��N��
��	��u�:��?��w�w�'�'��1�H��w�w���x�(�F�2��g�g�l�l�6�4�������s�+�+����0@�0@��0O�0O��L�L��/�"�H��b�g�g�l�l�6�:�6��g�N�RV��
�
�"�"'��(�"7�"7�!:�*�U�1�X�EU�EU�DX�Xf�gi�gn�gn�gw�gw�yA�hB�CD�hE�gH�HL�M��O�
�O�
� �K�H�<�X � %�y�*��
�!�G��
��A�$O�N�
�O�s�G)�G)�!AG.�.
G=i c�l�URSU5 Sn[RU5nURU5n[	U[
RR5(a([SUSURSUR35eUR5nSnURnSnSU;a=URS5n	[[[U	55nUR!XXgU5 [#US	5n
UR%U5nU(a;UR'U5 U
R)U5 US
-
nUR!XXgU5 OOMVUR+XBU
5 SSS5 UU(aUR-5 $$!,(df   N(=f!U(aUR-5 ff=f)NzDownloading %szCan't download �: � rr9zcontent-lengthzContent-Length�wbr)r�r�r�r�r�r=r�r�rr�r��dl_blocksize�get_all�maxr��int�
reporthookrr�r�r�rQr�)r�rArb�fprOr��blocknum�bs�size�sizesrPr�s            r)�_download_to�PackageIndex._download_to�sm���	�	�"�C�(�
��	�!�*�*�3�/�G����s�#�B��"�f�l�l�4�4�5�5�$��s�e�2�b�g�g�Y�a����x�%P�Q�Q��g�g�i�G��H��"�"�B��D��7�*����(8�9���3�s�E�?�+������x�T�B��h��%����G�G�B�K�E�����U�+��	�	�%�(� �A�
������x�T�J�������3�7�&������
��&�%������
��s%�C&F�<A*F�&	F�
F�F�F3c��grsr�)r�rArbr��blksizer�s      r)r��PackageIndex.reporthooks��r6c	�$�URS5(a[U5$[XR5$![[
RR4annSRURVs/sHn[U5PM Os snfsn5nU(aURX%5 SnAg[USU35UeSnAf[RRanUsSnA$SnAf[RR aHnU(a URX#R"5 SnAg[SUSUR"35UeSnAf[
RR$aGnU(a URX#R&5 SnAg[USUR&35UeSnAf[
RR([*4a4nU(aURX#5 SnAg[SUSU35UeSnAff=f)NrTr�zDownload error for r�z7 returned a bad status line. The server might be down, )r1�
local_open�open_with_authr�r&�http�client�
InvalidURLrprtr�rrr=r�r��URLError�reason�
BadStatusLine�line�
HTTPException�OSError)r�rA�warning�v�argr�s      r)r��PackageIndex.open_url
s����>�>�'�"�"��c�?�"�	N�!�#�{�{�3�3���D�K�K�2�2�3�	<��(�(����7���C��H���7�8�C���	�	�'�'�'�$��u�A�c�U�^�4�!�;���|�|�%�%�	��H���|�|�$�$�	U���	�	�'�8�8�,�,�$�':�3�%�r�!�(�(��%L�M�ST�T���{�{�(�(�	���	�	�'�6�6�*�*�$��e���V�V�H�&��������)�)�7�3�	N���	�	�'�%�%�$�':�3�%�r�!��%E�F�A�M��		N�so�8�$H�C�5B
�
%C�4C�!H�&C-�'H�-!H�"E�5E�!H�2"F4�F4�4'H�H
�8H
�
Hc�T�SRS5n[R"USU5$)a9
Replace unsafe path directives with underscores.

>>> san = PackageIndex._sanitize
>>> san('/home/user/.ssh/authorized_keys')
'_home_user_.ssh_authorized_keys'
>>> san('..\\foo\\bing')
'__foo_bing'
>>> san('D:bar')
'D_bar'
>>> san('C:\\bar')
'C__bar'
>>> san('foo..bar')
'foo..bar'
>>> san('D:../foo')
'D___foo'
r�)�:z[/\\]z6(?:(?<=([/\\]|:))\.\.(?=[/\\]|$))|(?:^\.\.(?=[/\\]|$))�_)rprfr6)r2r�s  r)�	_sanitize�PackageIndex._sanitize*s,��&�(�(�
����v�v�g�t�T�*�*r6c��[U5up4URU=(d S5n[R"SSU5n[R
R
X#5$)a
>>> import pathlib
>>> du = PackageIndex._resolve_download_filename
>>> root = getfixture('tmp_path')
>>> url = 'https://files.pythonhosted.org/packages/a9/5a/0db.../setuptools-78.1.0.tar.gz'
>>> str(pathlib.Path(du(url, root)).relative_to(root))
'setuptools-78.1.0.tar.gz'
�__downloaded__z\.egg\.zip$rR)rIr�rfr6rarErp)r�rArbr2�	_fragments     r)�_resolve_download_filename�'PackageIndex._resolve_download_filenameGsR��+�3�/����}�}��
�
�	
���v�v�n�f�d�3���w�w�|�|�F�)�)r6c�v�URX5nURX5=(d URX5$)z"
Determine the download filename.
)r��
_download_vcs�_download_other)r�rArbrbs    r)r_�PackageIndex._download_url^s5���2�2�3�?���!�!�#�0�W�D�4H�4H��4W�Wr6c���[RRU5RnUR	S5up#n[SS/S/[
U5--5n[[U1U-5S5$)z�
>>> rvcs = PackageIndex._resolve_vcs
>>> rvcs('git+http://foo/bar')
'git'
>>> rvcs('hg+https://foo/bar')
'hg'
>>> rvcs('git:myhost')
'git'
>>> rvcs('hg:myhost')
>>> rvcs('http://foo/bar')
�+�svn�git�hgN)	r=r%�urlsplitrc�	partitionr��bool�next�iter)rArc�pre�sep�_post�alloweds      r)�_resolve_vcs�PackageIndex._resolve_vcsesh�����&�&�s�+�2�2�� �*�*�3�/���%��u�e�n��v��S�	�'9�9�:���D�#����)�4�0�0r6c��URU5nU(dgUS:Xa[SU35eURS5un nURU5upUR	SUSUSU35 [
R"USSX/5 [US	US
SU/USUSS	S
US/S9nUb,UR	SU35 [
R"Xs5 U$)Nr�z/Invalid config, SVN download is not supported: r<zDoing z clone from z to rqz--quietz-C�checkoutz--cwd�upz-rz-q)r�r�z
Checking out )r�rr��_vcs_split_rev_from_urlr��
subprocess�
check_call�dict)r�rA�
spec_filename�vcsrbr��rev�co_commandss        r)r��PackageIndex._download_vcsxs�������$�����%�<� �A�#��G��
�'�0�0��5���!�Q��/�/��4����	�	�F�3�%�|�C�5��X�J�?�@����s�G�Y��F�G���d�H�j�)�S�A��W�h��d�D�#�t�D�
���?��I�I�
�c�U�+�,��!�!�+�"2�3��r6c�2�[RRU5RnUS:XaF[RR[RR
U5R5$URUS5 URX5$)Nr
T)
r=r%r�rcr��url2pathnamer>rEr��_attempt_download)r�rArbrcs    r)r��PackageIndex._download_other�sm�����&�&�s�+�2�2���V���>�>�.�.�v�|�|�/D�/D�S�/I�/N�/N�O�O����C����%�%�c�4�4r6c�(�URUS5 g)NT)r�r<s  r)r4�PackageIndex.scan_url�s������d�#r6c��URX5nSURSS5R5;aURXU5$U$)Nr�r�r�)r�r�r/�_invalid_download_html)r�rArbr�s    r)r��PackageIndex._attempt_download�sF���#�#�C�2���W�[�[���4�:�:�<�<��.�.�s�X�F�F��Or6c�J�[R"U5 [SU35e)NzUnexpected HTML page found at )rarNr)r�rAr�rbs    r)r��#PackageIndex._invalid_download_html�s!��
�	�	�(���=�c�U�C�D�Dr6c�H�[RRU5nURR	SS5SnUR
R
S5un nURS5upVnU(aXW4OUS4up�URUUSS9R5n
X�4$)	a�
Given a possible VCS URL, return a clean URL and resolved revision if any.

>>> vsrfu = PackageIndex._vcs_split_rev_from_url
>>> vsrfu('git+https://github.com/pypa/setuptools@v69.0.0#egg-info=setuptools')
('https://github.com/pypa/setuptools', 'v69.0.0')
>>> vsrfu('git+https://github.com/pypa/setuptools#egg-info=setuptools')
('https://github.com/pypa/setuptools', None)
>>> vsrfu('http://foo/bar')
('http://foo/bar', None)
r�rr9r<�@Nr�)rcrErH)
r=r%r�rcr@rEr��
rpartition�_replace�geturl)rArB�clean_scheme�no_fragment_pathr�r�r��post�
clean_pathr��resolveds           r)r��$PackageIndex._vcs_split_rev_from_url�s������%�%�c�*���|�|�)�)�#�q�1�"�5��"'���!5�!5�c�!:���!�Q�)�4�4�S�9���$�),�3�+�4��,��
��>�>����	"�
�
�&�(�	��}�r6c�2�[R"U/UQ76 grs)rr�r?s   r)r��PackageIndex.debug�s���	�	�#���r6c�2�[R"U/UQ76 grs)rr�r?s   r)r��PackageIndex.info���������t�r6c�2�[R"U/UQ76 grs)rrr?s   r)r�PackageIndex.warn�r�r6)r�r�r�r�r�r�r�)zhttps://pypi.org/simple/)�*NT)r�r�r�r�r�r�)F)r�r�r�r�)rr�r�r�)rr�r�r�r�rs)FFFN)rrr�ror�rmr�r�zDistribution | None)FF)rrr�ror�r�z
str | None)/r�r�r�r�r�r�r�r�r�r�rrr)r�r3r;rFrJrQrWrIrDr:rarvr`r�r�r�r��staticmethodr�r�r�r_r�r�r�r4r�r�r�r�r�rr��
__classcell__�r�s@r)rr,s����E�4����-��-�
�-�
�-�-�$!�31�j'� � ?�� 2� 
�:
�&�
�6��
)��� P�L!�� ��P?��	P?�
�P?��
P?�
�P?�fMR�
�/3�
�EI�
�	�
�'�R�L� �D
�N�@�+��+�8�*��*�,X��1��1�$�25�$��E�����>���r6rz!&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?c�P�URS5n[R"U5$)Nr)rOr��unescape)rN�whats  r)�
decode_entityr��s���;�;�q�>�D��=�=���r6c�"�[[U5$)z�
Decode HTML entities in the given text.

>>> htmldecode(
...     'https://../package_name-0.1.2.tar.gz'
...     '?tokena=A&amp;tokenb=B">package_name-0.1.2.tar.gz')
'https://../package_name-0.1.2.tar.gz?tokena=A&tokenb=B">package_name-0.1.2.tar.gz'
)�
entity_subr�)�texts r)r�r��s���m�T�*�*r6c�^�U4SjnU$)Nc�>^�UU4SjnU$)Nc��>�[R"5n[R"T5 T"U0UD6[R"U5 $![R"U5 f=frs)�socket�getdefaulttimeout�setdefaulttimeout)rtru�old_timeoutrv�timeouts   ��r)�_socket_timeout�@socket_timeout.<locals>._socket_timeout.<locals>._socket_timeout�sN��� �2�2�4�K��$�$�W�-�
6��T�,�V�,��(�(��5���(�(��5�s�A�A$r�)rvrrs` �r)r�'socket_timeout.<locals>._socket_timeout�s���	6��r6r�)rrs` r)�socket_timeoutr�s���	��r6c���[RRU5nUR5n[R
"U5nUR
5nURSS5$)a
Encode auth from a URL suitable for an HTTP header.
>>> str(_encode_auth('username%3Apassword'))
'dXNlcm5hbWU6cGFzc3dvcmQ='

Long auth strings should not cause a newline to be inserted.
>>> long_auth = 'username:' + 'password'*10
>>> chr(10) in str(_encode_auth(long_auth))
False
�
r�)r=r%r?�encode�base64�	b64encoder��replace)�auth�auth_s�
auth_bytes�
encoded_bytes�encodeds     r)�_encode_authr�sR���\�\�
!�
!�$�
'�F�����J��$�$�Z�0�M��"�"�$�G��?�?�4��$�$r6c�8�\rSrSr%SrS\S'S\S'S	SjrSrg)
�
Credentializx
A username/password pair.

Displayed separated by `:`.
>>> str(Credential('username', 'password'))
'username:password'
r��username�passwordc�8�URSUR3$)Nr�)rrr�s r)�__str__�Credential.__str__s���-�-���$�-�-��1�1r6r�N)r�r�)r�r�r�r�r��__annotations__rr�r�r6r)rrs����M��M�2r6rc�D^�\rSrSrU4Sjr\S5rSrSrSr	U=r
$)�
PyPIConfigic�.>�[R/SQS5n[TU]
U5 [R
R
[R
RS5S5n[R
RU5(a[X5 gg)z
Load from ~/.pypirc
)rr�
repositoryr��~z.pypircN)
r��fromkeysr�r�rarErp�
expanduserrr)r��defaults�rcr�s   �r)r��PyPIConfig.__init__sf����=�=�!G��L��
����"�
�W�W�\�\�"�'�'�,�,�S�1�9�
=��
�7�7�>�>�"���(��2�r6c���UR5Vs/sH,nURUS5R5(dM*UPM. nn[[	UR
U55$s snf)Nr)�sectionsr�r�r�r��_get_repo_cred)r��section�sections_with_repositoriess   r)�creds_by_repository�PyPIConfig.creds_by_repository'sa�� �=�=�?�&
�*���x�x���.�4�4�6�
�*�	#�&
��C��+�+�-G�H�I�I��
&
s�)A'�A'c���URUS5R5nU[URUS5R5URUS5R554$)Nrrr)r�r�r)r�r'�repos   r)r&�PyPIConfig._get_repo_cred1s]���x�x���.�4�4�6���Z��H�H�W�j�)�/�/�1��H�H�W�j�)�/�/�1�
�
�	
r6c�~�URR5Hup#URU5(dMUs $ g)zt
If the URL indicated appears to be a repository defined in this
config, return the credential for that repository.
N)r)�itemsr1)r�rAr�creds    r)�find_credential�PyPIConfig.find_credential8s:��
!%� 8� 8� >� >� @��J��~�~�j�)�)���!A�r6r�)r�r�r�r�r��propertyr)r&r1r�r�r�s@r)rrs-���	3��J��J�
��r6rc���[RRU5nUup4pVpxURS5(a[R
R
S5eUS;a[U5up�OSup�U	(dP[5RU5nU(a0[U5n	URU4n[R"S/UQ76 U	(adS[U	5-n	X:XVXx4n
[RRU
5n[R R#U5nUR%SU	5 O[R R#U5nUR%S[&5 U"U5nU	(ah[RRUR(5unnnnnnUU:Xa2UU
:Xa,UUUUUU4n
[RRU
5UlU$)	z4Open a urllib2 request, handling HTTP authenticationr�znonnumeric port: '')r��httpsr$z*Authenticating as %s for %s (from .pypirc)zBasic �
Authorizationz
User-Agent)r=r%r>r0r�r�r��
_splituserrr1r�rrr�r�
urlunparser��Request�
add_header�
user_agentrA)rAr��parsedrc�netlocrE�params�queryr8r�addressr0r�rBr7r�r��s2�h2�path2�param2�query2�frag2s                       r)r�r�Cs����\�\�
"�
"�3�
'�F�06�-�F�D�%����s����k�k�$�$�%:�;�;�
�"�"�"�6�*�
��g�$�
����|�+�+�C�0����t�9�D��=�=�#�%�D��H�H�A�I�D�I���,�t�,�,����u�:���,�,�)�)�%�0���.�.�(�(��1�����?�D�1��.�.�(�(��-�����|�Z�0�	���B��06�|�|�/D�/D�R�V�V�/L�,��B��v�v�u�
��<�B�'�M����v�v�u�<�E��\�\�,�,�U�3�B�F�
�Ir6c�F�URS5upnU(aX4$SU4$)zJsplituser('user[:passwd]@host[:port]')
--> 'user[:passwd]', 'host[:port]'.r�N)r�)�host�user�delims   r)r7r7ss,������,��D���D�*�*�t�d�*�*r6c��U$rsr�)rAs r)�
fix_sf_urlrL~s���Jr6c�p�[RRU5upp4pV[RR	U5n[
RRU5(a[RRU5$URS5(a�[
RRU5(a�/n[
R"U5Hvn	[
RRXy5n
U	S:Xa
[U
5n Of[
RRU
5(aU	S-
n	URSU	SU	S35 Mx SnURUSRU5S9nS	up�OS
up�nSS0n[ R""U5n[R$R'X
X�U5$)
z7Read a local path, with special support for directoriesr8z
index.htmlz	<a href="z">z</a>zB<html><head><title>{url}</title></head><body>{files}</body></html>r)rA�files)���OK)r�zPath not foundz	Not foundr�z	text/html)r=r%r>r�r�rarE�isfiler�r0rrrprrUr/�io�StringIOr�r�)rArC�_serverrE�_paramrG�_fragrbrNr��filepath�bodyr��status�messager��body_streams                 r)r�r��sW��4:�L�L�4I�4I�#�4N�1�G�d�F��~�~�*�*�4�0�H�	�w�w�~�~�h����~�~�%�%�c�*�*�	
���s�	�	����
�
�h� 7� 7������H�%�A��w�w�|�|�H�0�H��L� �/��9��������x�(�(��S����L�L�9�Q�C�r�!��D�1�2�&�X�D��;�;�3�d�i�i��.>�;�?�D�#���� B�����{�+�G��+�+�d�#�K��<�<�!�!�#�w��M�Mr6rs)r")br��
__future__rr	�configparserr�r��http.clientr�rRrrarfr}r�r��sys�urllib.errorr=�urllib.parse�urllib.request�fnmatchr�	functoolsr�typingr�more_itertoolsr	�
setuptools�
pkg_resourcesr
rrr
rrrrrrrrrr�setuptools.wheelr�
unicode_utilsrr�	distutilsr�distutils.errorsrr�rM�Ir�r5rNr�r@rY�__all__�_SOCKET_TIMEOUT�__version__�version_info�major�minorr;r*r rIrrLrcr!ryr}r�r�r�rr6r�r�r�rrr�RawConfigParserrr�r�r�r7rLr�r�r6r)�<module>rus$��*�"�
�����	��	�	�
�
��
�������*������ #�Q��+��z�z�6�7��	�z�z�3�R�T�T�:��
�:�:�J����Z�Z�,�b�d�d�
3�
9�
9�
�
.�
4�
4�
6�
������:�1�1�2�/�#�BR�BR�BX�BX�AY�YZ�[^�[k�[k�[q�[q�Zr�
s�
���0�	� �F�.2�k�TX��D
�	�j�j�K�R�T�T�R���
�L��L�$��2�.��Bb
�;�b
�N�Z�Z�<�
=�
A�
A�
��
	+��%�*
2��
2� %��-�-�%�P &�~�~�5�5�+�`+� ��0��@���Nr6

Youez - 2016 - github.com/yon3zu
LinuXploit