[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.191.171.121: ~ $


�t�_JR�@sddlZddlZddlZddlZddlZddlZyddlmZWn"ek
r�ddl	mZYnXddl
mZddlm
Z
mZmZmZmZmZddlmZmZmZeje�ZdZdZGd	d
�d
e�ZdS)�N)�Thread�)�DistlibException)�HTTPBasicAuthHandler�Request�HTTPPasswordMgr�urlparse�build_opener�string_types)�cached_property�zip_dir�ServerProxyzhttps://pypi.org/pypi�pypic@seZdZdZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zddd�Zddd�Z
ddd�Zddddddd�Zdd�Zddd�Zdd d!�Zddd"d#�Zd$d%�Zd&d'�Zdd(d)�ZdS)*�PackageIndexzc
    This class represents a package index compatible with PyPI, the Python
    Package Index.
    s.----------ThIs_Is_tHe_distlib_index_bouNdaRY_$NcCs|p	t|_|j�t|j�\}}}}}}|sX|sX|sX|dkrktd|j��d|_d|_d|_d|_t	t
jd��h}x^d
D]V}	y;tj
|	dgd	|d
|�}
|
dkr�|	|_PWq�tk
rYq�Xq�WWdQRXdS)z�
        Initialise an instance.

        :param url: The URL of the index. If not specified, the URL for PyPI is
                    used.
        �http�httpszinvalid repository: %sN�w�gpg�gpg2z	--version�stdout�stderrr)rr)rr)�
DEFAULT_INDEX�url�read_configurationrr�password_handler�ssl_verifierr�gpg_home�open�os�devnull�
subprocess�
check_call�OSError)�selfr�scheme�netloc�path�params�query�fragZsink�s�rc�r,��/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-1.el7.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/distlib/index.py�__init__$s&
!				
		
zPackageIndex.__init__cCs3ddlm}ddlm}|�}||�S)zs
        Get the distutils command for interacting with PyPI configurations.
        :return: the command.
        r)�Distribution)�
PyPIRCCommand)�distutils.corer/�distutils.configr0)r#r/r0�dr,r,r-�_get_pypirc_commandAs	z PackageIndex._get_pypirc_commandcCsy|j�}|j|_|j�}|jd�|_|jd�|_|jdd�|_|jd|j�|_dS)z�
        Read the PyPI access configuration as supported by distutils, getting
        PyPI to do the actual work. This populates ``username``, ``password``,
        ``realm`` and ``url`` attributes from the configuration.
        �username�password�realmr�
repositoryN)r4rr8�_read_pypirc�getr5r6r7)r#�c�cfgr,r,r-rKszPackageIndex.read_configurationcCs0|j�|j�}|j|j|j�dS)z�
        Save the PyPI access configuration. You must have set ``username`` and
        ``password`` attributes before calling this method.

        Again, distutils is used to do the actual work.
        N)�check_credentialsr4�
_store_pypircr5r6)r#r;r,r,r-�save_configurationZs
zPackageIndex.save_configurationcCs�|jdks|jdkr*td��t�}t|j�\}}}}}}|j|j||j|j�t|�|_	dS)zp
        Check that ``username`` and ``password`` have been set, and raise an
        exception if not.
        Nz!username and password must be set)
r5r6rrrr�add_passwordr7rr)r#Zpm�_r%r,r,r-r=fs	!zPackageIndex.check_credentialscCs�|j�|j�|j�}d|d<|j|j�g�}|j|�}d|d<|j|j�g�}|j|�S)aq
        Register a distribution on PyPI, using the provided metadata.

        :param metadata: A :class:`Metadata` instance defining at least a name
                         and version number for the distribution to be
                         registered.
        :return: The HTTP response received from PyPI upon submission of the
                request.
        �verifyz:action�submit)r=�validate�todict�encode_request�items�send_request)r#�metadatar3�request�responser,r,r-�registerrs




