Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.119.122.88
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : metadata.cpython-312.pyc
�


f
�����dZddlmZddlZddlmZddlZddlZddlZddl	m
Z
mZddlm
Z
mZmZddlmZdd	lmZmZdd
lmZmZej0e�ZGd�de
�ZGd
�de
�ZGd�de
�ZGd�de
�Zgd�ZdZ dZ!ejDd�Z#ejDd�Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+e*dzZ,d Z-d!Z.e,e.zZ/e0�Z1e1jee%�e1jee&�e1jee(�e1jee*�e1jee,�e1jee/�ejDd"�Z3d#�Z4d$�Z5e1D�cic]#}|jm�jod%d&�|��%c}Z8e8js�D��cic]\}}||��
c}}Z:d'Z;d(Z<d)Z=d*Z>d+Z?d,Z@d-ZAeB�ZCejDd.�ZDd7d/�ZEGd0�d1eB�ZFd2ZGd3ZHd4ZIGd5�d6eB�ZJycc}wcc}}w)8zzImplementation of the Metadata for Python packages PEPs.

Supports all metadata formats (1.0, 1.1, 1.2, 1.3/2.1 and 2.2).
�)�unicode_literalsN)�message_from_file�)�DistlibException�__version__)�StringIO�string_types�	text_type)�	interpret)�extract_by_key�
get_extras)�
get_scheme�PEP440_VERSION_REc��eZdZdZy)�MetadataMissingErrorzA required metadata is missingN��__name__�
__module__�__qualname__�__doc__���G/usr/local/python-3.12/lib/python3.12/site-packages/distlib/metadata.pyrrs��(rrc��eZdZdZy)�MetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nrrrrrr s��Hrrc��eZdZdZy)� MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nrrrrrr$s��*rrc��eZdZdZy)�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)rD)�Dynamic�License-Filez"extra\s*==\s*("([^"]+)"|'([^']+)')c���|dk(rtS|dk(rtS|dk(rtS|dvrttd�tD��zS|dk(rtd��|dk(rtSt|��)	N�1.0r$�1.2)�1.3�2.1c3�2K�|]}|tvs�|���y�w�N)�_345_FIELDS)�.0�fs  r�	<genexpr>z%_version2fieldlist.<locals>.<genexpr>s����"R��Q�k�=Q�1�"R�s�
��2.0z+Metadata 2.0 is withdrawn and not supported�2.2)�_241_FIELDS�_314_FIELDSrN�tuple�_566_FIELDS�
ValueError�_643_FIELDSr)�versions r�_version2fieldlistr[vsw���%����	�E�	���	�E�	���	�N�	"��U�"R�k�"R�R�R�R�	�E�	��F�G�G�	�E�	���
*�7�
3�3rc���d�}|j�D��cgc]\}}|gddfvs�|��}}}gd�}|D�]>}|tvr+d|vr'|jd�tj	d|�|t
vr+d|vr'|jd�tj	d|�|tvr+d	|vr'|jd	�tj	d
|�|tvr+d|vr'|jd�tj	d|�|tvr0d
|vr,|dk7r'|jd
�tj	d|�|tvs��d|vs��|jd�tj	d|���At|�dk(r|dSt|�dk(r!tj	d|�td��d|vxr
||t�}d	|vxr
||t�}d
|vxr
||t�}d|vxr
||t�}	t|�t|�zt|�zt|	�zdkDrtd��|s|s|s|	st |vrt S|ry|ry	|ry
ycc}}w)z5Detect the best version depending on the fields used.c�,��t�fd�|D��S)Nc3�&�K�|]}|�v���
y�wrMr)rO�marker�keyss  �rrQz5_best_version.<locals>._has_marker.<locals>.<genexpr>�s�����8�f�6�T�>�8�s�)�any)r`�markerss` r�_has_markerz"_best_version.<locals>._has_marker�s����8��8�8�8r�UNKNOWNN)rHr$rIrJrKrSrHzRemoved 1.0 due to %sr$zRemoved 1.1 due to %srIzRemoved 1.2 due to %srJzRemoved 1.3 due to %srKr+zRemoved 2.1 due to %srSzRemoved 2.2 due to %srrz)Out of options - unknown metadata set: %szUnknown metadata setz,You used incompatible 1.1/1.2/2.1/2.2 fields)�itemsrT�remove�logger�debugrUrNrWrY�lenr�_314_MARKERS�_345_MARKERS�_566_MARKERS�_643_MARKERS�intr")
�fieldsrc�key�valuer`�possible_versions�is_1_1�is_1_2�is_2_1�is_2_2s
          r�
_best_versionrw�so��9�#)�,�,�.�W�J�C��E�"�i�QU�AV�4V�C�W�D�W�B���7���k�!�e�/@�&@��$�$�U�+��L�L�0�#�6��k�!�e�/@�&@��$�$�U�+��L�L�0�#�6��k�!�e�/@�&@��$�$�U�+��L�L�0�#�6��k�!�e�/@�&@��$�$�U�+��L�L�0�#�6��k�!�e�/@�&@��m�#�!�(�(��/����4�c�:��k�!�e�/@�&@��$�$�U�+��L�L�0�#�6�'7�2����"� ��#�#�	�
�	�1�	$����@�&�I�#�$:�;�;��'�
'�
K�K��l�,K�F�
�'�
'�
K�K��l�,K�F�
�'�
'�
K�K��l�,K�F�
�'�
'�
K�K��l�,K�F�
�6�{�S��[� �3�v�;�.��V��<�q�@�#�$R�S�S��&���%�):�:�-�-�
��
��
����Xs
�I!�I!�-�_)r<r9r;)r=)r()r)r2r4r6r5r9r;r<r>r:r1rArCrBrF)r:)r,)r.r7r*r+z[^A-Za-z0-9.]+c��|r<tjd|�}tjd|jdd��}|�d|��S)zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.rx� �.)�	_FILESAFE�sub�replace)�namerZ�for_filenames   r�_get_name_and_versionr��s?����}�}�S�$�'���-�-��W�_�_�S�#�%>�?���G�$�$rc���eZdZdZ		d d�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�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!y)#�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
    Nc��|||gjd�dkrtd��i|_g|_d|_||_|�|j
|�y|�|j|�y|�"|j|�|j�yy)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��E�F�F���� ���!���������I�I�d�O�
�
 ��N�N�7�#�
�
 ��K�K�� ��%�%�'�!rc�H�t|j�|jd<y�Nr&)rwr��r�s rr�z#LegacyMetadata.set_metadata_versions��+8����+F����'�(rc�2�|j|�d|�d��y)Nz: �
)�write)r�r�r�rqs    r�_write_fieldzLegacyMetadata._write_fields���
�
�D�%�0�1rc�$�|j|�SrM)�get�r�r�s  r�__getitem__zLegacyMetadata.__getitem__s���x�x��~�rc�&�|j||�SrM)�set)r�r�rqs   r�__setitem__zLegacyMetadata.__setitem__s���x�x��e�$�$rc�r�|j|�}	|j|=y#t$rt|��wxYwrM)�
_convert_namer��KeyError)r�r��
field_names   r�__delitem__zLegacyMetadata.__delitem__s<���'�'��-�
�	!����Z�(���	!��4�.� �	!�s�
!�6c�\�||jvxs|j|�|jvSrM)r�r�r�s  r�__contains__zLegacyMetadata.__contains__$s/������$�9��"�"�4�(�D�L�L�8�	:rc��|tvr|S|jdd�j�}tj	||�S)Nrxry)�_ALL_FIELDSr�lower�_ATTR2FIELDr�r�s  rr�zLegacyMetadata._convert_name(s9���;���K��|�|�C��%�+�+�-�����t�T�*�*rc�(�|tvs|tvrgSy)Nrd)�_LISTFIELDS�_ELEMENTSFIELDr�s  r�_default_valuezLegacyMetadata._default_value.s���;��$�.�"8��I�rc�v�|jdvrtjd|�Stjd|�S)N�rHr$r�)�metadata_version�_LINE_PREFIX_PRE_1_2r~�_LINE_PREFIX_1_2�r�rqs  r�_remove_line_prefixz"LegacyMetadata._remove_line_prefix3s6��� � �N�2�'�+�+�D�%�8�8�#�'�'��e�4�4rc�2�|tvr||St|��rM)r��AttributeErrorr�s  r�__getattr__zLegacyMetadata.__getattr__9s���;����:���T�"�"rc�(�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_fullnameDs��%�T�&�\�4�	�?�H�M�Mrc�4�|j|�}|tvS)z+return True if name is a valid metadata key)r�r�r�s  r�is_fieldzLegacyMetadata.is_fieldJs���!�!�$�'���{�"�"rc�4�|j|�}|tvSrM)r�r�r�s  r�is_multi_fieldzLegacyMetadata.is_multi_fieldOs���!�!�$�'���{�"�"rc��tj|dd��}	|j|�|j�y#|j�wxYw)z*Read the metadata values from a file path.�rr#��encodingN)�codecs�openr��close)r��filepath�fps   rr�zLegacyMetadata.readSs8��
�[�[��3��
9��	��N�N�2���H�H�J��B�H�H�J�s	�<�Ac	��t|�}|d|jd<tD]�}||vr�|tvrU|j	|�}|t
vr)|�'|D�cgc]}t
|jd����}}|j||��e||}|��m|dk7s�s|j||���|j�}|r||d<y|d|d<ycc}w)z,Read the metadata values from a file object.zmetadata-versionr&N�,rdr+)
rr�r�r��get_all�_LISTTUPLEFIELDSrV�splitr��get_payload)r��fileob�msg�field�valuesrq�bodys       rr�zLegacyMetadata.read_file[s�����'��+.�/A�+B����'�(�!�
	+�E��C�����#����U�+���,�,��1C�CI�J�%�e�E�K�K��$4�5�J�F�J������'��E�
���$��)�);��H�H�U�E�*�
	+�"��� ��&*�d��]���]�0C��]���Ks�!Cc��tj|dd��}	|j||�|j�y#|j�wxYw)z&Write the metadata fields to filepath.�wr#r�N)r�r��
write_filer�)r�r��skip_unknownr�s    rr�zLegacyMetadata.writews:��
�[�[��3��
9��	��O�O�B��-��H�H�J��B�H�H�J�s	�=�Ac���|j�t|d�D]�}|j|�}|r	|dgdgfvr�|tvr#|j	||dj|���J|tvr;|dk(r3|jdvr|jdd�}n|jdd�}|g}|tvr|D�cgc]}dj|���}}|D]}|j	|||����y	cc}w)
z0Write the PKG-INFO format data to a file object.r&rdr�r+r�r�r%z	
       |N)
r�r[r�r�r��joinr�r�rr�)r��
fileobjectr�r�r�rqs      rr�zLegacyMetadata.write_files���!�!�#�'��-?�(@�A�	<�E��X�X�e�_�F���9�b�9�+�*F� F����&��!�!�*�e�S�X�X�f�5E�F���K�'��M�)��,�,��>�!'����l�!C��!'����l�!C�� ����(�(�7=�>�e�#�(�(�5�/�>��>��
<���!�!�*�e�U�;�
<�%	<�� ?s�8C/c�����fd�}|snAt|d�r"|j�D]}||||��n|D]\}}|||��|r"|j�D]\}}|||��yy)a�Set metadata values from the given iterable `other` and kwargs.

        Behavior is like `dict.update`: If `other` has a ``keys`` method,
        they are looped over and ``self[key]`` is assigned ``other[key]``.
        Else, ``other`` is an iterable of ``(key, value)`` iterables.

        Keys that don't match a metadata field or that have an empty value are
        dropped.
        c�`��|tvr%|r"�j�j|�|�yyyrM)r�r�r�)rprqr�s  �r�_setz#LegacyMetadata.update.<locals>._set�s.����k�!�e�����+�+�C�0�%�8�',�!rr`N)�hasattrr`re)r��other�kwargsr��k�vs`     rr�zLegacyMetadata.update�s����	9���
