� !A?h����� ddlZddlZddlZddlmZddlmZddlmZm Z ddl m Z ddl m Z mZddlmZddlmZdd lmZeed d��eed d��eed d��d �ZGd�de��ZdS)�N)�standard_b64encode)� HTTPError)�urlopen�Request)�urlparse)�DistutilsError�DistutilsOptionError)� PyPIRCCommand)�spawn)�log�md5�sha256�blake2b)� md5_digest� sha256_digest�blake2_256_digestc�X�eZdZdZejddgzZejdgzZd�Zd�Zd�Z d�Z d S) �uploadzupload binary package to PyPI)�sign�szsign files to upload using gpg)z identity=�izGPG identity used to sign filesrc�t�tj|��d|_d|_d|_d|_d|_dS)N�rF)r �initialize_options�username�password� show_responser�identity)�selfs �E/opt/alt/python-internal/lib64/python3.11/distutils/command/upload.pyrzupload.initialize_options*s;���(��.�.�.��� ��� ������ ��� � � �c�T�tj|��|jr|jst d���|���}|ikr4|d|_|d|_|d|_|d|_ |js|j jr|j j|_dSdSdS)Nz.Must use --sign for --identity to have meaningrr� repository�realm) r �finalize_optionsrrr � _read_pypircrrr#r$� distribution)r�configs r r%zupload.finalize_options2s����&�t�,�,�,� �=� ��� �&�@��� ��"�"�$�$�� �R�<�<�"�:�.�D�M�"�:�.�D�M�$�\�2�D�O����D�J��}� 7��!2�!;� 7� �-�6�D�M�M�M� 7� 7� 7� 7r!c��|jjsd}t|���|jjD]\}}}|�|||���dS)NzHMust create and upload files in one command (e.g. setup.py sdist upload))r'� dist_filesr � upload_file)r�msg�command� pyversion�filenames r �runz upload.runDsf��� �+� ,�2�C�&�s�+�+� +�,0�,=�,H� ;� ;� (�G�Y�� � � �W�i�� :� :� :� :� ;� ;r!c� �t|j��\}}}}}} |s|s| rtd|jz���|dvrtd|z���|jr1ddd|g} |jrd|jg| dd�<t | |j� ��t|d ��} | ���} | � ��n#| � ��wxYw|j j } id d �d d�d| � ���d| � ���dtj�|��| f�d|�d|�dd�d| ����d| ����d| ����d| ����d| ����d| ����d| ����d| ����d| ����| ���| ���| ���| ���d��}d |d!<t<���D]9\}}|�� || ��� ��||<�*#tB$rY�6wxYw|jrdt|d"zd ��5} tj�|��d"z| ���f|d#<ddd��n #1swxYwY|j"d$z|j#z�$d%��}d&tK|���&d%��z}d'}d(|�$d%��z}|d)z}tOj(��}|���D]�\}}d*|z}tS|tT��s|g}|D]�}tW|��tXur|d+|d,zz }|d-}n"t[|���$d.��}|�.|��|�.|�$d.����|�.d/��|�.|������|�.|��|�/��}d0|�d1|j��}|�0|tbj2��d2|zt[tg|����|d3�}ti|j||�4��} tk|��}|�6��}|j7}n`#tp$r} | j9}| j7}Yd} ~ nCd} ~ wtt$r3} |�0t[| ��tbj;���d} ~ wwxYw|d5kr~|�0d6|�d7|��tbj2��|j<rO|�=|��}!d8�>d9|!d9f��}|�0|tbj2��dSdSd:|�d7|��}|�0|tbj;��t|���);NzIncompatible url %s)�http�httpszunsupported schema �gpgz --detach-signz-az --local-user�)�dry_run�rbz:action� file_upload�protocol_version�1�name�version�content�filetyper.�metadata_versionz1.0�summary� home_page�author� author_email�license� description�keywords�platform� classifiers)� download_url�provides�requires� obsoletesr�commentz.asc� gpg_signature�:�asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"r�zutf-8s z Submitting z to z multipart/form-data; boundary=%s)z Content-typezContent-length� Authorization)�data�headers��zServer response (z): � zK---------------------------------------------------------------------------zUpload failed ()@rr#�AssertionErrorrrr r6�open�read�closer'�metadata�get_name� get_version�os�path�basename�get_description�get_url� get_contact�get_contact_email� get_licence�get_long_description� get_keywords� get_platforms�get_classifiers�get_download_url� get_provides� get_requires� get_obsoletes�_FILE_CONTENT_DIGESTS�items� hexdigest� ValueErrorrr�encoder�decode�io�BytesIO� isinstance�list�type�tuple�str�write�getvalue�announcer �INFO�lenrr�getcoder,r�code�OSError�ERRORr�_read_pypi_response�joinr)"rr-r.r/�schema�netloc�url�params�query� fragments�gpg_args�fr=�metarS� digest_name� digest_cons� user_pass�auth�boundary� sep_boundary� end_boundary�body�key�value�titler,rT�request�result�status�reason�e�texts" r r+zupload.upload_fileLsF�� �T�_� %� %� 6����V�U�I� � J�U� J�i� J� �!6���!H�I�I� I� �*� *� *� �!6��!?�@�@� @� �9� (����h�?�H��}� @�!/��� ?���1�� � �(��,� (� (� (� (� ��$� � �� ��f�f�h�h�G� �G�G�I�I�I�I��A�G�G�I�I�I�I����� �)��� �}�� ��� �D�M�M�O�O� � �t�'�'�)�)�� ���(�(��2�2�7�;�� ��� ��� ��� �t�+�+�-�-�!�" ������#�$ �d�&�&�(�(�%�& �D�2�2�4�4�'�( �t�'�'�)�)�)�* �4�4�4�6�6�+�, ��)�)�+�+�-�. ��*�*�,�,�/�0 �4�/�/�1�1�1�2!�1�1�3�3��)�)�+�+��)�)�+�+��+�+�-�-�;����@��Y��)>�(C�(C�(E�(E� � � $�K���"�� �$/�K��$8�$8�$B�$B�$D�$D��[�!�!��� � � ��� ���� �9� 3��h��'��.�.� 3�!�)+��)9�)9�(�)C�)C�f�)L�)*�����)3��_�%� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3� 3���� 3� 3� 3� 3� �]�S�(�4�=�8�@�@��I�I� ��,�Y�7�7�>�>�w�G�G�G��I�� �8�?�?�7�#;�#;�;� �#�i�/� ��z�|�|���*�*�,�,� "� "�J�C��C�c�I�E��e�T�*�*� ����� "� "����;�;�%�'�'��.��q��9�9�E�!�!�H�E�E���J�J�-�-�g�6�6�E�� � �<�(�(�(�� � �5�<�<��0�0�1�1�1�� � �;�'�'�'�� � �5�!�!�!�!� "� � � �<� � � ��}�}�����'/�x�x����A�� � � �c�3�8�$�$�$�?��I�!�#�d�)�)�n�n�!� � �� �$�/��")�+�+�+�� ��W�%�%�F��^�^�%�%�F��Z�F�F��� � � ��V�F��U�F�F�F�F�F�F������ � � � �M�M�#�a�&�&�#�)� ,� ,� ,� ����� ���� �S�=�=� �M�M�M������G��(� $� $� $��!� -��/�/��7�7���i�i��4�� :�;�;��� � �c�3�8�,�,�,�,�,� -� -� �/5�f�f�f�f�=�C� �M�M�#�s�y� )� )� )� ��%�%� %sT�C�C�6 J� J$�#J$�:L�L �L �*T<�< V�U� V�&.V�VN) �__name__� __module__� __qualname__rEr � user_options�boolean_optionsrr%r0r+�r!r rrs�������1�K� �-� +�=�1 � �L� $�3�v�h�>�O����7�7�7�$;�;�;�K&�K&�K&�K&�K&r!r)r^rt�hashlib�base64r� urllib.errorr�urllib.requestrr� urllib.parser�distutils.errorsrr �distutils.corer �distutils.spawnr � distutilsr �getattrrnrr�r!r �r�sC��� � � � � � � � �����%�%�%�%�%�%�"�"�"�"�"�"�+�+�+�+�+�+�+�+�!�!�!�!�!�!�A�A�A�A�A�A�A�A�(�(�(�(�(�(�!�!�!�!�!�!������� �'�'�5�$�/�/��W�W�h��5�5� ���)�T�:�:����y&�y&�y&�y&�y&�]�y&�y&�y&�y&�y&r!