zPackageIndex.registercCsaxP|j�}|sP|jd�j�}|j|�tjd||f�qW|j�dS)ar
        Thread runner for reading lines of from a subprocess into a buffer.

        :param name: The logical name of the stream (used for logging only).
        :param stream: The stream to read from. This will typically a pipe
                       connected to the output stream of a subprocess.
        :param outbuf: The list to append the read lines to.
        zutf-8z%s: %sN)�readline�decode�rstrip�append�logger�debug�close)r#�name�streamZoutbufr*r,r,r-�_reader�s	
zPackageIndex._readercCs�|jdddg}|dkr*|j}|rC|jd|g�|dk	re|jdddg�tj�}tjj|tjj|�d	�}|jd
dd|d
||g�t	j
ddj|��||fS)a�
        Return a suitable command for signing a file.

        :param filename: The pathname to the file to be signed.
        :param signer: The identifier of the signer of the file.
        :param sign_password: The passphrase for the signer's
                              private key used for signing.
        :param keystore: The path to a directory which contains the keys
                         used in verification. If not specified, the
                         instance's ``gpg_home`` attribute is used instead.
        :return: The signing command as a list suitable to be
                 passed to :class:`subprocess.Popen`.
        z--status-fd�2z--no-ttyNz	--homedirz--batchz--passphrase-fd�0z.ascz
--detach-signz--armorz--local-userz--outputzinvoking: %s� )rr�extend�tempfile�mkdtemprr&�join�basenamerQrR)r#�filename�signer�
sign_password�keystore�cmd�tdZsfr,r,r-�get_sign_command�s	%zPackageIndex.get_sign_commandc	Csdtjdtji}|dk	r1tj|d<g}g}tj||�}td|jdd|j|f�}|j�td|jdd|j|f�}|j�|dk	r�|jj	|�|jj
�|j�|j�|j�|j
||fS)a�
        Run a command in a child process , passing it any input data specified.

        :param cmd: The command to run.
        :param input_data: If specified, this must be a byte string containing
                           data to be sent to the child process.
        :return: A tuple consisting of the subprocess' exit code, a list of
                 lines read from the subprocess' ``stdout``, and a list of
                 lines read from the subprocess' ``stderr``.
        rrN�stdin�target�args)r �PIPE�PopenrrVr�startrrf�writerS�waitr]�
returncode)	r#rcZ
input_data�kwargsrr�p�t1�t2r,r,r-�run_command�s$	
$
$




zPackageIndex.run_commandc
Csb|j||||�\}}|j||jd��\}}}	|dkr^td|��|S)aR
        Sign a file.

        :param filename: The pathname to the file to be signed.
        :param signer: The identifier of the signer of the file.
        :param sign_password: The passphrase for the signer's
                              private key used for signing.
        :param keystore: The path to a directory which contains the keys
                         used in signing. If not specified, the instance's
                         ``gpg_home`` attribute is used instead.
        :return: The absolute pathname of the file where the signature is
                 stored.
        zutf-8rz&sign command failed with error code %s)rers�encoder)
r#r_r`rarbrc�sig_filer+rrr,r,r-�	sign_file�s	
zPackageIndex.sign_file�sdist�sourcecCs�|j�tjj|�s,td|��|j�|j�}d}	|r|jsgtj	d�n|j
||||�}	t|d��}
|
j�}WdQRXt
j|�j�}t
j|�j�}
|jddddd	|d
|d|d|
i�d
tjj|�|fg}|	r�t|	d��}
|
j�}WdQRX|jdtjj|	�|f�tjtjj|	��|j|j�|�}|j|�S)a�
        Upload a release file to the index.

        :param metadata: A :class:`Metadata` instance defining at least a name
                         and version number for the file to be uploaded.
        :param filename: The pathname of the file to be uploaded.
        :param signer: The identifier of the signer of the file.
        :param sign_password: The passphrase for the signer's
                              private key used for signing.
        :param filetype: The type of the file being uploaded. This is the
                        distutils command which produced that file, e.g.
                        ``sdist`` or ``bdist_wheel``.
        :param pyversion: The version of Python which the release relates
                          to. For code compatible with any Python, this would
                          be ``source``, otherwise it would be e.g. ``3.2``.
        :param keystore: The path to a directory which contains the keys
                         used in signing. If not specified, the instance's
                         ``gpg_home`` attribute is used instead.
        :return: The HTTP response received from PyPI upon submission of the
                request.
        z