�U�F�
#��Z�Z�\�
"���Q��a��!�
"��
���1��Q��
�
������
���1��Q��
�
�rc��|j|�}|tvs|dk(rVt|ttf�s@t|t
�r-|j
d�D�cgc]}|j���}}n7g}n4|tvr,t|ttf�st|t
�r|g}ng}tjtj�r�|d}t|j�}|tvrF|�D|D]>}|j!|j
d�d�r�'tj#d|||��@ng|t$vr,|�*|j'|�sLtj#d|||�n3|t(vr+|�)|j+|�stj#d|||�|t,vr|d	k(r|j/|�}||j0|<ycc}w)
z"Control then set a metadata field.r)r�r'N�;rz$'%s': '%s' is not valid (field '%s')z.'%s': '%s' is not a valid version (field '%s')r+)r�r��
isinstance�listrVr	r��stripr�rg�isEnabledFor�logging�WARNINGrr��_PREDICATE_FIELDS�is_valid_matcher�warning�_VERSIONS_FIELDS�is_valid_constraint_list�_VERSION_FIELDS�is_valid_version�_UNICODEFIELDSr�r�)r�r�rqr��project_namer�s      rr�zLegacyMetadata.set�s����!�!�$�'��
�^�
#�t�z�'9��5�4��-�0��%��.�,1�K�K��,<�=�q�����=��=����k�!��U�T�5�M�2��%��.���������w���/���<�L�����,�F��(�(�U�->��3�A�!�2�2�1�7�7�3�<��?�C����B�(�!�T�3�3��)�)�e�.?��6�6�u�=��N�N�#S�#/���>���(�U�->��.�.�u�5��N�N�#S�#/���>��>�!��}�$��0�0��7��"����T���G>s�G	c���|j|�}||jvr|tur|j|�}|S|tvr|j|}|S|t
vrQ|j|}|�gSg}|D]5}|tvr|j|��|j|d|df��7|S|tvr0|j|}t|t�r|jd�S|j|S)zGet a metadata field.rrr�)r�r��_MISSINGr�r�r�r��appendr�r�r	r�)r�r��defaultrq�res�vals      rr�zLegacyMetadata.get�s����!�!�$�'���t�|�|�#��(�"��-�-�d�3���N��>�!��L�L��&�E��L�
�[�
 ��L�L��&�E��}��	��C��
