Edit File: index.cpython-311.pyc
� ����m�dbQ�����������������������������d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZ �d�dlmZ�n#�e$�r �d�dl mZ�Y�nw�xY�wddl mZ�ddlm Z mZmZmZmZmZ�ddlmZmZ��ej��������e������������ZdZdZ�G�d ��d e������������ZdS�)�����N)�Thread����)�DistlibException)�HTTPBasicAuthHandler�Request�HTTPPasswordMgr�urlparse�build_opener�string_types)�zip_dir�ServerProxyzhttps://pypi.org/pypi�pypic�������������������������e�Zd�ZdZdZdd�Zd��Zd��Zd��Zd��Z d ��Z d ��Zdd�Zdd�Z dd �Z � �dd�Zd��Z �dd�Z �dd�Zdd�Zd��Zd��Zdd�ZdS�)�PackageIndexzc This class represents a package index compatible with PyPI, the Python Package Index. s.���----------ThIs_Is_tHe_distlib_index_bouNdaRY_$Nc�����������������������|pt�����������|�_��������|�������������������������������������t����������|�j��������������������\��}}}}}}|s|s|s|dvrt ����������d|�j��������z���������������d|�_��������d|�_��������d|�_��������d|�_��������t����������t����������j��������d������������5�}dD�];} �t����������j ��������| dg||�������������} | dk����r | |�_���������n�,#�t����������$�r�Y��8w�xY�wddd�������������dS�#�1�swxY�w�Y���dS�) 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���)� DEFAULT_INDEX�url�read_configurationr ���r����password_handler�ssl_verifierr����gpg_home�open�os�devnull� subprocess� check_call�OSError)�selfr����scheme�netloc�path�params�query�frag�sink�s�rcs��� �^/builddir/build/BUILD/cloudlinux-venv-1.0.2/venv/lib/python3.11/site-packages/distlib/index.py�__init__zPackageIndex.__init__$���s~�������'�-������!�!�!�4<�T�X�4F�4F�1����f�e�T��� H�U�� H�d�� H�f�4E�&E�&E�"�#;�d�h�#F�G�G�G� $��� �������� � �"�*�c� "� "�� �d��%�� �� ���#�.��;�/?��6:�<��<��<�B��Q�w�w�#$�����������������D����� �� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �� �� s6����C!�&C�C!� C�C!�C�C!�!C%�(C%c������������������"�����ddl�m}��|��������������S�)zs Get the distutils command for interacting with PyPI configurations. :return: the command. r���)�_get_pypirc_command)�utilr3���)r&����cmds��� r0���r3���z PackageIndex._get_pypirc_commandA���s!������ � 5�4�4�4�4�4��s�u�u������c����������������������ddl�m}��||�������������}|���������������������d������������|�_��������|���������������������d������������|�_��������|���������������������dd������������|�_��������|���������������������d|�j��������������������|�_��������dS�) z� Read the PyPI access configuration as supported by distutils. This populates ``username``, ``password``, ``realm`` and ``url`` attributes from the configuration. r���)�_load_pypirc�username�password�realmr���� repositoryN)r4���r8����getr9���r:���r;���r���)r&���r8����cfgs��� r0���r���zPackageIndex.read_configurationI���s{������� '�&�&�&�&�&��l�4� � ����� �+�+�� ���� �+�+�� ��W�W�W�f�-�-�� ��7�7�<���2�2����r6���c������������������P�����|��������������������������������������ddlm}��||��������������dS�)z� Save the PyPI access configuration. You must have set ``username`` and ``password`` attributes before calling this method. r���)� _store_pypircN)�check_credentialsr4���r@���)r&���r@���s��� r0����save_configurationzPackageIndex.save_configurationV���s>������ � ��� � � �'�'�'�'�'�'�� �d�����r6���c����������������������|�j����������|�j���������t����������d�������������t������������������������}t ����������|�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) r9���r:���r���r���r ���r����add_passwordr;���r���r���)r&����pm�_r(���s��� r0���rA���zPackageIndex.check_credentials_���s}������ ��=� �D�M�$9�"�#F�G�G�G� � � �� (��� 2� 2���6�1�a��A� ���� �F�D�M�4�=�I�I�I� 4�R� 8� 8����r6���c����������������������|��������������������������������������|������������������������������������|�����������������������������������}d|d<���|����������������������|�����������������������������������g�������������}|����������������������|������������}d|d<���|����������������������|�����������������������������������g�������������}|����������������������|������������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. �verify�:action�submit)rA����validate�todict�encode_request�items�send_request)r&����metadata�d�request�responses��� r0����registerzPackageIndex.registerk���s�������� ��� � � ��������O�O������)���%�%�a�g�g�i�i��4�4���$�$�W�-�-����)���%�%�a�g�g�i�i��4�4��� � ��)�)�)r6���c���������������������� �|������������������������������������}|sn\|���������������������d�����������������������������������������������}|���������������������|�������������t�������������������������������|�d|����������������s|������������������������������������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. T�utf-8z: N)�readline�decode�rstrip�append�logger�debug�close)r&����name�stream�outbufr.���s��� r0����_readerzPackageIndex._reader���s������� /����!�!�A��� ������!�!�(�(�*�*�A��M�M�!�����L�L�T�T�T�1�1�-�.�.�.� /�� �������r6���c����������� ������������|�j���������dddg}|�|�j��������}|r|���������������������d|g�������������|�|���������������������g�d��������������t����������j����������������������}t ����������j�����������������������������|t ����������j�����������������������������|������������dz���������������}|���������������������dd d |d||g�������������t����������� ��������������������dd ���������������������|�������������������������||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`. �--status-fd�2�--no-ttyN� --homedir)z--batchz--passphrase-fd�0z.ascz --detach-signz--armorz--local-userz--output�invoking: %s� )r���r����extend�tempfile�mkdtempr!���r)����join�basenamer[���r\���)r&����filename�signer� sign_password�keystorer5����td�sfs��� r0����get_sign_commandzPackageIndex.get_sign_command����s���������x���Z�8�����}�H��� 0��J�J��X�.�/�/�/��$��J�J�:�:�:�;�;�;� � � � �� �W�\�\�"�b�g�.�.�x�8�8�6�A� B� B��� � �O�Y���J��H�6�� 7�� 7�� 7����^�S�X�X�c�]�]�3�3�3��B�w�r6���c������������������@����t�����������j��������t�����������j��������d�}|�t�����������j��������|d<���g�}g�}t����������j��������|fi�|��}t����������|�j��������d|j��������|f�������������}|������������������������������������t����������|�j��������d|j��������|f�������������}|������������������������������������|�3|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``. r���N�stdinr���)�target�argsr���)r#����PIPE�Popenr���ra���r����startr���rw����writer]����waitrm���� returncode) r&���r5���� input_data�kwargsr���r����p�t1�t2s ��� r0����run_commandzPackageIndex.run_command����s������!�o� �o� �� ����!�(�o�F�7�O�������S�+�+�F�+�+����4�<�x���6�.J� K� K� K�� ��� � � � �4�<�x���6�.J� K� K� K�� ��� � � ��!� �G�M�M�*�%�%�%� �G�M�M�O�O�O� ������ ��� � � � ��� � � ��|�V�V�+�+r6���c������������������������|�����������������������||||������������\��}}|����������������������||���������������������d������������������������\��}}} |dk����rt����������d|z���������������|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. rV���r���z&sign command failed with error code %s)ru���r�����encoder���) r&���ro���rp���rq���rr���r5����sig_filer/���r���r���s ��� r0���� sign_filezPackageIndex.sign_file����s���������-�-�h�� �.6�8��8� ��X�!�-�-�c�.;�.B�.B�7�.K�.K�M��M���F�F� ��7�7�"��$-�/1�$2��3��3�� 3��r6����sdist�sourcec����������� �����������|��������������������������������������t����������j�����������������������������|������������st ����������d|z���������������|������������������������������������|�����������������������������������}d} |r:|�j��������st����������� ��������������������d�������������n|�� ��������������������||||������������} t����������|d������������5�} | �����������������������������������}ddd�������������n#�1�swxY�w�Y���t����������j��������|�����������������������������������������������}t����������j��������|�����������������������������������������������} |���������������������dd|||| d��������������dt����������j�����������������������������|������������|fg}| r�t����������| d������������5�} | �����������������������������������}ddd�������������n#�1�swxY�w�Y���|���������������������d t����������j�����������������������������| ������������|f�������������t)����������j��������t����������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�rb�file_upload�1)rI����protocol_version�filetype� pyversion� md5_digest� sha256_digest�content� gpg_signature)rA���r!���r)����existsr���rK���rL���r���r[����warningr����r ����read�hashlib�md5� hexdigest�sha256�updatern���rZ����shutil�rmtree�dirnamerM���rN���rO���)r&���rP���ro���rp���rq���r����r����rr���rQ���r�����f� file_datar����r�����files�sig_datarR���s��� r0����upload_filezPackageIndex.upload_file����s������.� ��� � � ��w�~�~�h�'�'�� ?�"�?�X�#=�>�>�>��������O�O�������� 4��8�� 4����J�K�K�K�K��>�>�(�F�M�*2�4��4�� �(�D� !� !�� !�Q������I� !�� !�� !�� !�� !�� !�� !�� !�� !�� !�� !����� !�� !�� !�� !��[��+�+�5�5�7�7� ���y�1�1�;�;�=�=� � ���$� #� �"�$�*� �� �� �� �� ���R�W�-�-�h�7�7��C�D���� 5��h��%�%�� $���6�6�8�8�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $�� $����� $�� $�� $�� $��L�L�/�2�7�+;�+;�H�+E�+E�!�#�� $�� $�� $��M�"�'�/�/�(�3�3�4�4�4��%�%�a�g�g�i�i��7�7��� � ��)�)�)s$����<C�C!�$C!�F&�&F*�-F*c������������������(����|��������������������������������������t����������j�����������������������������|������������st ����������d|z���������������t����������j�����������������������������|d������������}t����������j�����������������������������|������������st ����������d|z���������������|������������������������������������|j��������|j ��������}}t����������|�����������������������������������������������}dd|fd|fg}d||fg}|����������������������||������������} |�� ��������������������| ������������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)rI���� doc_uploadr^����versionr����)rA���r!���r)����isdirr���rm���r����rK���r^���r����r����getvaluerM���rO���) r&���rP����doc_dir�fnr^���r�����zip_data�fieldsr����rR���s ��� r0����upload_documentationz!PackageIndex.upload_documentation ��s������ ��� � � ��w�}�}�W�%�%�� D�"�#8�7�#B�C�C�C� �W�\�\�'�<� 0� 0���w�~�~�b�!�!�� 9�"�?�R�#7�8�8�8������� � �x�'7�g���7�#�#�,�,�.�.��+��4�.�9�g�"6�8���T�8�,�-���%�%�f�e�4�4��� � ��)�)�)r6���c������������������������|�j���������dddg}|�|�j��������}|r|���������������������d|g�������������|���������������������d||g�������������t�������������������������������dd���������������������|�������������������������|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`. rc���rd���re���Nrf���z--verifyrh���ri���)r���r���rj���r[���r\���rm���)r&����signature_filename� data_filenamerr���r5���s��� r0����get_verify_commandzPackageIndex.get_verify_command<��s}��������x���Z�8�����}�H��� 0��J�J��X�.�/�/�/�� � �J� 2�M�B�C�C�C����^�S�X�X�c�]�]�3�3�3�� r6���c������������������������|�j���������st����������d�������������|����������������������|||������������}|����������������������|������������\��}}}|dvrt����������d|z���������������|dk����S�)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 unavailable)r���r���z(verify command failed with error code %sr���)r���r���r����r����)r&���r����r����rr���r5���r/���r���r���s��� r0����verify_signaturezPackageIndex.verify_signatureT��s���������x�� 2�"��$1��2��2�� 2��%�%�&8�-�&.�0��0��!�-�-�c�2�2���F�F� �V���"��$'�)+�$,��-��-�� -��Q�w�r6���c����������� �������<����|�d}t��������������������������������d�������������n^t����������|t����������t����������f������������r|\��}}nd}�t����������t����������|��������������������������}t��������������������������������d|z���������������t����������|d������������5�}|����������������������t����������|������������������������} �|� ����������������������������������} d} d}d}d} d | v�rt����������| d ���������������������}|r �|| | |������������� �|���������������������| ������������}|snS|t����������|������������z ��}|���������������������|�������������|r|���������������������|�������������| dz ��} |r �|| | |��������������k �|������������������������������������n#�|������������������������������������w�xY�w �ddd�������������n#�1�swxY�w�Y���|dk����r||k�����rt#����������d ||fz���������������|rQ|�����������������������������������}||k����rt#����������|�d|�d|�d|���������������t��������������������������������d|�������������dS�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� �����r���zcontent-lengthzContent-LengthTr���z1retrieval incomplete: got only %d out of %d bytesz digest mismatch for z: expected z, got zDigest verified: %s)r[���r\���� isinstance�list�tuple�getattrr����r ���rO���r����info�intr�����lenr}���r����r]���r���r����)r&���r����destfile�digest� reporthook�digester�hasher�dfp�sfp�headers� blocksize�sizer�����blocknum�block�actuals��� r0���� download_filezPackageIndex.download_filem��s������,��>��H��L�L�.�/�/�/�/��&�4��-�0�0�� �!'�������/�w�w��/�/�1�1�H��L�L�/�&�8�9�9�9���(�D� !� !�� �S���#�#�G�C�L�L�1�1�C� ��(�(�*�*�� � �������#�w�.�.��w�'7�8�9�9�D���:��J�x��D�9�9�9� >��H�H�Y�/�/�E� �����C��J�J�&�D��I�I�e�$�$�$���/� ����.�.�.���M�H�!��>�"� �8�Y��=�=�=� >����� � ������� � ���������5 �� �� �� �� �� �� �� �� �� �� ����� �� �� �� �:��1�9�9�����"�C���,�� �� �� ���� 8��'�'�)�)�F�����&�7=�v�v�x�x�x�7=�v�v�v�v�(G��H��H��H�� �L�L�.��7�7�7�7�7� 8�� 8s+����#F�2B0E8�#F�8F�F�F"�%F"c������������������������g�}|�j���������r|���������������������|�j����������������������|�j��������r|���������������������|�j���������������������t����������|��}|���������������������|������������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). )r���rZ���r���r ���r ���)r&����req�handlers�openers��� r0���rO���zPackageIndex.send_request���se���������� �� 3��O�O�D�1�2�2�2���� /��O�O�D�-�.�.�.��x�(���{�{�3���r6���c����������� �������L����g�}|�j���������}|D�]n\��}}t����������|t����������t����������f������������s|g}|D�]G}|���������������������d|z���d|z�����������������������d������������d|���������������������d������������f��������������H�o|D�]<\��}} } |���������������������d|z���d|�d| �d����������������������d������������d| f��������������=|���������������������d|z���dz���df�������������d���������������������|������������}d |z���}|t����������t����������|������������������������d �} 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"rV���r6���z&Content-Disposition: form-data; name="z "; filename="�"s��� s���multipart/form-data; boundary=)zContent-typezContent-length)�boundaryr����r����r����rj���r����rm����strr����r���r���)r&���r����r�����partsr�����k�values�v�keyro����value�body�ctr����s��� r0���rM���zPackageIndex.encode_request���s|���������=���� (�� (�I�A�v��f�t�U�m�4�4�� "� ����� (�� (������H�$�@�����w�����H�H�W�%�%�'��(��(��(��(� (��%*�� �� � �C��5��L�L��� � ��#�#�x�x�x�!�"(�&��/�/����� �� �� �� �� ���e�h�&��.��4�5�5�5��|�|�E�"�"�� .�� 9���!�#�d�)�)�n�n� �� ����t�x��w�/�/�/r6���c������������������������t����������|t����������������������rd|i}t����������|�j��������d�������������} �|���������������������||pd��������������|d���������������������������S�#���|d���������������������������w�xY�w)Nr^���g������@)�timeout�andr]���)r����r���r ���r����search)r&����terms�operator� rpc_proxys��� r0���r����zPackageIndex.search���s��������e�\�*�*�� $��U�O�E����#�6�6�6� � !��#�#�E�8�+<�u�=�=��I�I�g��� � � � ���I�I�g��� � � � ���s����A��A1)N)NNr����r����N)NN)�__name__� __module__�__qualname__�__doc__r����r1���r3���r���rB���rA���rT���ra���ru���r����r����r����r����r����r����r����rO���rM���r������r6���r0���r���r������s}���������������� �A�H��������:�����3��3��3������ 9�� 9�� 9�*��*��*�(�����$�������8!,��!,��!,��!,�F�������.�JN�CG�7*��7*��7*��7*�r*��*��*�:�%)��������2�#'��������2K8��K8��K8��K8�Z �� �� � )0��)0��)0�V!��!��!��!��!��!r6���r���)r�����loggingr!���r����r#���rk���� threadingr����ImportError�dummy_threading��r����compatr���r���r���r ���r ���r���r4���r���r ���� getLoggerr����r[���r���� DEFAULT_REALM�objectr���r����r6���r0����<module>r�������sc��������������� � � � �� � � � ��������������'� � � � � � � ����'��'��'�&�&�&�&�&�&�&�&�'����������������;��;��;��;��;��;��;��;��;��;��;��;��;��;��;��;��&��&��&��&��&��&��&��&� �� �8� $� $��'� �� �`!��`!��`!��`!��`!�6��`!��`!��`!��`!��`!s����!��/�/