HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc
a

?�f2��@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@seZdZdZdS)�MetadataMissingErrorzA required metadata is missingN��__name__�
__module__�__qualname__�__doc__�rr�@/usr/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.pyrsrc@seZdZdZdS)�MetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nrrrrrr src@seZdZdZdS)� MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nrrrrrr$src@seZdZdZdS)�MetadataInvalidErrorzA metadata value is invalidNrrrrrr(sr)�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)r.r/r0r,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)r5r6r7r3r8r1r2r4)r r!r"r#r+r$r%r&r'r(r)r1r2r*r,r-r3r4r5r6r7r8�Private-Version�Obsoleted-By�Setup-Requires-Dist�	Extension�Provides-Extra)r9r=r:r;r<)�Description-Content-Typer0r/)r>z"extra\s*==\s*("([^"]+)"|'([^']+)')cCsL|dkrtS|dkrtS|dkr$tS|dvr4ttS|dkr@tSt|��dS)N�1.0r�1.2)�1.3�2.1�2.0)�_241_FIELDS�_314_FIELDS�_345_FIELDS�_566_FIELDS�_426_FIELDSr)�versionrrr�_version2fieldlistpsrJc
Cs:dd�}g}|��D]"\}}|gddfvr,q|�|�qgd�}|D]�}|tvrnd|vrn|�d�t�d|�|tvr�d|vr�|�d�t�d	|�|tvr�d
|vr�|�d
�t�d|�|tvr�d|vr�|�d�t�d
|�|tv�rd|v�r|dk�r|�d�t�d|�|t	vrDd|vrD|�d�t�d|�qDt
|�dk�rR|dSt
|�dk�rtt�d|�td��d|v�o�||t�}d
|v�o�||t
�}d|v�o�||t�}d|v�o�||t�}	t|�t|�t|�t|	�dk�r�td��|�s|�s|�s|	�st|v�rtS|�r"dS|�r,d
S|�r6dSdS)z5Detect the best version depending on the fields used.cSs|D]}||vrdSqdS)NTFr)�keys�markers�markerrrr�_has_marker�sz"_best_version.<locals>._has_marker�UNKNOWNN)r?rr@rArCrBr?zRemoved 1.0 due to %srzRemoved 1.1 due to %sr@zRemoved 1.2 due to %srAzRemoved 1.3 due to %srBr%zRemoved 2.1 due to %srCzRemoved 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�appendrD�remove�logger�debugrErFrGrH�lenr�_314_MARKERS�_345_MARKERS�_566_MARKERS�_426_MARKERS�intr)
�fieldsrNrK�key�valueZpossible_versionsZis_1_1Zis_1_2Zis_2_1Zis_2_0rrr�
_best_version~s`






&
r^cCsi|]}|���dd�|�qS)�-�_)�lower�replace)�.0�namerrr�
<dictcomp>�srecCsi|]\}}||�qSrr)rc�attr�fieldrrrre��)r6r3r5)r7)r")r#r,r.r0r/r3r5r6r8r4r+r;r=r<)r4)r&)r(r1r$r%z[^A-Za-z0-9.]+FcCs0|r$t�d|�}t�d|�dd��}d||fS)zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.r_� �.z%s-%s)�	_FILESAFE�subrb)rdrIZfor_filenamerrr�_get_name_and_version�srmc@s
eZdZdZd?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$�ZdAd%d&�ZdBd'd(�ZdCd)d*�Zd+d,�Zefd-d.�ZdDd/d0�ZdEd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!dS)F�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�defaultcCsz|||g�d�dkrtd��i|_g|_d|_||_|durH|�|�n.|dur\|�|�n|durv|�|�|�	�dS)N��'path, fileobj and mapping are exclusive)
�count�	TypeError�_fieldsZrequires_filesZ
_dependencies�scheme�read�	read_file�update�set_metadata_version)�self�path�fileobj�mappingrurrr�__init__�s
zLegacyMetadata.__init__cCst|j�|jd<dS�Nr )r^rt�rzrrrrysz#LegacyMetadata.set_metadata_versioncCs|�d||f�dS)Nz%s: %s
)�write)rzr|rdr]rrr�_write_fieldszLegacyMetadata._write_fieldcCs
|�|�S�N)�get�rzrdrrr�__getitem__szLegacyMetadata.__getitem__cCs|�||�Sr�)�set)rzrdr]rrr�__setitem__szLegacyMetadata.__setitem__cCs6|�|�}z|j|=Wnty0t|��Yn0dSr�)�
_convert_namert�KeyError)rzrd�
field_namerrr�__delitem__s

zLegacyMetadata.__delitem__cCs||jvp|�|�|jvSr�)rtr�r�rrr�__contains__s
�zLegacyMetadata.__contains__cCs(|tvr|S|�dd���}t�||�S)Nr_r`)�_ALL_FIELDSrbra�_ATTR2FIELDr�r�rrrr�szLegacyMetadata._convert_namecCs|tvs|tvrgSdS)NrO)�_LISTFIELDS�_ELEMENTSFIELDr�rrr�_default_value%szLegacyMetadata._default_valuecCs&|jdvrt�d|�St�d|�SdS)N�r?r�
)�metadata_version�_LINE_PREFIX_PRE_1_2rl�_LINE_PREFIX_1_2�rzr]rrr�_remove_line_prefix*s
z"LegacyMetadata._remove_line_prefixcCs|tvr||St|��dSr�)r��AttributeErrorr�rrr�__getattr__0szLegacyMetadata.__getattr__FcCst|d|d|�S)zhReturn the distribution name with version.

        If filesafe is true, return a filename-escaped form.r!r")rm)rzZfilesaferrr�get_fullname;szLegacyMetadata.get_fullnamecCs|�|�}|tvS)z+return True if name is a valid metadata key)r�r�r�rrr�is_fieldAs
