� ,�Re.����dZddlmZddlmZddlmZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlmZddlmZd d lmZd �ZGd �d e��ZdS)z|upload_docs Implements a Distutils 'upload_docs' subcommand (upload documentation to sites other than PyPi such as devpi). �)�standard_b64encode)�log)�DistutilsOptionErrorN�)�metadata)�SetuptoolsDeprecationWarning�)�uploadc�.�|�dd��S)Nzutf-8�surrogateescape)�encode)�ss ��/builddir/build/BUILDROOT/alt-python311-setuptools-65.6.3-2.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/setuptools/command/upload_docs.py�_encoders�� �8�8�G�.� /� /�/�c��eZdZdZdZdddejzfddgZejZd�Zd efgZ d �Z d �Z d �Z d �Z ed���Zed���Zd�ZdS)� upload_docszhttps://pypi.python.org/pypi/z;Upload documentation to sites other than PyPi such as devpiz repository=�rzurl of repository [default: %s])z show-responseNz&display full response text from server)z upload-dir=Nzdirectory to uploadc�Z�t|jduotjdd�����S)Nzdistutils.commands� build_sphinx)�group�name)�bool� upload_dirr� entry_points��selfs r� has_sphinxzupload_docs.has_sphinx/s8��� �O�t� #� W��%�,@�~�V�V�V� � � rrc�J�tj|��d|_d|_dS)N)r �initialize_optionsr� target_dirrs rr zupload_docs.initialize_options7s%���!�$�'�'�'��������rc���tjd��tj|��|j��|���r5|�d��}t|j��d|_ na|�d��}tj � |j d��|_ n!|�d��|j|_ |�d|j z��dS)NzWUpload_docs command is deprecated. Use Read the Docs (https://readthedocs.org) instead.r�html�build�docsrzUsing upload directory %s)r�warnr �finalize_optionsrr�get_finalized_command�dict�builder_target_dirsr!�os�path�join� build_base�ensure_dirname�announce)rrr$s rr'zupload_docs.finalize_options<s��� �� 1� 2� 2� 2� ���%�%�%� �?� "���� � � I�#�9�9�.�I�I� �"&�|�'G�"H�"H��"P�����2�2�7�;�;��"$�'�,�,�u�/?��"H�"H���� � � � � -� -� -�"�o�D�O� � � �1�D�O�C�D�D�D�D�Drc��tj|d��} |�|j��t j|j��D]�\}}}||jkr|sd}t ||jz���|D]�}tj�||��}|t|j��d�� tjj ��} tj�| |��} |� || ������ |� ��dS#|� ��wxYw)N�wz'no files found in upload directory '%s')�zipfile�ZipFile�mkpathr!r+�walkrr,r-�len�lstrip�sep�write�close) r�filename�zip_file�root�dirs�files�tmplr�full�relative�dests r�create_zipfilezupload_docs.create_zipfileMs.���?�8�S�1�1�� � �K�K��� (� (� (�%'�W�T�_�%=�%=� /� /�!��d�E��4�?�*�*�5�*�D�D�.�t�d�o�/E�F�F�F�!�/�/�D��7�<�<��d�3�3�D�#�C���$8�$8�$9�$9�:�A�A�"�'�+�N�N�H��7�<�<��$�7�7�D��N�N�4��.�.�.�.� /�  /� �N�N� � � � � ��H�N�N� � � � ���s �C9D'�'D=c���tjdt��|���D]}|�|���t j��}|jj� ��}tj � |d|z��} |� |��|�|��tj|��dS#tj|��wxYw)Nziupload_docs is deprecated and will be removed in a future version. Use tools like httpie or curl instead.z%s.zip)�warningsr&r�get_sub_commands� run_command�tempfile�mkdtemp� distributionr�get_namer+r,r-rE� upload_file�shutil�rmtree)r�cmd_name�tmp_dirrr=s r�runzupload_docs.run]s���� � >� (� � � ��-�-�/�/� '� '�H� � � �X� &� &� &� &��"�$�$��� �)�2�2�4�4���7�<�<���D��9�9�� #� � � �� )� )� )� � � �X� &� &� &� �M�'� "� "� "� "� "��F�M�'� "� "� "� "���s �*C�C2c#�0K�|\}}d|z}t|t��s|g}|D]n}t|t��r|d|dzz }|d}nt|��}|V�t|��V�dV�|V�|r|dd�dkrdV��odS) Nz* Content-Disposition: form-data; name="%s"z; filename="%s"rr s ������ � )� isinstance�list�tupler)�item� sep_boundary�key�values�title�values r� _build_partzupload_docs._build_partqs������ ��V�=��C���&�$�'�'� ��X�F�� � �E��%��'�'� '��*�U�1�X�5�5���a���������� � � ��%�.�.� � � ��M�M�M��K�K�K�� ��r�s�s��u�,�,�� � � �� � rc�b�d}d|�d��z}|dz}|df}tj|j|���}t ||�����}t j�|��}t j||��} d|z} d� | ��| fS) z= Build up the MIME payload for the POST data z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --�asciis--rW)r\z multipart/form-data; boundary=%sr) r � functools�partialra�map�items� itertools�chain� from_iterabler-) �cls�data�boundaryr\� end_boundary� end_items�builder� part_groups�parts� body_items� content_types r�_build_multipartzupload_docs._build_multipart�s��� I�������!9�!9�9� �#�e�+� � �%�(� ��#� �O�%� � � ���'�4�:�:�<�<�0�0� ���-�-�k�:�:���_�U�I�6�6� �9�H�D� ��x�x� �#�#�\�1�1rc�R�t|d��5}|���}ddd��n #1swxYwY|jj}d|���t j�|��|fd�}t|j dz|j z��}t|��� d��}d|z}|� |��\}} d|jz} |�| t j��t$j�|j��\} } } }}}|s|s|rJ�| dkr t*j�| ��}n8| d kr t*j�| ��}nt3d | z���d } |���|�d | ��| }|�d |��|�dt;t=|������|�d|��|���|� |��nJ#tBj"$r8}|�t;|��t j#��Yd}~dSd}~wwxYw|�$��}|j%dkr3d|j%�d|j&��} |�| t j��n�|j%dkrT|�'d��}|�d|���z}d|z} |�| t j��n2d|j%�d|j&��} |�| t j#��|j(r%tSd|���d��dSdS)N�rb� doc_upload)z:actionr�content�:rczBasic zSubmitting documentation to %s�http�httpszunsupported schema ��POSTz Content-typezContent-length� Authorization��zServer response (z): i-�Locationzhttps://pythonhosted.org/%s/zUpload successful. Visit %szUpload failed (zK---------------------------------------------------------------------------)*�open�readrLrrMr+r,�basenamer�username�passwordr�decoderu� repositoryr0r�INFO�urllib�parse�urlparser{�client�HTTPConnection�HTTPSConnection�AssertionError�connect� putrequest� putheader�strr7� endheaders�send�socket�error�ERROR� getresponse�status�reason� getheader� show_response�print)rr<�fry�metarl� credentials�auth�body�ct�msg�schema�netloc�url�params�query� fragments�connrt�er�locations rrNzupload_docs.upload_file�s��� �(�D� !� !� �Q��f�f�h�h�G� � � � � � � � � � � ���� � � � �� �)��#��M�M�O�O���(�(��2�2�G�<� � �� �d�m�c�1�D�M�A�B�B� �(��5�5�<�<�W�E�E� ��+�%���(�(��.�.���b�.�$�/�B�� � � �c�3�8�$�$�$� �L� !� !�$�/� 2� 2� 6����V�U�I��9�%�9� �9�9�9� �V� � ��;�-�-�f�5�5�D�D� �w� � ��;�.�.�v�6�6�D�D� �!6��!?�@�@� @��� � �L�L�N�N�N� �O�O�F�C� (� (� (��L� �N�N�>�<� 8� 8� 8� �N�N�+�S��T���^�^� <� <� <� �N�N�?�D� 1� 1� 1� �O�O� � � � �I�I�d�O�O�O�O���|� � � � �M�M�#�a�&�&�#�)� ,� ,� ,� �F�F�F�F�F����� ���� � � � � �� �8�s�?�?�?�01����!�(�(�C�C� �M�M�#�s�x� (� (� (� (� �X��_�_��{�{�:�.�.�H���9�D�M�M�O�O�K��/�(�:�C� �M�M�#�s�x� (� (� (� (� �/0�h�h�h����A�C� �M�M�#�s�y� )� )� )� � � 0� �(�A�F�F�H�H�h� /� /� /� /� /� 0� 0s%�2�6�6�B1I�J�-J�JN)�__name__� __module__� __qualname__�DEFAULT_REPOSITORY� descriptionr � user_options�boolean_optionsr� sub_commandsr r'rErS� staticmethodra� classmethodrurN�rrrrs�������9��O�K� �� *�V�-F� F� H� 3�4� �L��,�O� � � � $�Z�0�1�L���� E�E�E�"��� #�#�#�(����\��&�2�2��[�2�$<0�<0�<0�<0�<0rr)�__doc__�base64r� distutilsr�distutils.errorsrr+r�r3rJrOrhrd� http.clientr{� urllib.parser�rG� _importlibrr}rr rrr�rr�r�s0���� &�%�%�%�%�%�������1�1�1�1�1�1� � � � � � � � ��������� � � � ���������������������!�!�!�!�!�!�+�+�+�+�+�+�������0�0�0�u0�u0�u0�u0�u0�&�u0�u0�u0�u0�u0r