not found: %sNz)no signing program available - not signed�rbz:actionZfile_uploadZprotocol_version�1�filetype�	pyversion�
md5_digest�
sha256_digest�contentZ
gpg_signature)r=rr&�existsrrDrErrQ�warningrvr�read�hashlib�md5�	hexdigest�sha256�updater^rP�shutil�rmtree�dirnamerFrGrH)r#rIr_r`rar{r|rbr3ru�fZ	file_datar}r~�filesZsig_datarJr,r,r-�upload_file�s>

		

zPackageIndex.upload_filec
Cs�|j�tjj|�s,td|��tjj|d�}tjj|�sctd|��|j�|j|j	}}t
|�j�}d	d|fd|fg}d||fg}|j||�}	|j
|	�S)
a2
        Upload documentation to the index.

        :param metadata: A :class:`Metadata` instance defining at least a name
                         and version number for the documentation to be
                         uploaded.
        :param doc_dir: The pathname of the directory which contains the
                        documentation. This should be the directory that
                        contains the ``index.html`` for the documentation.
        :return: The HTTP response received from PyPI upon submission of the
                request.
        znot a directory: %rz
index.htmlz
not found: %r�:action�
doc_uploadrT�versionr)r�r�)r=rr&�isdirrr]r�rDrTr�r�getvaluerFrH)
r#rIZdoc_dir�fnrTr��zip_data�fieldsr�rJr,r,r-�upload_documentation(s

z!PackageIndex.upload_documentationcCsv|jdddg}|dkr*|j}|rC|jd|g�|jd||g�tjddj|��|S)	a|
        Return a suitable command for verifying a file.

        :param signature_filename: The pathname to the file containing the
                                   signature.
        :param data_filename: The pathname to the file containing the
                              signed data.
        :param keystore: The path to a directory which contains the keys
                         used in verification. If not specified, the
                         instance's ``gpg_home`` attribute is used instead.
        :return: The verifying command as a list suitable to be
                 passed to :class:`subprocess.Popen`.
        z--status-fdrWz--no-ttyNz	--homedirz--verifyzinvoking: %srY)rrrZrQrRr])r#�signature_filename�
data_filenamerbrcr,r,r-�get_verify_commandDs	zPackageIndex.get_verify_commandcCsh|jstd��|j|||�}|j|�\}}}|dkr^td|��|dkS)a6
        Verify a signature for a file.

        :param signature_filename: The pathname to the file containing the
                                   signature.
        :param data_filename: The pathname to the file containing the
                              signed data.
        :param keystore: The path to a directory which contains the keys
                         used in verification. If not specified, the
                         instance's ``gpg_home`` attribute is used instead.
        :return: True if the signature was verified, else False.
        z0verification unavailable because gpg unavailablerrz(verify command failed with error code %s)rr)rrr�rs)r#r�r�rbrcr+rrr,r,r-�verify_signature\s		