zLegacyMetadata.is_fieldcCs|�|�}|tvSr�)r�r�r�rrr�is_multi_fieldFs
zLegacyMetadata.is_multi_fieldcCs6tj|ddd�}z|�|�W|��n
|��0dS)z*Read the metadata values from a file path.�rr��encodingN)�codecs�openrw�close)rz�filepath�fprrrrvJszLegacyMetadata.readcCs�t|�}|d|jd<tD]p}||vr(q|tvrf|�|�}|tvrX|durXdd�|D�}|�||�q||}|dur|dkr|�||�q|��}|r�|n|d|d<dS)z,Read the metadata values from a file object.zmetadata-versionr NcSsg|]}t|�d���qS��,)�tuple�split�rcr]rrr�
<listcomp>_rhz,LegacyMetadata.read_file.<locals>.<listcomp>rOr%)rrtr�r�Zget_all�_LISTTUPLEFIELDSr�Zget_payload)rzZfileob�msgrg�valuesr]�bodyrrrrwRs
zLegacyMetadata.read_filecCs8tj|ddd�}z|�||�W|��n
|��0dS)z&Write the metadata fields to filepath.�wrr�N)r�r��
write_filer�)rzr��skip_unknownr�rrrr�nszLegacyMetadata.writecCs�|��t|d�D]�}|�|�}|r8|dgdgfvr8q|tvrV|�||d�|��q|tvr�|dkr�|jdvr~|�dd�}n|�dd�}|g}|t	vr�d	d
�|D�}|D]}|�|||�q�qdS)z0Write the PKG-INFO format data to a file object.r rOr�r%r�r�rz	
       |cSsg|]}d�|��qSr���joinr�rrrr��rhz-LegacyMetadata.write_file.<locals>.<listcomp>N)
ryrJr�r�r�r�r�r�rbr�)rzZ
fileobjectr�rgr�r]rrrr�vs$

zLegacyMetadata.write_filecsv�fdd�}|sn@t|d�r:|��D]}||||�q$n|D]\}}|||�q>|rr|��D]\}}|||�q^dS)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����|�|�dSr�)r�r�r�)r\r]r�rr�_set�sz#LegacyMetadata.update.<locals>._setrKN)�hasattrrKrP)rz�other�kwargsr��k�vrr�rrx�s