1���/�/��J�J�s�O��J�J��A���A��/�0�
1��J�
�^�
#��L�L��&�E��%��.��{�{�3�'�'��|�|�D�!�!rc���|j�gg}}dD]}||vs�|j|��|r$|gk7rddj|�z}t|��dD]}||vs�|j|��|ddk7r||fSt	|j
���fd�}t|ft�jft�jffD]A\}}|D]7}	|j|	d�}
|
��||
�r�!|jd	|	�d
|
����9�C||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&rIc�^��|D]'}�j|jd�d�r�'yy)Nr�rFT)r�r�)rqr�r�s  �r�are_valid_constraintsz3LegacyMetadata.check.<locals>.are_valid_constraintss4����
!���.�.�q�w�w�s�|�A��?� �
!�rNzWrong value for 'z': )r�r�r�rrr�r�r�r�r�r�r�)r��strict�missing�warnings�attrr�rro�
controllerr�rqr�s           @r�checkzLegacyMetadata.check�sM���	
�!�!�#�����'�	%�D��4�����t�$�	%��g��m�1�D�I�I�g�4F�F�C�&�s�+�+�+�	%�D��4�����t�$�	%�
�"�#�u�,��H�$�$��D�K�K�(��	�%6�7L�#M�$4�$*�$C�$C�$E�$3�$*�$;�$;�$=�#>�	Q��F�J�
 �
