� ��^i���dZddlmZddlZddlmZddlZddlZddlZddl m Z m Z ddl m Z mZmZddlmZdd lmZmZdd lmZmZeje��ZGd �d e ��ZGd �de ��ZGd�de ��ZGd�de ��Zgd�ZdZ dZ!ej"d��Z#ej"d��Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+e*dzZ,d Z-e.��Z/e/�0e%��e/�0e&��e/�0e(��e/�0e*��e/�0e,��ej"d!��Z1d"�Z2d#�Z3d$�e/D��Z4d%�e4�5��D��Z6d&Z7d'Z8d(Z9d)Z:d*Z;d+Z��Z?ej"d-��Z@d7d/�ZAGd0�d1e>��ZBd2ZCd3ZDd4ZEGd5�d6e>��ZFdS)8z�Implementation of the Metadata for Python packages PEPs. Supports all metadata formats (1.0, 1.1, 1.2, 1.3/2.1 and withdrawn 2.0). �)�unicode_literalsN)�message_from_file�)�DistlibException� __version__)�StringIO� string_types� text_type)� interpret)�extract_by_key� get_extras)� get_scheme�PEP440_VERSION_REc��eZdZdZdS)�MetadataMissingErrorzA required metadata is missingN��__name__� __module__� __qualname__�__doc__����/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/distlib/metadata.pyrrs������(�(�(�(rrc��eZdZdZdS)�MetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nrrrrrr s������H�H�H�Hrrc��eZdZdZdS)� MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nrrrrrr$s������*�*�*�*rrc��eZdZdZdS)�MetadataInvalidErrorzA metadata value is invalidNrrrrrr(s������%�%�%�%rr)�Metadata�PKG_INFO_ENCODING�PKG_INFO_PREFERRED_VERSION�utf-8�1.1z \|� ) �Metadata-Version�Name�Version�Platform�Summary� Description�Keywords� Home-page�Author� Author-email�License)r&r'r(r)�Supported-Platformr*r+r,r-r.r/r0� Classifier� Download-URL� Obsoletes�Provides�Requires)r4r5r6r2r3)r&r'r(r)r1r*r+r,r-r.r/� Maintainer�Maintainer-emailr0r2r3�Obsoletes-Dist� Project-URL� Provides-Dist� Requires-Dist�Requires-Python�Requires-External)r;r<r=r9r>r7r8r:)r&r'r(r)r1r*r+r,r-r.r/r7r8r0r2r3r9r:r;r<r=r>�Private-Version� Obsoleted-By�Setup-Requires-Dist� Extension�Provides-Extra)r?rCr@rArB)�Description-Content-Typer6r5r4)rDz"extra\s*==\s*("([^"]+)"|'([^']+)')c���|dkrtS|dkrtS|dkrtS|dvr&ttd�tD����zS|dkrt St |���)N�1.0r$�1.2)�1.3�2.1c3�,K�|]}|tv� |V��dS�N)� _345_FIELDS)�.0�fs r� z%_version2fieldlist..zs,����"R�"R��Q�k�=Q�=Q�1�=Q�=Q�=Q�=Q�"R�"Rr�2.0)� _241_FIELDS� _314_FIELDSrL�tuple� _566_FIELDS� _426_FIELDSr)�versions r�_version2fieldlistrWqs����%����� �E� � ��� �E� � ��� �N� "� "��U�"R�"R�k�"R�"R�"R�R�R�R�R� �E� � ��� *�7� 3� 3�3rc���d�}g}|���D]"\}}|gddfvr� |�|���#gd�}|D�]w}|tvr4d|vr0|�d��t�d|��|t vr4d|vr0|�d��t�d|��|tvr4d |vr0|�d ��t�d |��|tvr4d |vr0|�d ��t�d |��|tvr:d |vr6|dkr0|�d ��t�d|��|tvr4d|vr0|�d��t�d|����yt|��dkr|dSt|��dkr*t�d|��td���d|vo||t��}d |vo||t��}d |vo||t��}d|vo||t��} t!|��t!|��zt!|��zt!| ��zdkrtd���|s|s|s| st"|vrt"S|rdS|rd S|rd SdS)z5Detect the best version depending on the fields used.c��|D] }||vrdS� dS)NTFr)�keys�markers�markers r� _has_markerz"_best_version.._has_marker�s+��� � �F���~�~��t�t���ur�UNKNOWNN)rFr$rGrHrPrIrFzRemoved 1.0 due to %sr$zRemoved 1.1 due to %srGzRemoved 1.2 due to %srHzRemoved 1.3 due to %srIr+zRemoved 2.1 due to %srPzRemoved 2.0 due to %srrz)Out of options - unknown metadata set: %szUnknown metadata setz,You used incompatible 1.1/1.2/2.0/2.1 fields)�items�appendrQ�remove�logger�debugrRrLrTrU�lenr� _314_MARKERS� _345_MARKERS� _566_MARKERS� _426_MARKERS�intr") �fieldsr]rZ�key�value�possible_versions�is_1_1�is_1_2�is_2_1�is_2_0s r� _best_versionrr�si����� �D��l�l�n�n��� ��U� �R��D�)� )� )� � � � �C�����B�B�B���7�7�� �k� !� !�e�/@�&@�&@� � $� $�U� +� +� +� �L�L�0�#� 6� 6� 6� �k� !� !�e�/@�&@�&@� � $� $�U� +� +� +� �L�L�0�#� 6� 6� 6� �k� !� !�e�/@�&@�&@� � $� $�U� +� +� +� �L�L�0�#� 6� 6� 6� �k� !� !�e�/@�&@�&@� � $� $�U� +� +� +� �L�L�0�#� 6� 6� 6� �k� !� !�e�/@�&@�&@��m�#�#�!�(�(��/�/�/�� � �4�c�:�:�:� �k� !� !�e�/@�&@�&@� � $� $�U� +� +� +� �L�L�0�#� 6� 6� 6�� � ����"�"� ��#�#� � � � �1� $� $�� � �@�&�I�I�I�#�$:�;�;�;��'� '� K�K�K��l�,K�,K�F� �'� '� K�K�K��l�,K�,K�F� �'� '� K�K�K��l�,K�,K�F� �'� '� K�K�K��l�,K�,K�F� �6�{�{�S��[�[� �3�v�;�;�.��V���<�q�@�@�#�$R�S�S�S� �.�&�.��.��.� %�):� :� :�-� -� ���u� ���u� ���u� �5rc�`�i|]+}|����dd��|��,S)�-�_)�lower�replace)rM�names r� ry�s?�����-1�D�J�J�L�L����c�"�"�D���rc��i|]\}}||�� Srr)rM�attr�fields rryry�s��B�B�B�{�t�U�u�d�B�B�Br)r<r9r;)r=)r()r)r2r4r6r5r9r;r<r>r:r1rArCrB)r:)r,)r.r7r*r+z[^A-Za-z0-9.]+Fc��|rJt�d|��}t�d|�dd����}|�d|��S)zhReturn the distribution name with version. If for_filename is true, return a filename-escaped form.rt� �.)� _FILESAFE�subrw)rxrV� for_filenames r�_get_name_and_versionr��sT���@��}�}�S�$�'�'���-�-��W�_�_�S�#�%>�%>�?�?���d�d�G�G� $�$rc���eZdZdZ d"d�Zd�Zd�Zd�Zd�Zd �Z d �Z d �Z d �Z d �Z d�Zd#d�Zd�Zd�Zd�Zd�Zd#d�Zd#d�Zd$d�Zd�Zefd�Zd#d�Zd#d�Zd�Zd�Zd�Zd�Zd �Z d!�Z!dS)%�LegacyMetadataaoThe legacy metadata of a release. Supports versions 1.0, 1.1, 1.2, 2.0 and 1.3/2.1 (auto-detected). You can instantiate the class with one of these arguments (or none): - *path*, the path to a metadata file - *fileobj* give a file-like object with metadata as content - *mapping* is a dict-like object - *scheme* is a version scheme name N�defaultc�R�|||g�d��dkrtd���i|_g|_d|_||_|�|�|��dS|�|�|��dS|�+|�|��|� ��dSdS)N��'path, fileobj and mapping are exclusive) �count� TypeError�_fields�requires_files� _dependencies�scheme�read� read_file�update�set_metadata_version)�self�path�fileobj�mappingr�s r�__init__zLegacyMetadata.__init__�s��� �'�7� #� )� )�$� /� /�!� 3� 3��E�F�F� F��� � ���!����� � � � �I�I�d�O�O�O�O�O� � � �N�N�7� #� #� #� #� #� � � �K�K�� � � � � %� %� '� '� '� '� '�!� rc�>�t|j��|jd<dS�Nr&)rrr��r�s rr�z#LegacyMetadata.set_metadata_version s��+8���+F�+F�� �'�(�(�(rc�<�|�|�d|�d���dS)Nz: � )�write)r�r�rxrls r� _write_fieldzLegacyMetadata._write_field s'��� � �D�D�D�%�%�%�0�1�1�1�1�1rc�,�|�|��SrK)�get�r�rxs r� __getitem__zLegacyMetadata.__getitem__s���x�x��~�~�rc�.�|�||��SrK)�set)r�rxrls r� __setitem__zLegacyMetadata.__setitem__s���x�x��e�$�$�$rc�|�|�|��} |j|=dS#t$rt|���wxYwrK)� _convert_namer��KeyError)r�rx� field_names r� __delitem__zLegacyMetadata.__delitem__sQ���'�'��-�-� � !�� �Z�(�(�(��� !� !� !��4�.�.� � !���s�!�;c�L�||jvp|�|��|jvSrK)r�r�r�s r� __contains__zLegacyMetadata.__contains__s.���� �$�9��"�"�4�(�(�D�L�8� :rc��|tvr|S|�dd�����}t�||��S)Nrtru)� _ALL_FIELDSrwrv� _ATTR2FIELDr�r�s rr�zLegacyMetadata._convert_name!sE�� �;� � ��K��|�|�C��%�%�+�+�-�-�����t�T�*�*�*rc�.�|tvs |tvrgSdS)Nr^)� _LISTFIELDS�_ELEMENTSFIELDr�s r�_default_valuezLegacyMetadata._default_value's!�� �;� � �$�.�"8�"8��I��yrc��|jdvrt�d|��St�d|��S)N�rFr$r�)�metadata_version�_LINE_PREFIX_PRE_1_2r��_LINE_PREFIX_1_2�r�rls r�_remove_line_prefixz"LegacyMetadata._remove_line_prefix,s<�� � �N� 2� 2�'�+�+�D�%�8�8� 8�#�'�'��e�4�4� 4rc�B�|tvr||St|���rK)r��AttributeErrorr�s r� __getattr__zLegacyMetadata.__getattr__2s%�� �;� � ���:� ��T�"�"�"rFc�<�t|d|d|��S)zhReturn the distribution name with version. If filesafe is true, return a filename-escaped form.r'r()r�)r��filesafes r� get_fullnamezLegacyMetadata.get_fullname=s��%�T�&�\�4� �?�H�M�M�Mrc�>�|�|��}|tvS)z+return True if name is a valid metadata key)r�r�r�s r�is_fieldzLegacyMetadata.is_fieldCs ���!�!�$�'�'���{�"�"rc�>�|�|��}|tvSrK)r�r�r�s r�is_multi_fieldzLegacyMetadata.is_multi_fieldHs ���!�!�$�'�'���{�"�"rc��tj|dd���} |�|��|���dS#|���wxYw)z*Read the metadata values from a file path.�rr#��encodingN)�codecs�openr��close)r��filepath�fps rr�zLegacyMetadata.readLsR�� �[��3�� 9� 9� 9�� � �N�N�2� � � � �H�H�J�J�J�J�J��B�H�H�J�J�J�J���s �A�Ac��t|��}|d|jd<tD]y}||vr�|tvrC|�|��}|t vr|� d�|D��}|�||���S||}|�|dkr|�||���z|���}|r|n|d|d<dS)z,Read the metadata values from a file object.zmetadata-versionr&Nc�R�g|]$}t|�d������%S��,)rS�split�rMrls r� z,LegacyMetadata.read_file..as,��J�J�J�%�e�E�K�K��$4�$4�5�5�J�J�Jrr^r+)rr�r�r��get_all�_LISTTUPLEFIELDSr�� get_payload)r��fileob�msgr|�valuesrl�bodys rr�zLegacyMetadata.read_fileTs�����'�'��+.�/A�+B�� �'�(�!� +� +�E��C����� �#�#����U�+�+���,�,�,��1C�J�J�6�J�J�J�F������'�'�'�'��E� ���$��)�);�);��H�H�U�E�*�*�*����� � ��&*�C�d�d��]�0C��]���rc��tj|dd���} |�||��|���dS#|���wxYw)z&Write the metadata fields to filepath.�wr#r�N)r�r�� write_filer�)r�r�� skip_unknownr�s rr�zLegacyMetadata.writepsT�� �[��3�� 9� 9� 9�� � �O�O�B� � -� -� -� �H�H�J�J�J�J�J��B�H�H�J�J�J�J���s �A�Ac���|���t|d��D]�}|�|��}|r |dgdgfvr�"|tvr+|�||d�|�����V|t vr?|dkr6|jdvr|�dd��}n|�dd��}|g}|tvr d �|D��}|D]}|�|||�����d S) z0Write the PKG-INFO format data to a file object.r&r^r�r+r�r�r%z |c�8�g|]}d�|����Sr���joinr�s rr�z-LegacyMetadata.write_file..�s"��>�>�>�e�#�(�(�5�/�/�>�>�>rN) r�rWr�r�r�r�r�r�rwr�)r�� fileobjectr�r|r�rls rr�zLegacyMetadata.write_filexs;�� �!�!�#�#�#�'��-?�(@�A�A� <� <�E��X�X�e�_�_�F�� ��9�b�9�+�*F� F� F����&�&��!�!�*�e�S�X�X�f�5E�5E�F�F�F���K�'�'��M�)�)��,��>�>�!'����l�!C�!C���!'����l�!C�!C�� ����(�(�(�>�>�v�>�>�>��� <� <���!�!�*�e�U�;�;�;�;� <�% <� ._set�sI����k�!�!�e�!�����+�+�C�0�0�%�8�8�8�8�8�"�!�!�!rrZN)�hasattrrZr_)r��other�kwargsr��k�vs` rr�zLegacyMetadata.update�s���� 9� 9� 9� 9� 9�� � � �U�F� #� #� ��Z�Z�\�\� "� "����Q��a��!�!�!�!� "�� � ���1���Q�� � � � � � �� � ��� � ���1���Q�� � � � � � � � rc��|�|��}|tvs|dkrTt|ttf��s8t|t ��r d�|�d��D��}nCg}n@|tvr7t|ttf��st|t ��r|g}ng}t� tj ��r�|d}t|j ��}|tvrS|�Q|D]M}|�|�d��d��st�d|||���Nn{|t"vr5|�3|�|��st�d |||��n=|t&vr4|�2|�|��st�d |||��|t*vr|d kr|�|��}||j|<dS) z"Control then set a metadata field.r)c�6�g|]}|�����Sr)�strip)rMr�s rr�z&LegacyMetadata.set..�s ��=�=�=�q������=�=�=rr�r'N�;rz$'%s': '%s' is not valid (field '%s')z.'%s': '%s' is not a valid version (field '%s')r+)r�r�� isinstance�listrSr r�r�rb� isEnabledFor�logging�WARNINGrr��_PREDICATE_FIELDS�is_valid_matcher�warning�_VERSIONS_FIELDS�is_valid_constraint_list�_VERSION_FIELDS�is_valid_version�_UNICODEFIELDSr�r�)r�rxrl� project_namer�r�s rr�zLegacyMetadata.set�s"���!�!�$�'�'�� �^� #� #�t�z�'9�'9��5�4��-�0�0�(:��%��.�.� �=�=�E�K�K��,<�,<�=�=�=�������k�!�!��U�T�5�M�2�2�"��%��.�.� ������� � � �w�� /� /� >���<�L��� �,�,�F��(�(�(�U�->��3�3�A�!�2�2�1�7�7�3�<�<��?�C�C�3����B�(�!�T�3�3�3��3��)�)�)�e�.?��6�6�u�=�=�>��N�N�#S�#/���>�>�>����(�(�U�->��.�.�u�5�5�>��N�N�#S�#/���>�>�>� �>� !� !��}�$�$��0�0��7�7��"�� �T���rc��|�|��}||jvr |tur|�|��}|S|tvr|j|}|S|t vr\|j|}|�gSg}|D]D}|t vr|�|���!|�|d|df���E|S|tvr7|j|}t|t��r|� d��S|j|S)zGet a metadata field.Nrrr�) r�r��_MISSINGr�r�r�r�r`r�r�r r�)r�rxr�rl�res�vals rr�zLegacyMetadata.get�s$���!�!�$�'�'�� �t�|� #� #��(�"�"��-�-�d�3�3���N� �>� !� !��L��&�E��L� �[� � ��L��&�E��}�� ��C�� 1� 1���/�/�/��J�J�s�O�O�O�O��J�J��A���A��/�0�0�0�0��J� �^� #� #��L��&�E��%��.�.� (��{�{�3�'�'�'��|�D�!�!rc�>� �|���gg}}dD]}||vr|�|���|r-|gkr'dd�|��z}t|���dD]}||vr|�|���|ddkr||fSt |j��� � fd�}t |ft� jft� j ffD]H\}}|D]@} |� | d��} | �&|| ��s|�d | �d | �����A�I||fS) zkCheck if the metadata is compliant. If strict is True then raise if no Name or Version are provided)r'r(zmissing required metadata: %s�, )r-r.r&rGc�t��|D]3}��|�d��d��sdS�4dS)Nr�rFT)r�r�)rlr�r�s �r�are_valid_constraintsz3LegacyMetadata.check..are_valid_constraintssG���� !� !���.�.�q�w�w�s�|�|�A��?�?�!� �5�5�!��4rNzWrong value for 'z': ) r�r`r�rrr�r�r�r�r�r�r�) r��strict�missing�warningsr{r�rrj� controllerr|rlr�s @r�checkzLegacyMetadata.check�s���� �!�!�#�#�#�����'� %� %�D��4������t�$�$�$�� � ,�g��m�m�1�D�I�I�g�4F�4F�F�C�&�s�+�+� +�+� %� %�D��4������t�$�$�$�� �"� #�u� ,� ,��H�$� $��D�K�(�(�� � � � � � %6�7L�#M�$4�$*�$C�$E�$3�$*�$;�$=�#>� Q� Q� �F�J�  � Q� Q�������-�-���$�Z�Z��->�->�$��O�O�O�%�%�%���$O�P�P�P�� Q� �� � rc���|���t|d��}i}|D]A}|r ||jvr4t|}|dkr ||||<�,d�||D��||<�B|S)aReturn fields as a dict. Field names will be converted to use the underscore-lowercase style instead of hyphen-mixed case (i.e. home_page instead of Home-page). This is as per https://www.python.org/dev/peps/pep-0566/#id17. r&� project_urlc�8�g|]}d�|����Sr�r�)rM�us rr�z)LegacyMetadata.todict..5s"�� G� G� G�����!��� G� G� Gr)r�rWr�� _FIELD2ATTR)r�� skip_missingrj�datar�rks r�todictzLegacyMetadata.todict"s��� �!�!�#�#�#�#�D�);�$<�=�=���� � H� H�J�� H�:���#=�#=�!�*�-���-�'�'� $�Z� 0�D��I�I� G� G�d�:�6F� G� G� G�D��I��� rc�V�|ddkr dD] }||vr||=� |dxx|z cc<dS)Nr&r$)r4r6r5r<r)r�� requirementsr|s r�add_requirementszLegacyMetadata.add_requirements9sU�� �"� #�u� ,� ,�>� $� $���D�=�=��U� �� �_�����-�����rc�F�tt|d����Sr�)r�rWr�s rrZzLegacyMetadata.keysDs���&�t�,>�'?�@�@�A�A�Arc#�@K�|���D]}|V��dSrK�rZ)r�rks r�__iter__zLegacyMetadata.__iter__Gs2�����9�9�;�;� � �C��I�I�I�I� � rc�D���fd�����D��S)Nc� ��g|] }�|�� Srr�rMrkr�s �rr�z)LegacyMetadata.values..Ls���1�1�1�c��S� �1�1�1rrr�s`rr�zLegacyMetadata.valuesKs%���1�1�1�1�T�Y�Y�[�[�1�1�1�1rc�D���fd�����D��S)Nc�$��g|] }|�|f�� Srrrs �rr�z(LegacyMetadata.items..Os"���8�8�8�S��d�3�i� �8�8�8rrr�s`rr_zLegacyMetadata.itemsNs%���8�8�8�8�D�I�I�K�K�8�8�8�8rc�B�d|jj�d|j�d|j�d�S)N�)� __class__rrxrVr�s r�__repr__zLegacyMetadata.__repr__Qs-���#�~�6�6�6�� � � �#�|�|�|�-� -r�NNNr��FrK)"rrrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r rrrZrr�r_r%rrrr�r��s��������9=�!�(�(�(�(� G�G�G�2�2�2����%�%�%�!�!�!�:�:�:�+�+�+� ��� 5�5�5� #�#�#�N�N�N�N� #�#�#� #�#�#����D�D�D�8����<�<�<�<�2����8*#�*#�*#�X!)�"�"�"�"�:*!�*!�*!�*!�X����..�.�.�B�B�B����2�2�2�9�9�9�-�-�-�-�-rr�z pydist.jsonz metadata.json�METADATAc�,�eZdZdZejd��Zejdej��Ze Z ejd��Z dZ de zZdddd �Zd Zd Zedfedfe dfe dfd �Zd Z d7d�Zed��ZdefZdefZdefdefeeedefeeeedefddd� Z[[d�Zd8d�Zd�Zed���Z ed���Z!e!j"d���Z!d9d�Z#ed ���Z$ed!���Z%e%j"d"���Z%d#�Z&d$�Z'd%�Z(d&�Z)d'd(d)d*d+d,d-d.d/dd0� Z*d1�Z+d:d4�Z,d5�Z-d6�Z.dS);r z� The metadata of a release. This implementation uses 2.0 (JSON) metadata where possible. If not possible, it wraps a LegacyMetadata instance which handles the key-value metadata format. z ^\d+(\.\d+)*$z!^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$z .{1,2047}rPz distlib (%s)r)�legacy)rxrV�summaryzqname version license summary description author author_email keywords platform home_page classifiers download_urlzwextras run_requires test_requires build_requires dev_requires provides meta_requires obsoleted_by supports_environments)r�rxrVr+)�_legacy�_datar�Nr�c�l�|||g�d��dkrtd���d|_d|_||_|�[ |�||��||_dS#t $r.t||���|_|���YdSwxYwd}|r=t|d��5}|� ��}ddd��n #1swxYwYn|r|� ��}|�|j |j d�|_dSt|t��s|�d��} t!j|��|_|�|j|��dS#t$$r;tt'|��|���|_|���YdSwxYw)Nr�r�)r�r��rb�r�� generatorr#)r�r�)r�r�r,r-r��_validate_mappingrr��validater�r��METADATA_VERSION� GENERATORr�r �decode�json�loads� ValueErrorr)r�r�r�r�r�rrNs rr�zMetadata.__init__�s�� �'�7� #� )� )�$� /� /�!� 3� 3��E�F�F� F��� ��� ��� � � � ��&�&�w��7�7�7�$�� � � ��3� � � �-�g�f�M�M�M�� �� � ������� �����D�� &��$��%�%�$���6�6�8�8�D�$�$�$�$�$�$�$�$�$�$�$����$�$�$�$��� &��|�|�~�~���|�)-�(=�!%����� � � � "�$� �2�2�0��;�;�w�/�/�D� $�!%��D�!1�!1�D�J��*�*�4�:�v�>�>�>�>�>��!� $� $� $�$2�(�4�.�.�9?�$A�$A�$A�D�L��M�M�O�O�O�O�O�O� $���s7�A#�#4B�B�2C�C�C�84E.�.AF3�2F3)rxrV�license�keywordsr+r<rArCr2)r3N)r&N) � run_requires�build_requires� dev_requires� test_requires� meta_requires�extras�modules� namespaces�exports�commands� classifiers� source_urlr�c��t�|d��}t�|d��}||v�r<||\}}|jr.|�|�dn |��}�nt|j�|��}�nX|�dn |��}|dvr|j�||��}�n)t��}|}|j�d��} | r�|dkr| �d|��}n}|dkr.| �d��} | r| �||��}nI| �d ��} | s|j�d ��} | r| �||��}||ur|}n\||vrt�||��}n<|jr|j�|��}n|j�|��}|S) N� common_keys� mapped_keys�rErDrBrCrF� extensionsrE�python.commandsrF�python.details�python.exports)�object�__getattribute__r,r�r-) r�rk�common�mapped�lk�maker�resultrl�sentinel�ds rrQzMetadata.__getattribute__�s����(�(��}�=�=���(�(��}�=�=�� �&�=�=��s� �I�B���|� '��:�%*�]�T�T�����F�F�!�\�-�-�b�1�1�F�F� %� ���5�5�7�7���.�.�.�!�Z�^�^�C��7�7�F�F� &�x�x�H�%�F�� ���|�4�4�A�� ;��*�,�,�%&�U�U�+<�e�%D�%D�F�F� �M�1�1� !���&6� 7� 7�A� �;�)*���s�E�):�):��� !���&6� 7� 7�A�#$�E�$(�J�N�N�3C�$D�$D�� �;�)*���s�E�):�):����)�)�!&��� �� � ��,�,�T�3�7�7�F�F� �\� )��\�%�%�c�*�*�F�F��Z�^�^�C�(�(�F�� rc��||jvrH|j|\}}|p|j|vr/|�|��}|std|�d|�d����dSdSdS)N�'z' is an invalid value for the 'z ' property)�SYNTAX_VALIDATORSr��matchr)r�rkrlr��pattern� exclusions�ms r�_validate_valuezMetadata._validate_value�s��� �$�(� (� (�"&�"8��"=� �G�Z��%�$�+�j�8�8��M�M�%�(�(���J�.�.�FK�e�e�DG�C�C�0I�J�J�J� )� (�8�8�J�Jrc���|�||��t�|d��}t�|d��}||vr�||\}}|jr|�t�||j|<dS|dvr ||j|<dS|j�di��}|dkr||d<dS|dkr|�di��}|||<dS|�d i��}|||<dS||vrt�|||��dS|d krBt|t��r-|� ��}|r|� ��}ng}|jr ||j|<dS||j|<dS) NrIrJrKrLrErMrFrNrOr;) r`rPrQr,�NotImplementedErrorr-� setdefault� __setattr__r�r r�r�)r�rkrlrRrSrTrurXs rrdzMetadata.__setattr__�s��� ���S�%�(�(�(��(�(��}�=�=���(�(��}�=�=�� �&�=�=��3�K�E�B���|� #��:�-�-�#(�� �R� � � ��,�,�,�"'�� �3�����J�)�)�,��;�;���*�$�$�+0�A�'�(�(�(��M�)�)�� � �%5�r�:�:�A�"�A�c�F�F�F�� � �%5�r�:�:�A�"�A�c�F�F�F� �� � � � � �t�S�%� 0� 0� 0� 0� 0��j� � ��e�\�2�2�#�!�K�K�M�M�E��#� %� � � � ��� "���|� (�$)�� �S�!�!�!�"'�� �3���rc�8�t|j|jd��S�NT)r�rxrVr�s r�name_and_versionzMetadata.name_and_version%s��$�T�Y�� �d�C�C�Crc��|jr|jd}n|j�dg��}|j�d|j�d�}||vr|�|��|S)Nr;�provides� (�))r,r-rcrxrVr`)r�rV�ss rrizMetadata.provides)sg�� �<� ;��\�/�2�F�F��Z�*�*�:�r�:�:�F�����D�L�L�L� 1�� �F�?�?� �M�M�!� � � �� rc�@�|jr ||jd<dS||jd<dS)Nr;ri)r,r-r�s rrizMetadata.provides4s0�� �<� +�,1�D�L�� )� )� )�%*�D�J�z� "� "� "rc� �|jr|}n�g}t|pg|j��}|D]q}d|vrd|vrd}nGd|vrd}n|�d��|v}|r'|�d��}|rt ||��}|r|�|d���rdD]i}d|z} | |vr^|�| ��|j�d|zg��}|�|�|||������j|S) a� Base method to get dependencies, given a set of extras to satisfy and an optional environment context. :param reqts: A list of sometimes-wanted dependencies, perhaps dependent on extras and environment. :param extras: A list of optional components being requested. :param env: An optional environment for marker evaluation. �extra� environmentT�requires)�build�dev�testz:%s:z %s_requires)rA�env) r,r rAr�r �extendrar-�get_requirements) r��reqtsrArurVrX�includer\rk�es rrwzMetadata.get_requirements;s`�� �<� B��F�F��F��� �"�d�k�:�:�F�� 1� 1���!�#�#� �Q�(>�(>�"�G�G��a�'�'�"&���"#�%�%��.�.�F�":���=�!"���}�!5�!5��!�=�&/���&<�&<�G��1��M�M�!�J�-�0�0�0��/� B� B���S�L����;�;��M�M�!�$�$�$�!�J�N�N�=�3�+>��C�C�E��M�M�$�"7�"7��f�.process_entries�s����E�E�E�� 9� 9�����g�����e�e�M�*�*���*� ��� 9� 9�A�� 9�u� 9�� � �!� � � � �!#�� �=�%4�u�%<�F��-�%�-�-�:=�#�#�v�v�)F���),��� � �#�(�(�A�v�;�"7�"7�8�8�8�8� 9��LrTFrCr<rA)r-r,r��LEGACY_MAPPINGr_r�rSr�� IndexErrorr<r@r=r>rA�sorted) r�r�rV�nmdr�r�rX�foundr��r1�r2s r� _to_legacyzMetadata._to_legacy�sg�� � � �*�z�.�$�,�.�.�.��!�!���j���)�/�/�1�1� #� #�F�B���b�%�(�(� #���9�9�!$�R��F�2�J���������A���a�D����$�j�1���� %����������#�!"�F�2�J�� �_�T�.��1C�C� D� D�� �_�T�0�4�3D�D� E� E�� �;� ;�'-�d�k�':�':�F�#� $�"(��*�*����(.�r� � ��$�%�� s�5A>�>B�BFTc�D�||g�d��dkrtd���|���|rW|jr|j}n|���}|r|�||���dS|�||���dS|jr|���}n|j}|rtj ||ddd���dStj |dd��5}tj ||ddd���ddd��dS#1swxYwYdS) Nrz)Exactly one of path and fileobj is needed)r�Tr�)� ensure_ascii�indent� sort_keysr�r#) r�r9r3r,r�r�r�r|r-r7�dumpr�r�)r�r�r�r*r�� legacy_mdrXrNs rr�zMetadata.write�s��� �'�?� � �� &� &�!� +� +��H�I�I� I� � � ���� � .��|� .� �L� � � �O�O�-�-� �� I�����<��@�@�@�@�@��$�$�W�<�$�H�H�H�H�H��|� ��%�%�'�'����J��� .�� �!�W�4��$(�*�*�*�*�*�*��[��s�G�4�4�.���I�a���a�(,�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.����.�.�.�.�.�.s�.D�D�Dc�R�|jr|j�|��dS|j�dg��}d}|D]}d|vrd|vr|}n�|�d|i}|�d|��dSt |d��t |��z}t |��|d<dS)Nr<rprorqr)r,rr-rc�insertr�r�)r�rr<�always�entry�rsets rrzMetadata.add_requirements s��� �<� 2� �L� )� )�,� 7� 7� 7� 7� 7��:�0�0���D�D�L��F�%� � �� ��-�-�'��2F�2F�"�F��E���~�%�|�5���#�#�A�v�.�.�.�.�.��6�*�-�.�.��\�1B�1B�B��%+�D�\�\��z�"�"�"rc �b�|jpd}|jpd}d|jj�d|j�d|�d|�d� S)Nz (no name)z no versionr"r~rjz)>)rxrVr$rr�)r�rxrVs rr%zMetadata.__repr__sN���y�'�K���,�.�,���$(�N�$;�$;�$;�$(�$9�$9�$9�4�4�4����J� Jrr&rK)NN)NNFT)/rrrr�re�compile�METADATA_VERSION_MATCHER�I� NAME_MATCHERr�VERSION_MATCHER�SUMMARY_MATCHERr4rr5r�r�rr[� __slots__r�r�rIr�� none_list�dict� none_dictrJrQr`rd�propertyrgri�setterrwr}r�r2r3rr|r�r�r�rr%rrrr r [s�������� *�r�z�*:�;�;���2�:�A�2�4�H�H�L�'�O� �b�j��-�-�O�����,�I������N� !�J�/�O� 6�r�:��{�+�#�[�1�#�[�1� ���/�I�8<�!�+$�+$�+$�+$�Z�#�K�L�L�K��t� �I��t� �I�)�$�/�0�$�7�!�"�"�#�T�*�����$�d�+�,�6���K� �9�)�)�)�VJ�J�J�J�%(�%(�%(�N�D�D��X�D�����X���_�+�+��_�+� (�(�(�(�T����X�� �D�D��X�D� ��%�%���%� /� /� /�<�<�<�������<��5>��$�BM�AI�BP�$�9E� � �N�0�0�0�d.�.�.�.�42�2�2�"J�J�J�J�Jrr r')Gr� __future__rr�r�rr7r�r�r�rr�compatrr r r[r �utilr r rVrr� getLoggerrrbrrrr�__all__r!r"r�r�r�rQrRrerLrfrUrhrTrgr�r�r��EXTRA_RErWrrr�r_rr�r�r�r�r�r�r�rPrr�r�r��METADATA_FILENAME�WHEEL_METADATA_FILENAME�LEGACY_METADATA_FILENAMEr rrr�r�s��� ��(�'�'�'�'�'� � � � �#�#�#�#�#�#� � � � ����� � � � �,�+�+�+�+�+�+�+�5�5�5�5�5�5�5�5�5�5�������,�,�,�,�,�,�,�,�2�2�2�2�2�2�2�2� �� �8� $� $��)�)�)�)�)�+�)�)�)�I�I�I�I�I�,�I�I�I�+�+�+�+�+�'7�+�+�+�&�&�&�&�&�+�&�&�&� J� I� I����#���2�:�n�-�-��!�r�z�,�/�/��� � '� �  � �7� �3� �!� �4� ��B�B� �-� ��c�e�e� � ���;���� ���;���� ���;���� ���;���� ���;���� �2�:�?� @� @�� 4� 4� 4�E�E�E�R��5@���� �C�B�k�.?�.?�.A�.A�B�B�B� �H��'����.� � $����C�� �6�8�8�� �B�J�'� (� (� � %� %� %� %�e-�e-�e-�e-�e-�V�e-�e-�e-�P "��)��%��GJ�GJ�GJ�GJ�GJ�v�GJ�GJ�GJ�GJ�GJr