zLegacyMetadata.updatecCsh|�|�}|tvs|dkrNt|ttf�sNt|t�rHdd�|�d�D�}qzg}n,|tvrzt|ttf�szt|t�rv|g}ng}t�	t
j��r<|d}t|j
�}|tvr�|dur�|D](}|�|�d�d�s�t�d	|||�q�nb|tv�r|du�r|�|��s<t�d
|||�n0|tv�r<|du�r<|�|��s<t�d
|||�|tv�rZ|dk�rZ|�|�}||j|<dS)z"Control then set a metadata field.r#cSsg|]}|���qSr)�strip)rcr�rrrr��rhz&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�listr�rr�r�rSZisEnabledFor�loggingZWARNINGr
ru�_PREDICATE_FIELDS�is_valid_matcher�warning�_VERSIONS_FIELDS�is_valid_constraint_list�_VERSION_FIELDS�is_valid_version�_UNICODEFIELDSr�rt)rzrdr]Zproject_namerur�rrrr��sJ
�
�

���


zLegacyMetadata.setcCs�|�|�}||jvr*|tur&|�|�}|S|tvr@|j|}|S|tvr�|j|}|dur^gSg}|D].}|tvr~|�|�qf|�|d|df�qf|S|tvr�|j|}t	|t
�r�|�d�S|j|S)zGet a metadata field.Nrrr�)r�rt�_MISSINGr�r�r�r�rQr�r�rr�)rzrdror]�res�valrrrr��s.







zLegacyMetadata.getcs�|��gg}}dD]}||vr|�|�q|rP|gkrPdd�|�}t|��dD]}||vrT|�|�qT|ddkr�||fSt|j���fdd�}t|ft�jft	�j
ffD]@\}}|D]2}	|�|	d	�}
|
d	ur�||
�s�|�d
|	|
f�q�q�||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 r@cs(|D]}��|�d�d�sdSqdS)Nr�rFT)r�r�)r]r��rurr�are_valid_constraintssz3LegacyMetadata.check.<locals>.are_valid_constraintsNzWrong value for '%s': %s)ryrQr�rr
rur�r�r�r�r�r�)rz�strict�missing�warningsrfr�r�r[Z
controllerrgr]rr�r�check�s8

���zLegacyMetadata.checkcCsh|��t|d�}i}|D]F}|r.||jvrt|}|dkrL||||<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 Zproject_urlcSsg|]}d�|��qSr�r�)rc�urrrr�3rhz)LegacyMetadata.todict.<locals>.<listcomp>)ryrJrt�_FIELD2ATTR)rzZskip_missingr[�datar�r\rrr�todict szLegacyMetadata.todictcCs8|ddkr$dD]}||vr||=q|d|7<dS)Nr r)r.r0r/r6r)rz�requirementsrgrrr�add_requirements7s
zLegacyMetadata.add_requirementscCstt|d��Sr)r�rJr�rrrrKBszLegacyMetadata.keysccs|��D]
}|VqdSr��rK)rzr\rrr�__iter__EszLegacyMetadata.__iter__cs�fdd����D�S)Ncsg|]}�|�qSrr�rcr\r�rrr�Jrhz)LegacyMetadata.values.<locals>.<listcomp>r�r�rr�rr�IszLegacyMetadata.valuescs�fdd����D�S)Ncsg|]}|�|f�qSrrr�r�rrr�Mrhz(LegacyMetadata.items.<locals>.<listcomp>r�r�rr�rrPLszLegacyMetadata.itemscCsd|jj|j|jfS)Nz
<%s %s %s>)�	__class__rrdrIr�rrr�__repr__Os�zLegacyMetadata.__repr__)NNNro)F)F)F)N)F)F)"rrrrr~ryr�r�r�r�r�r�r�r�r�r�r�r�rvrwr�r�rxr�r�r�r�r�r�rKr�r�rPr�rrrrrn�s@�




,
,
rnzpydist.jsonz
metadata.jsonZMETADATAc@s�eZdZdZe�d�Ze�dej�Ze	Z
e�d�ZdZde
Zdddd	�Zd
ZdZedfedfe
dfedfd�Zd
ZdHdd�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}rCzdistlib (%s)r)�legacy)rdrI�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�rdrIr�)�_legacy�_dataruNrocCs@|||g�d�dkrtd��d|_d|_||_|durxz|�||�||_Wn(tytt||d�|_|��Yn0n�d}|r�t	|d��}|�
�}Wd�q�1s�0Yn|r�|�
�}|dur�|j|jd�|_nbt
|t�s�|�d�}zt�|�|_|�|j|�Wn.t�y:tt|�|d�|_|��Yn0dS)Nrprq)r}ru�rb�r��	generatorr)r|ru)rrrsr�r�ru�_validate_mappingrrn�validater�rv�METADATA_VERSION�	GENERATORr�r	�decode�json�loads�
ValueErrorr)rzr{r|r}rur��frrrr~�s@
(�


�zMetadata.__init__)rdrI�license�keywordsr�r6r;r=r,)r-N)r N)
�run_requires�build_requires�dev_requiresZ
test_requires�
meta_requires�extras�modules�
namespaces�exports�commands�classifiers�
source_urlr�c
CsXt�|d�}t�|d�}||v�r||\}}|jr^|durP|durHdn|�}n|j�|�}n�|durjdn|�}|dvr�|j�||�}n�t�}|}|j�d�}	|	�r
|dkr�|	�d|�}nP|dkr�|	�d�}	|	r�|	�||�}n,|	�d	�}	|	s�|j�d	�}	|	�r
|	�||�}||u�rT|}n:||v�r2t�||�}n"|j�rH|j�|�}n|j�|�}|S)
N�common_keys�mapped_keys�r�r�r�r�r��
extensionsr��python.commandsr��python.details�python.exports)�object�__getattribute__r�r�r�)
rzr\�common�mapped�lkZmaker�resultr]�sentinel�drrrr�sD




zMetadata.__getattribute__cCsH||jvrD|j|\}}|p |j|vrD|�|�}|sDtd||f��dS)Nz.'%s' is an invalid value for the '%s' property)�SYNTAX_VALIDATORSru�matchr)rzr\r]ru�pattern�
exclusions�mrrr�_validate_value�s