Q�������-���$�Z��->��O�O�%��$O�P�
Q�	Q��� � rc��|j�t|d�}i}|D]O}|r||jvs�t|}|dk7r	||||<�+||D�cgc]}dj	|���c}||<�Q|Scc}w)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_urlr�)r�r[r��_FIELD2ATTRr�)r��skip_missingro�datar�rp�us       r�todictzLegacyMetadata.todict)s���	
�!�!�#�#�D�);�$<�=���� �	H�J��:����#=�!�*�-���-�'� $�Z� 0�D��I�6:�:�6F� G�����!�� G�D��I�
	H����!Hs�A7c�L�|ddk(rdD]
}||vs�||=�|dxx|z
cc<y)Nr&r$)r4r6r5r<r)r��requirementsr�s   r�add_requirementszLegacyMetadata.add_requirements@s?���"�#�u�,�>�
$���D�=��U��
$�	
�_���-�rc�0�tt|d��Sr�)r�r[r�s rr`zLegacyMetadata.keysKs���&�t�,>�'?�@�A�Arc#�>K�|j�D]}|���y�wrM�r`�r�rps  r�__iter__zLegacyMetadata.__iter__Ns �����9�9�;�	�C��I�	�s�c�N�|j�D�cgc]}||��	c}Scc}wrMrrs  rr�zLegacyMetadata.valuesRs ��%)�Y�Y�[�1�c��S�	�1�1��1s�"c�R�|j�D�cgc]	}|||f��c}Scc}wrMrrs  rrezLegacyMetadata.itemsUs%��,0�I�I�K�8�S��d�3�i� �8�8��8s�$c�j�d|jj�d|j�d|j�d�S)N�<r{�>)�	__class__rr�rZr�s r�__repr__zLegacyMetadata.__repr__Xs&��#�~�~�6�6��	�	�#�|�|�-�	-r�NNNr��FrM)"rrrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr`rr�rerrrrr�r��s����9=�!�(� G�2��%�!�:�+��
5�#�N�#�
#��D�8�<�2�8*#�X!)�"�:*!�X�..�B��2�9�-rr�zpydist.jsonz
metadata.json�METADATAc�j�eZdZdZej
d�Zej
dej�Zej
dej�Z	e
Zej
d�ZdZ
dezZddd	d
�ZdZdZedfed	fed	fed	fe	d	fd
�ZdZ		d5d�Zed�ZdefZdefZdefdefeeedefeeeedefddd�
Z[[d�Zd6d�Zd�Ze d��Z!e d��Z"e"jFd��Z"d7d�Z$e d ��Z%e d!��Z&e&jFd"��Z&d#�Z'd$�Z(d%�Z)d&�Z*d'd(d)d*d+d,d-d.d/dd0�
Z+d1�Z,d8d2�Z-d3�Z.d4�Z/y)9r z�
    The metadata of a release. This implementation uses 2.1
    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^[A-Z]([0-9A-Z-]*[0-9A-Z])?$z	.{1,2047}rRzdistlib (%s)r)�legacy)r�rZ�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�r�rZr$�dynamic)�_legacy�_datar�Nc��|||gjd�dkrtd��d|_d|_||_|�	|j||�||_yd}|r&t|d�5}|j�}ddd�n|r|j�}|�|j|jd�|_yt|t�s|jd�}	t!j"|�|_|j|j|�y#t$r%t||��|_|j�YywxYw#1swY��xYw#t$$r.tt'|�|��|_|j�YywxYw)Nr�r�)r�r��rb�r��	generatorr#)r�r�)r�r�r&r'r��_validate_mappingrr��validater�r��METADATA_VERSION�	GENERATORr�r
�decode�json�loadsrXr)r�r�r�r�r�r
rPs       rr�zMetadata.__init__�sd���'�7�#�)�)�$�/�!�3��E�F�F������
������
 ��&�&�w��7�$��
�
�D���$��%�$���6�6�8�D�$�$���|�|�~���|�)-�(=�(=�!%�����
�
"�$�	�2��;�;�w�/�D�$�!%���D�!1�D�J��*�*�4�:�:�v�>��+4�
 �-�g�f�M����
�
��
 ��$�$�� "�	$�$2�(�4�.�9?�$A�D�L��M�M�O�	$�s/�D�%D<�6E�+D9�8D9�<E�4E?�>E?)r�rZ�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�n�tj|d�}tj|d�}||v�r#||\}}|jr,|�
|�dn|�}|S|jj|�}|S|�dn|�}|dvr|jj||�}|St�}|}|jjd�}	|	r�|dk(r|	jd|�}nm|dk(r&|	jd�}	|	rU|	j||�}nB|	jd	�}	|	s|jjd	�}	|	r|	j||�}||ur|}|S||vrtj||�}|S|jr|jj|�}|S|jj|�}|S)
N�common_keys�mapped_keys�r>r=r;r<r?�
extensionsr>�python.commandsr?�python.details�python.exports)�object�__getattribute__r&r�r')
r�rp�common�mapped�lk�maker�resultrq�sentinel�ds
          rrJzMetadata.__getattribute__�s����(�(��}�=���(�(��}�=���&�=��s��I�B���|�|��:�%*�]�T���F�D�
�A"�\�\�-�-�b�1�F�@�
�=!&�
��5�7���.�.�!�Z�Z�^�^�C��7�F�6�
�1 &�x�H�%�F��
�
���|�4�A���*�,�%&�U�U�+<�e�%D�F� �M�1� !���&6� 7�A� �)*���s�E�):�� !���&6� 7�A�#$�$(�J�J�N�N�3C�$D�� �)*���s�E�):����)�!&���
�
��
��,�,�T�3�7�F�
�
�	�\�\��\�\�%�%�c�*�F��
��Z�Z�^�^�C�(�F��
rc��||jvrK|j|\}}|xs|j|vr&|j|�}|std|�d|�d���yyy)N�'z' is an invalid value for the 'z
' property)�SYNTAX_VALIDATORSr��matchr)r�rprqr��pattern�
exclusions�ms       r�_validate_valuezMetadata._validate_value�sq���$�(�(�(�"&�"8�"8��"=��G�Z��%�$�+�+�j�8��M�M�%�(���.�FK�DG�0I�J�J��9�)rc���|j||�tj|d�}tj|d�}||vr�||\}}|jr|�t�||j|<y|dvr||j
|<y|j
j
di�}|dk(r||d<y|dk(r|j
di�}|||<y|j
d	i�}|||<y||vrtj|||�y|d
k(r5t|t�r%|j�}|r|j�}ng}|jr||j|<y||j
|<y)NrBrCrDrEr>rFr?rGrHr4)rYrIrJr&�NotImplementedErrorr'�
setdefault�__setattr__r�r	r�r�)r�rprqrKrLrMryrQs        rr]zMetadata.__setattr__sW�����S�%�(��(�(��}�=���(�(��}�=���&�=��3�K�E�B���|�|��:�-�-�#(����R� ��,�,�"'��
�
�3���J�J�)�)�,��;���*�$�+0�A�'�(��M�)����%5�r�:�A�"�A�c�F����%5�r�:�A�"�A�c�F�
��
����t�S�%�0��j� ��e�\�2�!�K�K�M�E�� %���
�� "���|�|�$)����S�!�"'��
�
�3�rc�D�t|j|jd�S�NT)r�r�rZr�s r�name_and_versionzMetadata.name_and_version/s��$�T�Y�Y����d�C�Crc���|jr|jd}n|jjdg�}|j�d|j�d�}||vr|j|�|S)Nr;�provides� (�))r&r'r\r�rZr�)r�rO�ss   rrbzMetadata.provides3sW���<�<��\�\�/�2�F��Z�Z�*�*�:�r�:�F����D�L�L�1���F�?��M�M�!���
rc�Z�|jr||jd<y||jd<y)Nr;rb)r&r'r�s  rrbzMetadata.provides>s%���<�<�,1�D�L�L��)�%*�D�J�J�z�"rc���|jr|}|Sg}t|xsg|j�}|D]_}d|vrd|vrd}n;d|vrd}n|jd�|v}|r|jd�}|rt	||�}|s�L|j|d��adD]_}d|z}	|	|vs�
|j
|	�|jjd|zg�}|j|j|||����a|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)r:�env)	r&r
r:r�r�extendrfr'�get_requirements)
r��reqtsr:rnrOrQ�includer_rp�es
          rrpzMetadata.get_requirementsEs���<�<��F�<�
�9�F����"�d�k�k�:�F��
1���!�#�
�Q�(>�"�G��a�'�"&��"#�%�%��.�F�":���!"���}�!5��!�&/���&<�G���M�M�!�J�-�0�!
1�"0�
B���S�L����;��M�M�!�$�!�J�J�N�N�=�3�+>��C�E��M�M�$�"7�"7��f�<?�#8�#A�B�
B��
rc�R�|jr|j�S|jSrM)r&�_from_legacyr'r�s r�
dictionaryzMetadata.dictionaryos"���<�<��$�$�&�&��z�z�rc�f�|jrt�t|j|j�SrM)r&r[rr'�DEPENDENCY_KEYSr�s r�dependencieszMetadata.dependenciesus&���<�<�%�%�!�$�*�*�d�.B�.B�C�Crc�^�|jrt�|jj|�yrM)r&r[r'r�r�s  rryzMetadata.dependencies|s!���<�<�%�%��J�J���e�$rc�j�|jd�|jk7r
t��g}|jj	�D] \}}||vs�||vs�|j|��"|rddj
|�z}t|��|j	�D]\}}|j|||��y)Nr�zMissing metadata items: %sr)	r�r.r�MANDATORY_KEYSrer�r�rrY)	r�r�r�rrprWr�r�r�s	         rr,zMetadata._validate_mapping�s����;�;�)�*�d�.C�.C�C�2�4�4���#�2�2�8�8�:�	(�O�C���'�!���+��N�N�3�'�	(��.����7�1C�C�C�&�s�+�+��M�M�O�	/�D�A�q�� � ��A�v�.�	/rc���|jr;|jjd�\}}|s|rtjd||�yy|j	|j
|j�y)NTz#Metadata: missing: %s, warnings: %s)r&rrgr�r,r'r�)r�rrs   rr-zMetadata.validate�sZ���<�<� $��� 2� 2�4� 8��G�X��(����D�&��2�#�
�"�"�4�:�:�t�{�{�;rc��|jr|jjd�St|j|j�}|Sr_)r&rrr'�
INDEX_KEYS)r�rOs  rrzMetadata.todict�s7���<�<��<�<�&�&�t�,�,�#�D�J�J����@�F��Mrc��|jr|jrJ�|j|jd�}|jj	d�}dD]}||vs�|dk(rd}n|}||||<�|jdg�}|dgk(rg}||d<d	}|D]\}}||vs�||s�d
||ig||<�|j|d<i}i}	|S)Nr*T)r�rZr3r$�description�
classifierr�r?r,�r4))�
requires_distr5)�setup_requires_distr6rjrb)r&r'r.r/rr�rb)
r�rO�lmdr��nk�kwr`�ok�author�
maintainers
          rruzMetadata._from_legacy�s����|�|�D�J�J�.�.� $� 5� 5����
���l�l�!�!�$�'�� �	$�A��C�x���$�&�B��B� ��V��r�
�	$��W�W�Z��
$��
�"��:��B���z��;���	5�F�B���S�y�S��W�)�3�r�7�3�4��r�
�	5�"�]�]��z�����
��
rr'r(r0r*r+r-r.r/r3)
r�rZ)rErGr3r$r�)rE�python.project�project_urls�Home)rEr��contactsrr�)rEr�r�r�emailr@)rErGr?c�J�d�}|jr|jrJ�t�}|j}|jj	�D]<\}}t|t�s||vs�||||<�$|}d}|D]}	||}�
|s�8|||<�>||j|jz�}	||j|jz�}
|jrt|j�|d<t|	�|d<t|
�|d<|S#ttf$rd}Y��wxYw)Nc�$�t�}|D]�}|jd�}|jd�}|d}|D]R}|s|s|j|��d}|rd|z}|r
|r	d|�d|��}n|}|jdj||f���T��|S)	Nrhrirjr�z
extra == "%s"�(z) and r�)r�r��addr�)�entriesrqrsrhrn�rlistr�r_s        r�process_entriesz,Metadata._to_legacy.<locals>.process_entries�s����E�E��
9�����g����e�e�M�*���*�
���9�A��u��	�	�!��!#�� �%4�u�%<�F��%�:=�v�)F��),���	�	�#�(�(�A�v�;�"7�8�9�	
9�"�LrTFrCr<rA)r'r&r��LEGACY_MAPPINGrer�rVr��
IndexErrorr5r9r6r7r:�sorted)r�r�rO�nmdr�r�rQ�foundr��r1�r2s           r�
_to_legacyzMetadata._to_legacy�s5��	�*�z�z�$�,�,�.�.��!���j�j���)�)�/�/�1�	#�F�B���b�%�(���9�!$�R��F�2�J�������A���a�D����!"�F�2�J�	#��T�.�.��1C�1C�C�
D��
�T�0�0�4�3D�3D�D�
E���;�;�'-�d�k�k�':�F�#�$�"(��*����(.�r�
��$�%��
��%�j�1�� %����s�<D
�
D"�!D"c�(�||gjd�dk7rtd��|j�|rS|jr
|j}n|j	�}|r|j||��y|j
||��y|jr|j�}n|j}|rtj||ddd��ytj|dd�5}tj||ddd��ddd�y#1swYyxYw)	Nrz)Exactly one of path and fileobj is needed)r�Tr�)�ensure_ascii�indent�	sort_keysr�r#)
r�rXr-r&r�r�r�rur'r1�dumpr�r�)r�r�r�r#r��	legacy_mdrQrPs        rr�zMetadata.write�s����'�?� � ��&�!�+��H�I�I��
�
����|�|� �L�L�	� �O�O�-�	������<��@��$�$�W�<�$�H��|�|��%�%�'���J�J����	�	�!�W�4��$(�*��[�[��s�G�4�.���I�I�a���a�(,�.�.�.�.�s�$D�Dc�:�|jr|jj|�y|jjdg�}d}|D]}d|vs�d|vs�
|}n|�d|i}|j	d|�yt|d�t|�z}t
|�|d<y)Nr5rirhrjr)r&rr'r\�insertr�r�)r�rr5�always�entry�rsets      rrzMetadata.add_requirementss����<�<��L�L�)�)�,�7��:�:�0�0���D�L��F�%�
�� ��-�'��2F�"�F��
��~�%�|�5���#�#�A�v�.��6�*�-�.��\�1B�B��%+�D�\��z�"rc	��|jxsd}|jxsd}d|jj�d|j�d|�d|�d�	S)Nz	(no name)z
no versionrr{rcz)>)r�rZrrr�)r�r�rZs   rrzMetadata.__repr__(sD���y�y�'�K���,�,�.�,��$(�N�N�$;�$;�$(�$9�$9�4��J�	JrrrM)NN)NNFT)0rrrr�re�compile�METADATA_VERSION_MATCHER�I�NAME_MATCHER�FIELDNAME_MATCHERr�VERSION_MATCHER�SUMMARY_MATCHERr.rr/r|rrxrT�	__slots__r�r�rBr��	none_list�dict�	none_dictrCrJrYr]�propertyr`rb�setterrprvryr,r-rrur�r�r�rrrrrr r bs-��� *�r�z�z�*:�;���2�:�:�A�2�4�4�H�L�"��
�
�#A�2�4�4�H��'�O� �b�j�j��-�O�����,�I�����N�!�J�/�O�
6�r�:��{�+�#�[�1�#�[�1�%�{�3���/�I�8<�!�+$�Z�K�L�K��t��I��t��I�)�$�/�0�$�7�!�"�"�#�T�*�����$�d�+�,�6��K� 	�9�)�VJ�%(�N�D��D������_�_�+��+�(�T����
�D��D����%��%�/�<���<��5>��$�BM�AI�BP�$�9E��N�0�d.�42�"Jrr r )Kr�
__future__rr�r�rr1r�r�r�rr�compatrr	r
rbr�utilrr
rZrr�	getLoggerrrgrrrr�__all__r!r"r�r�r�rTrUrjrNrk�_426_FIELDS�_426_MARKERSrWrlrmrYr�r�r��EXTRA_REr[rwr�rr�rerr�r�r�r�r�r�r�rIr�r}r�r��METADATA_FILENAME�WHEEL_METADATA_FILENAME�LEGACY_METADATA_FILENAMEr )r�rr�s000r�<module>r�s_���(�
�#���	�,�5�5��,�2�	��	�	�8�	$��)�+�)�I�,�I�+�'7�+�&�+�&�J����#���2�:�:�n�-��!�r�z�z�,�/����
'�� ��7��3��!��4���B�B��-��*���L�(���e�����;�����;�����;�����;�����;�����;���2�:�:�?�@��4�$D�R6A��-1�D�J�J�L����c�"�D�(���/:�.?�.?�.A�B�{�t�U�u�d�{�B��H��'����>��
$����C���8���B�J�J�'�(�	�
%�e-�V�e-�P"��)��%��JJ�v�JJ��e��Cs�(G-�
G2
© 2025 GrazzMean