zPackageIndex.verify_signaturecCs�|dkr"d}tjd�nMt|ttf�rF|\}}nd}tt|��}tjd|�t|d���}|jt	|��}z�|j
�}	d}
d}d}d}
d	|	kr�t|	d
�}|r�||
|
|�xj|j|
�}|sP|t
|�7}|j|�|r8|j|�|
d7}
|r�||
|
|�q�WWd|j�XWdQRX|dkr�||kr�td||f��|r�|j�}||kr�td||||f��tjd
|�dS)a
        This is a convenience method for downloading a file from an URL.
        Normally, this will be a file from the index, though currently
        no check is made for this (i.e. a file can be downloaded from
        anywhere).

        The method is just like the :func:`urlretrieve` function in the
        standard library, except that it allows digest computation to be
        done during download and checking that the downloaded data
        matched any expected value.

        :param url: The URL of the file to be downloaded (assumed to be
                    available via an HTTP GET request).
        :param destfile: The pathname where the downloaded file is to be
                         saved.
        :param digest: If specified, this must be a (hasher, value)
                       tuple, where hasher is the algorithm used (e.g.
                       ``'md5'``) and ``value`` is the expected value.
        :param reporthook: The same as for :func:`urlretrieve` in the
                           standard library.
        NzNo digest specifiedr�zDigest specified: %s�wbi rrzcontent-lengthzContent-Lengthz1retrieval incomplete: got only %d out of %d bytesz.%s digest mismatch for %s: expected %s, got %szDigest verified: %s���)rQrR�
isinstance�list�tuple�getattrr�rrHr�info�intr��lenrlr�rSrr�)r#r�destfile�digest�
reporthookZdigesterZhasherZdfpZsfp�headers�	blocksize�sizer��blocknum�block�actualr,r,r-�
download_fileusV


zPackageIndex.download_filecCsQg}|jr|j|j�|jr8|j|j�t|�}|j|�S)z�
        Send a standard library :class:`Request` to PyPI and return its
        response.

        :param req: The request to send.
        :return: The HTTP response from PyPI (a standard library HTTPResponse).
        )rrPrr	r)r#�req�handlers�openerr,r,r-rH�s		zPackageIndex.send_requestcCs7g}|j}xv|D]n\}}t|ttf�s@|g}xA|D]9}|jd|d|jd�d|jd�f�qGWqWxG|D]?\}}	}
|jd|d||	fjd�d|
f�q�W|jd|ddf�dj|�}d|}d|d	tt|��i}
t	|j
||
�S)
a&
        Encode fields and files for posting to an HTTP server.

        :param fields: The fields to send as a list of (fieldname, value)
                       tuples.
        :param files: The files to send as a list of (fieldname, filename,
                      file_bytes) tuple.
        s--z)Content-Disposition: form-data; name="%s"zutf-8�z8Content-Disposition: form-data; name="%s"; filename="%s"s
smultipart/form-data; boundary=zContent-typezContent-length)�boundaryr�r�r�rZrtr]�strr�rr)r#r�r��partsr��k�values�v�keyr_�value�body�ctr�r,r,r-rF�s2		


zPackageIndex.encode_requestcCs_t|t�rd|i}t|jdd�}z|j||pEd�SWd|d��XdS)NrT�timeoutg@�andrS)r�r
r
r�search)r#Zterms�operatorZ	rpc_proxyr,r,r-r��szPackageIndex.search)�__name__�
__module__�__qualname__�__doc__r�r.r4rr?r=rLrVrersrvr�r�r�r�r�rHrFr�r,r,r,r-rs*
#8M+r)r��loggingrr�r r[�	threadingr�ImportError�dummy_threading�r�compatrrrrr	r
�utilrrr
�	getLoggerr�rQr�
DEFAULT_REALM�objectrr,r,r,r-�<module>s 
.

Filemanager

Name Type Size Permission Actions
__init__.cpython-35.pyc File 1.1 KB 0644
compat.cpython-35.pyc File 33.85 KB 0644
database.cpython-35.pyc File 44.5 KB 0644
index.cpython-35.pyc File 18.01 KB 0644
locators.cpython-35.pyc File 40.95 KB 0644
manifest.cpython-35.pyc File 10.95 KB 0644
markers.cpython-35.pyc File 4.81 KB 0644
metadata.cpython-35.pyc File 28.86 KB 0644
resources.cpython-35.pyc File 11.58 KB 0644
scripts.cpython-35.pyc File 11.56 KB 0644
util.cpython-35.pyc File 51.86 KB 0644
version.cpython-35.pyc File 22.13 KB 0644
wheel.cpython-35.pyc File 28.19 KB 0644