��zMetadata._validate_valuecCs*|�||�t�|d�}t�|d�}||vr�||\}}|jrV|durJt�||j|<nf|dvrj||j|<nR|j�di�}|dkr�||d<n2|dkr�|�di�}|||<n|�d	i�}|||<nh||vr�t�|||�nP|d
k�rt|t	��r|�
�}|�r|��}ng}|j�r||j|<n
||j|<dS)Nr�r�r�r�r�r�r�rrr�)rrrr��NotImplementedErrorr��
setdefault�__setattr__r�rr�r�)rzr\r]rrrr`r	rrrr�s<




zMetadata.__setattr__cCst|j|jd�S�NT)rmrdrIr�rrr�name_and_version#szMetadata.name_and_versioncCsF|jr|jd}n|j�dg�}d|j|jf}||vrB|�|�|S)Nr5�providesz%s (%s))r�r�rrdrIrQ)rzr�srrrr's
zMetadata.providescCs |jr||jd<n
||jd<dS)Nr5r)r�r�r�rrrr2sc
Cs�|jr|}n�g}t|pg|j�}|D]d}d|vr>d|vr>d}n8d|vrLd}n|�d�|v}|rv|�d�}|rvt||�}|r$|�|d�q$dD]F}d|}	|	|vr�|�|	�|j�d|g�}|�|j|||d��q�|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)Zbuild�dev�testz:%s:z%s_requires)r��env)	r�rr�r�r
�extendrRr��get_requirements)
rz�reqtsr�rrr	ZincluderMr\�errrr9s2	


�
zMetadata.get_requirementscCs|jr|��S|jSr�)r��_from_legacyr�r�rrr�
dictionarycszMetadata.dictionarycCs|jrt�nt|j|j�SdSr�)r�rrr��DEPENDENCY_KEYSr�rrr�dependenciesiszMetadata.dependenciescCs|jrt�n|j�|�dSr�)r�rr�rxr�rrrr$psc	Cs�|�d�|jkrt��g}|j��D]"\}}||vr$||vr$|�|�q$|rbdd�|�}t|��|��D]\}}|�|||�qjdS)Nr�zMissing metadata items: %sr�)	r�r�r�MANDATORY_KEYSrPrQr�rr)	rzr}rur�r\r
r�r�r�rrrr�wszMetadata._validate_mappingcCsB|jr.|j�d�\}}|s|r>t�d||�n|�|j|j�dS)NTz#Metadata: missing: %s, warnings: %s)r�r�rSr�r�r�ru)rzr�r�rrrr��s�zMetadata.validatecCs(|jr|j�d�St|j|j�}|SdSr)r�r�rr��
INDEX_KEYS)rzrrrrr��szMetadata.todictc
Cs�|jr|jrJ�|j|jd�}|j�d�}dD]*}||vr.|dkrHd}n|}||||<q.|�dg�}|dgkrtg}||d<d	}|D]*\}}||vr�||r�d
||ig||<q�|j|d<i}i}	|S)Nr�T)rdrIr�r��description�
classifierr(r�r&�r�))Z
requires_distr�)Zsetup_requires_distr�rr)r�r�r�r�r�r�r)
rzrZlmdr��nk�kwrK�okZauthorZ
maintainerrrrr!�s.�

zMetadata._from_legacyr!r"r*r$r%r'r(r)r-)
rdrI)r�rr�r�r')r��python.projectZproject_urlsZHome)r�r-�contactsrrd)r�r-r.r�emailr�)r�rr�cCs�dd�}|jr|jrJ�t�}|j}|j��D]t\}}t|t�sV||vr�||||<q.|}d}|D]2}z||}Wqbttfy�d}Yq�Yqb0qb|r.|||<q.||j	|j
�}	||j|j�}
|j
r�t|j
�|d<t|	�|d<t|
�|d<|S)NcSs�t�}|D]|}|�d�}|�d�}|d}|D]V}|sF|sF|�|�q.d}|rVd|}|rp|rld||f}n|}|�d�||f��q.q
|S)Nrrrr)z
extra == "%s"z(%s) and %sr�)r�r��addr�)�entriesrr rrZrlistr�rMrrr�process_entries�s"

z,Metadata._to_legacy.<locals>.process_entriesTFr=r6r;)r�r�rn�LEGACY_MAPPINGrPr�r�r��
IndexErrorr�r�r�r�r��sorted)rzr2rZnmdr*r,r	�foundr�Zr1Zr2rrr�
_to_legacy�s2

zMetadata._to_legacyFTcCs�||g�d�dkrtd��|��|r`|jr4|j}n|��}|rP|j||d�q�|j||d�nr|jrp|��}n|j}|r�t	j
||dddd�nBt�|dd��$}t	j
||dddd�Wd�n1s�0YdS)	Nrz)Exactly one of path and fileobj is needed)r�Trp)Zensure_ascii�indentZ	sort_keysr�r)
rrr�r�r�r7r�r�r!r�r��dumpr�r�)rzr{r|r�r�Z	legacy_mdr	r�rrrr��s*
��zMetadata.writecCs�|jr|j�|�nr|j�dg�}d}|D]}d|vr*d|vr*|}qHq*|durfd|i}|�d|�n t|d�t|�B}t|�|d<dS)Nr�rrrr)r�r�r�r�insertr�r5)rzr�r��always�entryZrsetrrrr�szMetadata.add_requirementscCs*|jpd}|jpd}d|jj|j||fS)Nz	(no name)z
no versionz<%s %s %s (%s)>)rdrIr�rr�)rzrdrIrrrr�s


�zMetadata.__repr__)NNNro)N)NN)NNFT)/rrrr�re�compileZMETADATA_VERSION_MATCHER�IZNAME_MATCHERrZVERSION_MATCHERZSUMMARY_MATCHERr�rr�r%r&r#r
�	__slots__r~r�r�r�Z	none_list�dictZ	none_dictr�rrr�propertyrr�setterrr"r$r�r�r�r!r3r7r�r�r�rrrrrYs�

���
-�+

'




*


	�
2
r)F)GrZ
__future__rr�r/rr�r�r=r)rr�compatrrr	rLr
�utilrrrIr
rZ	getLoggerrrSrrrr�__all__rrr>r�r�rDrErVrFrWrHrYrGrXr�r�rxZEXTRA_RErJr^r�rPr�r�r�r�r�r�r�r�rr�rkrmrnZMETADATA_FILENAMEZWHEEL_METADATA_FILENAMEZLEGACY_METADATA_FILENAMErrrrr�<module>sx









I�


j