https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/distlib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/distlib/__pycache__/metadata.cpython-310.pyc
o

F�P`�@s�dZddlmZddlZddlmZddlZddlZddlZddl	m
Z
mZddlm
Z
mZmZddlmZdd	lmZmZdd
lmZmZe�e�ZGdd�de
�ZGd
d�de
�ZGdd�de
�ZGdd�de
�Zgd�ZdZ dZ!e�"d�Z#e�"d�Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+e*dZ,d Z-e.�Z/e/�0e%�e/�0e&�e/�0e(�e/�0e*�e/�0e,�e�"d!�Z1d"d#�Z2d$d%�Z3d&d'�e/D�Z4d(d'�e4�5�D�Z6d)Z7d*Z8d+Z9d,Z:d-Z;d.Z<d/Z=e>�Z?e�"d0�Z@d;d2d3�ZAGd4d5�d5e>�ZBd6ZCd7ZDd8ZEGd9d:�d:e>�ZFdS)<z�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__�rr�2/usr/lib/python3/dist-packages/distlib/metadata.pyr�rc@r)�MetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nrrrrrr rrc@r)� MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nrrrrrr$rrc@r)�MetadataInvalidErrorzA metadata value is invalidNrrrrrr(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+r,�
Classifier�Download-URL�	Obsoletes�Provides�Requires)r0r1r2r.r/)r"r#r$r%r-r&r'r(r)r*r+�
Maintainer�Maintainer-emailr,r.r/�Obsoletes-Dist�Project-URL�
Provides-Dist�
Requires-Dist�Requires-Python�Requires-External)r7r8r9r5r:r3r4r6)r"r#r$r%r-r&r'r(r)r*r+r3r4r,r.r/r5r6r7r8r9r:�Private-Version�Obsoleted-By�Setup-Requires-Dist�	Extension�Provides-Extra)r;r?r<r=r>)�Description-Content-Typer2r1r0)r@z"extra\s*==\s*("([^"]+)"|'([^']+)')cCsV|dkrtS|dkrtS|dkrtS|dvr!ttdd�tD��S|dkr'tSt|��)N�1.0r �1.2)�1.3�2.1css�|]	}|tvr|VqdS�N)�_345_FIELDS)�.0�frrr�	<genexpr>zs�z%_version2fieldlist.<locals>.<genexpr>�2.0)�_241_FIELDS�_314_FIELDSrF�tuple�_566_FIELDS�_426_FIELDSr)�versionrrr�_version2fieldlistqsrQc
Csdd�}g}|��D]\}}|gddfvrq
|�|�q
gd�}|D]x}|tvr7d|vr7|�d�t�d|�|tvrJd|vrJ|�d�t�d	|�|tvr]d
|vr]|�d
�t�d|�|tvrpd|vrp|�d�t�d
|�|tvr�d|vr�|dkr�|�d�t�d|�|t	vr�d|vr�|�d�t�d|�q"t
|�dkr�|dSt
|�dkr�t�d|�td��d|vo�||t�}d
|vo�||t
�}d|vo�||t�}d|vo�||t�}	t|�t|�t|�t|	�dkr�td��|s�|s�|s�|	s�t|vr�tS|�rdS|�rd
S|�rdSdS)z5Detect the best version depending on the fields used.cSs|D]	}||vrdSqdS)NTFr)�keys�markers�markerrrr�_has_marker�s
�z"_best_version.<locals>._has_marker�UNKNOWNN)rAr rBrCrJrDrAzRemoved 1.0 due to %sr zRemoved 1.1 due to %srBzRemoved 1.2 due to %srCzRemoved 1.3 due to %srDr'zRemoved 2.1 due to %srJzRemoved 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�appendrK�remove�logger�debugrLrFrNrO�lenr�_314_MARKERS�_345_MARKERS�_566_MARKERS�_426_MARKERS�intr)
�fieldsrUrR�key�value�possible_versions�is_1_1�is_1_2�is_2_1�is_2_0rrr�
_best_version�sb





�$rjcCsi|]}|���dd�|�qS)�-�_)�lower�replace)rG�namerrr�
<dictcomp>�s�rpcCsi|]\}}||�qSrr)rG�attr�fieldrrrrp��)r8r5r7)r9)r$)r%r.r0r2r1r5r7r8r:r6r-r=r?r>)r6)r()r*r3r&r'z[^A-Za-z0-9.]+FcCs0|rt�d|�}t�d|�dd��}d||fS)zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.rk� �.z%s-%s)�	_FILESAFE�subrn)rorP�for_filenamerrr�_get_name_and_version�sryc@seZdZdZ		d?dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zd@dd�Zdd�Zdd �Zd!d"�Zd#d$�Zd@d%d&�Zd@d'd(�ZdAd)d*�Zd+d,�Zefd-d.�Zd@d/d0�Zd@d1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!dS)B�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�defaultcCs�|||g�d�dkrtd��i|_g|_d|_||_|dur%|�|�dS|dur0|�|�dS|dur?|�|�|�	�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�rrr�__init__�s
�zLegacyMetadata.__init__cCst|j�|jd<dS�Nr")rjr��r�rrrr�
sz#LegacyMetadata.set_metadata_versioncCs|�d||f�dS)Nz%s: %s
)�write)r�r�rordrrr�_write_field
�zLegacyMetadata._write_fieldcCs
|�|�SrE)�get�r�rorrr�__getitem__s
zLegacyMetadata.__getitem__cCs|�||�SrE)�set)r�rordrrr�__setitem__szLegacyMetadata.__setitem__cCs0|�|�}z|j|=WdStyt|��wrE)�
_convert_namer��KeyError)r�ro�
field_namerrr�__delitem__s
�zLegacyMetadata.__delitem__cCs||jvp|�|�|jvSrE)r�r�r�rrr�__contains__s
�zLegacyMetadata.__contains__cCs(|tvr|S|�dd���}t�||�S)Nrkrl)�_ALL_FIELDSrnrm�_ATTR2FIELDr�r�rrrr�!szLegacyMetadata._convert_namecCs|tvs|tvr
gSdS)NrV)�_LISTFIELDS�_ELEMENTSFIELDr�rrr�_default_value'szLegacyMetadata._default_valuecCs"|jdvrt�d|�St�d|�S)N�rAr �
)�metadata_version�_LINE_PREFIX_PRE_1_2rw�_LINE_PREFIX_1_2�r�rdrrr�_remove_line_prefix,s
z"LegacyMetadata._remove_line_prefixcCs|tvr||St|��rE)r��AttributeErrorr�rrr�__getattr__2szLegacyMetadata.__getattr__FcCst|d|d|�S)zhReturn the distribution name with version.

        If filesafe is true, return a filename-escaped form.r#r$)ry)r��filesaferrr�get_fullname=szLegacyMetadata.get_fullnamecC�|�|�}|tvS)z+return True if name is a valid metadata key)r�r�r�rrr�is_fieldCs
zLegacyMetadata.is_fieldcCr�rE)r�r�r�rrr�is_multi_fieldHs
zLegacyMetadata.is_multi_fieldcCs4tj|ddd�}z|�|�W|��dS|��w)z*Read the metadata values from a file path.�rr��encodingN)�codecs�openr��close)r��filepath�fprrrr�LszLegacyMetadata.readcCs�t|�}|d|jd<tD]8}||vrq
|tvr3|�|�}|tvr,|dur,dd�|D�}|�||�q
||}|durE|dkrE|�||�q
|��}|rN|n|d|d<dS)z,Read the metadata values from a file object.zmetadata-versionr"NcSsg|]	}t|�d���qS��,)rM�split�rGrdrrr�
<listcomp>asz,LegacyMetadata.read_file.<locals>.<listcomp>rVr')rr�r�r��get_all�_LISTTUPLEFIELDSr��get_payload)r��fileob�msgrr�valuesrd�bodyrrrr�Ts 
�zLegacyMetadata.read_filecCs6tj|ddd�}z
|�||�W|��dS|��w)z&Write the metadata fields to filepath.�wrr�N)r�r��
write_filer�)r�r��skip_unknownr�rrrr�pszLegacyMetadata.writecCs�|��t|d�D]U}|�|�}|r|dgdgfvrq
|tvr+|�||d�|��q
|tvrH|dkrE|jdvr?|�dd�}n|�dd�}|g}|t	vrSd	d
�|D�}|D]	}|�|||�qUq
dS)z0Write the PKG-INFO format data to a file object.r"rVr�r'r�r�r!z	
       |cS�g|]}d�|��qSr���joinr�rrrr��rsz-LegacyMetadata.write_file.<locals>.<listcomp>N)
r�rQr�r�r�r�r�r�rnr�)r��
fileobjectr�rrr�rdrrrr�xs(

��zLegacyMetadata.write_filecsz�fdd�}|s	n t|d�r|��D]	}||||�qn|D]	\}}|||�q|r9|��D]\}}|||�q/dSdS)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.
        cs*|tvr|r����|�|�dSdSdSrE)r�r�r�)rcrdr�rr�_set�s�z#LegacyMetadata.update.<locals>._setrRN)�hasattrrRrW)r��other�kwargsr��k�vrr�rr��s

��zLegacyMetadata.updatecCsV|�|�}|tvs
|dkr't|ttf�s't|t�r$dd�|�d�D�}ng}n|tvr=t|ttf�s=t|t�r;|g}ng}t�	t
j�r�|d}t|j
�}|tvrl|durl|D]}|�|�d�d�sjt�d	|||�qVn+|tvr�|dur�|�|�s�t�d
|||�n|tvr�|dur�|�|�s�t�d
|||�|tvr�|dkr�|�|�}||j|<dS)z"Control then set a metadata field.r%cSsg|]}|���qSr)�strip)rGr�rrrr���z&LegacyMetadata.set.<locals>.<listcomp>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�listrMrr�r�rZ�isEnabledFor�logging�WARNINGr
r��_PREDICATE_FIELDS�is_valid_matcher�warning�_VERSIONS_FIELDS�is_valid_constraint_list�_VERSION_FIELDS�is_valid_version�_UNICODEFIELDSr�r�)r�rord�project_namer�r�rrrr��sP
�
�

���
��
�
zLegacyMetadata.setcCs�|�|�}||jvr|tur|�|�}|S|tvr |j|}|S|tvrM|j|}|dur/gSg}|D]}|tvr?|�|�q3|�|d|df�q3|S|tvr`|j|}t	|t
�r`|�d�S|j|S)zGet a metadata field.Nrrr�)r�r��_MISSINGr�r�r�r�rXr�r�rr�)r�ror{rd�res�valrrrr��s.








zLegacyMetadata.getcs�|��gg}}dD]}||vr|�|�q|r(|gkr(dd�|�}t|��dD]}||vr5|�|�q*|ddkr@||fSt|j���fdd�}t|ft�jft	�j
ffD] \}}|D]}	|�|	d	�}
|
d	urw||
�sw|�d
|	|
f�q^qX||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"rBcs(|D]}��|�d�d�sdSqdS)Nr�rFT)r�r�)rdr��r�rr�are_valid_constraintss
�z3LegacyMetadata.check.<locals>.are_valid_constraintsNzWrong value for '%s': %s)r�rXr�rr
r�r�r�r�r�r�r�)r��strict�missing�warningsrqr�r�rb�
controllerrrrdrr�r�check�s@

�
�
�����zLegacyMetadata.checkcCsh|��t|d�}i}|D]#}|r||jvr1t|}|dkr&||||<qdd�||D�||<q|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_urlcSr�r�r�)rG�urrrr�5rsz)LegacyMetadata.todict.<locals>.<listcomp>)r�rQr��_FIELD2ATTR)r��skip_missingrb�datar�rcrrr�todict"s�zLegacyMetadata.todictcCs8|ddkrdD]	}||vr||=q|d|7<dS)Nr"r )r0r2r1r8r)r��requirementsrrrrr�add_requirements9s�zLegacyMetadata.add_requirementscCstt|d��Sr�)r�rQr�rrrrRDszLegacyMetadata.keysccs�|��D]}|VqdSrE�rR)r�rcrrr�__iter__Gs��zLegacyMetadata.__iter__c��fdd����D�S)Ncsg|]}�|�qSrr�rGrcr�rrr�Lr�z)LegacyMetadata.values.<locals>.<listcomp>r�r�rr�rr�Kr�zLegacyMetadata.valuescr�)Ncsg|]}|�|f�qSrrr�r�rrr�Osz(LegacyMetadata.items.<locals>.<listcomp>r�r�rr�rrWNr�zLegacyMetadata.itemscCsd|jj|j|jfS)Nz
<%s %s %s>)�	__class__rrorPr�rrr�__repr__Qs�zLegacyMetadata.__repr__�NNNr{�FrE)"rrrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rRr�r�rWr�rrrrrz�sB
�



,

,rzzpydist.jsonz
metadata.json�METADATAc@s�eZdZdZe�d�Ze�dej�Ze	Z
e�d�ZdZde
Zdddd	�Zd
ZdZedfedfe
dfedfd�Zd
Z		dHdd�Zed�ZdefZdefZdefdefeeedefeeeedefddd�
Z[[dd�ZdIdd�Zdd�Zed d!��Z ed"d#��Z!e!j"d$d#��Z!dJd%d&�Z#ed'd(��Z$ed)d*��Z%e%j"d+d*��Z%d,d-�Z&d.d/�Z'd0d1�Z(d2d3�Z)d4d5d6d7d8d9d:d;d<dd=�
Z*d>d?�Z+dKdBdC�Z,dDdE�Z-dFdG�Z.dS)Lrz�
    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}rJzdistlib (%s)r)�legacy)rorP�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�rorPr�)�_legacy�_datar�Nr{cCsB|||g�d�dkrtd��d|_d|_||_|dur=z|�||�||_WdSty<t||d�|_|��YdSwd}|r[t	|d��}|�
�}Wd�n1sUwYn|ra|�
�}|duro|j|jd�|_dSt
|t�sy|�d�}zt�|�|_|�|j|�WdSty�tt|�|d�|_|��YdSw)Nr|r})r�r��rb�r��	generatorr)r�r�)r~rr�rr��_validate_mappingrrz�validater�r��METADATA_VERSION�	GENERATORr�r	�decode�json�loads�
ValueErrorr)r�r�r�r�r�r�rHrrrr��sH�
���

��zMetadata.__init__)rorP�license�keywordsr�r8r=r?r.)r/N)r"N)
�run_requires�build_requires�dev_requires�
test_requires�
meta_requires�extras�modules�
namespaces�exports�commands�classifiers�
source_urlr�c
CsXt�|d�}t�|d�}||vr�||\}}|jr0|dur(|dur#dn|�}|S|j�|�}|S|dur6dn|�}|dvrF|j�||�}|St�}|}|j�d�}	|	r�|dkr^|	�d|�}n'|dkrp|	�d�}	|	ro|	�||�}n|	�d	�}	|	s}|j�d	�}	|	r�|	�||�}||ur�|}|S||vr�t�||�}|S|jr�|j�|�}|S|j�|�}|S)
N�common_keys�mapped_keys�rrrrr�
extensionsr�python.commandsr�python.details�python.exports)�object�__getattribute__r�r�r)
r�rc�common�mapped�lk�maker�resultrd�sentinel�drrrr"�sR"� ��
�
���zMetadata.__getattribute__cCsP||jvr"|j|\}}|p|j|vr$|�|�}|s&td||f��dSdSdS)Nz.'%s' is an invalid value for the '%s' property)�SYNTAX_VALIDATORSr��matchr)r�rcrdr��pattern�
exclusions�mrrr�_validate_value�s

���zMetadata._validate_valuecCs0|�||�t�|d�}t�|d�}||vrd||\}}|jr,|dur%t�||j|<dS|dvr7||j|<dS|j�di�}|dkrH||d<dS|dkrX|�di�}|||<dS|�d	i�}|||<dS||vrqt�|||�dS|d
kr�t|t	�r�|�
�}|r�|��}ng}|jr�||j|<dS||j|<dS)Nrrrrrrrrr r
)r/r!r"r��NotImplementedErrorr�
setdefault�__setattr__r�rr�r�)r�rcrdr#r$r%rlr)rrrr2�s<

zMetadata.__setattr__cCst|j|jd�S�NT)ryrorPr�rrr�name_and_version%szMetadata.name_and_versioncCsF|jr	|jd}n|j�dg�}d|j|jf}||vr!|�|�|S)Nr7�providesz%s (%s))r�rr1rorPrX)r�r'�srrrr5)s
zMetadata.providescCs"|jr
||jd<dS||jd<dS)Nr7r5)r�rr�rrrr54sc
Cs�|jr|}|Sg}t|p
g|j�}|D]2}d|vr d|vr d}nd|vr'd}n|�d�|v}|r<|�d�}|r<t||�}|rE|�|d�qdD]#}d|}	|	|vrk|�|	�|j�d|g�}|�|j|||d��qH|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rr�r
�extendrYr�get_requirements)
r��reqtsrr=r'r)�includerTrc�errrr?;s8	�

�
��zMetadata.get_requirementscCs|jr|��S|jSrE)r��_from_legacyrr�rrr�
dictionaryeszMetadata.dictionarycCs|jrt�t|j|j�SrE)r�r0rr�DEPENDENCY_KEYSr�rrr�dependencieskszMetadata.dependenciescCs|jrt�|j�|�dSrE)r�r0rr�r�rrrrFrsc	Cs�|�d�|jkrt��g}|j��D]\}}||vr#||vr#|�|�q|r1dd�|�}t|��|��D]\}}|�|||�q5dS)Nr�zMissing metadata items: %sr�)	r�rr�MANDATORY_KEYSrWrXr�rr/)	r�r�r�r�rcr-r�r�r�rrrrys
��zMetadata._validate_mappingcCsH|jr|j�d�\}}|s|rt�d||�dSdS|�|j|j�dS)NTz#Metadata: missing: %s, warnings: %s)r�r�rZr�rrr�)r�r�r�rrrr�s��zMetadata.validatecCs$|jr	|j�d�St|j|j�}|Sr3)r�r�rr�
INDEX_KEYS)r�r'rrrr��szMetadata.todictc
Cs�|jr|jrJ�|j|jd�}|j�d�}dD]}||vr,|dkr$d}n|}||||<q|�dg�}|dgkr:g}||d<d	}|D]\}}||vrW||rWd
||ig||<qB|j|d<i}i}	|S)NrT)rorPrr��description�
classifierrJrr(�r
))�
requires_distr)�setup_requires_distrr9r5)r�rrrr�r�r5)
r�r'�lmdr��nk�kwrR�ok�author�
maintainerrrrrC�s2��
�
zMetadata._from_legacyr#r$r,r&r'r)r*r+r/)
rorP)rrrr�rI)r�python.project�project_urls�Home)rrT�contactsrro)rrTrWr�emailr)rrrcCs�dd�}|jr
|jrJ�t�}|j}|j��D]7\}}t|t�s+||vr*||||<q|}d}|D]}z||}Wq1ttfyGd}Ynw|rN|||<q||j	|j
�}	||j|j�}
|j
rit|j
�|d<t|	�|d<t|
�|d<|S)NcSs�t�}|D]>}|�d�}|�d�}|d}|D]+}|s#|s#|�|�qd}|r+d|}|r8|r6d||f}n|}|�d�||f��qq|S)Nr7r8r9rKz
extra == "%s"z(%s) and %sr�)r�r��addr�)�entriesr@rBr7r=�rlistr�rTrrr�process_entries�s$

�
z,Metadata._to_legacy.<locals>.process_entriesTFr?r8r=)rr�rz�LEGACY_MAPPINGrWr�rMr��
IndexErrorrrrrr�sorted)r�r\r'�nmdrOrQr)�foundr��r1�r2rrr�
_to_legacy�s8
���zMetadata._to_legacyFTcCs�||g�d�dkr
td��|��|r2|jr|j}n|��}|r)|j||d�dS|j||d�dS|jr:|��}n|j}|rKt	j
||dddd�dSt�|dd��}t	j
||dddd�Wd�dS1shwYdS)	Nrz)Exactly one of path and fileobj is needed)r�Tr|)�ensure_ascii�indent�	sort_keysr�r)
r~rrr�rdr�r�rCrr	�dumpr�r�)r�r�r�r�r��	legacy_mdr)rHrrrr��s,

��"�zMetadata.writecCs�|jr|j�|�dS|j�dg�}d}|D]}d|vr$d|vr$|}nq|dur5d|i}|�d|�dSt|d�t|�B}t|�|d<dS)Nrr8r7r9r)r�r�rr1�insertr�r_)r�r�r�always�entry�rsetrrrr�
s�zMetadata.add_requirementscCs*|jpd}|jp	d}d|jj|j||fS)Nz	(no name)z
no versionz<%s %s %s (%s)>)rorPr�rr�)r�rorPrrrr�s


�zMetadata.__repr__r�rE)NN)NNFT)/rrrr�re�compile�METADATA_VERSION_MATCHER�I�NAME_MATCHERr�VERSION_MATCHER�SUMMARY_MATCHERrrrrGrHrEr*�	__slots__r�r�rr��	none_list�dict�	none_dictrr"r/r2�propertyr4r5�setterr?rDrFrrr�rCr]rdr�r�r�rrrrr[s�

��
�-�
+
'




*


	�
2rr�)Gr�
__future__rr�rXrr	r�rnrKrr�compatrrr	rSr
�utilrrrPr
r�	getLoggerrrZrrrr�__all__rrror�r�rKrLr]rFr^rOr`rNr_r�r�r��EXTRA_RErQrjr�rWr�r�r�r�r�r�r�r�r!r�rvryrz�METADATA_FILENAME�WHEEL_METADATA_FILENAME�LEGACY_METADATA_FILENAMErrrrr�<module>sz









I�


j

https://t.me/RX1948 - 2025