403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.6/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-36.pyc
3

�N�a�@s�dZddlmZddlZddlmZddlZddlZddlZddl	m
Z
mZddlm
Z
mZmZddlmZdd	lmZmZdd
lmZmZeje�ZGdd�de
�ZGd
d�de
�ZGdd�de
�ZGdd�de
�ZdddgZdZ dZ!ej"d�Z#ej"d�Z$dKZ%dLZ&dMZ'dNZ(dOZ)dPZ*dQZ+e*dRZ,dSZ-e.�Z/e/j0e%�e/j0e&�e/j0e(�e/j0e*�e/j0e,�ej"d9�Z1d:d;�Z2d<d=�Z3d>d?�e/D�Z4d@d?�e4j5�D�Z6dTZ7dUZ8dVZ9dWZ:dXZ;dYZ<dZZ=e>�Z?ej"dA�Z@d[dCdD�ZAGdEdF�dFe>�ZBdGZCdHZDdIZEGdJd�de>�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.6/metadata.pyrsrc@seZdZdZdS)�MetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.N)rrrrrrrrr src@seZdZdZdS)� MetadataUnrecognizedVersionErrorz Unknown metadata version number.N)rrrrrrrrr$src@seZdZdZdS)�MetadataInvalidErrorzA metadata value is invalidN)rrrrrrrrr(sr�Metadata�PKG_INFO_ENCODING�PKG_INFO_PREFERRED_VERSIONzutf-8z1.1z

       \|z	
        �Metadata-Version�Name�Version�Platform�Summary�Description�Keywords�	Home-page�Author�Author-email�License�Supported-Platform�
Classifier�Download-URL�	Obsoletes�Provides�Requires�
Maintainer�Maintainer-email�Obsoletes-Dist�Project-URL�
Provides-Dist�
Requires-Dist�Requires-Python�Requires-External�Private-Version�Obsoleted-By�Setup-Requires-Dist�	Extension�Provides-Extra�Description-Content-Typez"extra\s*==\s*("([^"]+)"|'([^']+)')cCsZ|dkrtS|dkrtS|dkr$tS|d	krBttdd�tD��S|dkrNtSt|��dS)
Nz1.0z1.1z1.2�1.3�2.1css|]}|tkr|VqdS)N)�_345_FIELDS)�.0�frrr�	<genexpr>zsz%_version2fieldlist.<locals>.<genexpr>z2.0)r;r<)�_241_FIELDS�_314_FIELDSr=�tuple�_566_FIELDS�_426_FIELDSr)�versionrrr�_version2fieldlistqsrGc
CsRdd�}g}x.|j�D]"\}}|gddfkr.q|j|�qWddddd	d
g}�x�|D]�}|tkr~d|kr~|jd�tjd|�|tkr�d|kr�|jd�tjd|�|tkr�d|kr�|jd�tjd
|�|tkr�d|kr�|jd�tjd|�|tko�d
|k�r"|dk�r"|jd
�tjd|�|t	krTd	|krT|jd	�tjd|�qTWt
|�dk�rb|dSt
|�dk�r�tjd|�td��d|k�o�||t�}d|k�o�||t
�}d
|k�o�||t�}d	|k�o�||t�}	t|�t|�t|�t|	�dk�rtd��|�r0|�r0|�r0|	�r0t|k�r0tS|�r:dS|�rDdS|�rNd
Sd	S)z5Detect the best version depending on the fields used.cSsx|D]}||krdSqWdS)NTFr)�keys�markers�markerrrr�_has_marker�s
z"_best_version.<locals>._has_marker�UNKNOWNNz1.0z1.1z1.2z1.3z2.0z2.1zRemoved 1.0 due to %szRemoved 1.1 due to %szRemoved 1.2 due to %szRemoved 1.3 due to %sr!zRemoved 2.1 due to %szRemoved 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�appendrA�remove�logger�debugrBr=rDrE�lenr�_314_MARKERS�_345_MARKERS�_566_MARKERS�_426_MARKERS�intr)
�fieldsrKrH�key�valueZpossible_versionsZis_1_1Zis_1_2Zis_2_1Zis_2_0rrr�
_best_version�s`






& 
r[cCsi|]}||j�jdd��qS)�-�_)�lower�replace)r>�namerrr�
<dictcomp>�sracCsi|]\}}||�qSrr)r>�attr�fieldrrrra�sz[^A-Za-z0-9.]+FcCs0|r$tjd|�}tjd|jdd��}d||fS)zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.r\� �.z%s-%s)�	_FILESAFE�subr_)r`rFZfor_filenamerrr�_get_name_and_version�srhc@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|||gjd�dkrtd��i|_g|_d|_||_|dk	rH|j|�n.|dk	r\|j|�n|dk	rv|j|�|j	�dS)N�z'path, fileobj and mapping are exclusive)
�count�	TypeError�_fieldsZrequires_filesZ
_dependencies�scheme�read�	read_file�update�set_metadata_version)�self�path�fileobj�mappingrorrr�__init__�s
zLegacyMetadata.__init__cCst|j�|jd<dS)NzMetadata-Version)r[rn)rtrrrrs
sz#LegacyMetadata.set_metadata_versioncCs|jd||f�dS)Nz%s: %s
)�write)rtrvr`rZrrr�_write_field
szLegacyMetadata._write_fieldcCs
|j|�S)N)�get)rtr`rrr�__getitem__szLegacyMetadata.__getitem__cCs|j||�S)N)�set)rtr`rZrrr�__setitem__szLegacyMetadata.__setitem__cCs8|j|�}y|j|=Wntk
r2t|��YnXdS)N)�
_convert_namern�KeyError)rtr`�
field_namerrr�__delitem__s

zLegacyMetadata.__delitem__cCs||jkp|j|�|jkS)N)rnr)rtr`rrr�__contains__s
zLegacyMetadata.__contains__cCs(|tkr|S|jdd�j�}tj||�S)Nr\r])�_ALL_FIELDSr_r^�_ATTR2FIELDr{)rtr`rrrr!szLegacyMetadata._convert_namecCs|tks|tkrgSdS)NrL)�_LISTFIELDS�_ELEMENTSFIELD)rtr`rrr�_default_value'szLegacyMetadata._default_valuecCs&|jdkrtjd|�Stjd|�SdS)N�1.0�1.1�
)r�r�)�metadata_version�_LINE_PREFIX_PRE_1_2rg�_LINE_PREFIX_1_2)rtrZrrr�_remove_line_prefix,s
z"LegacyMetadata._remove_line_prefixcCs|tkr||St|��dS)N)r��AttributeError)rtr`rrr�__getattr__2szLegacyMetadata.__getattr__FcCst|d|d|�S)zhReturn the distribution name with version.

        If filesafe is true, return a filename-escaped form.rr)rh)rtZfilesaferrr�get_fullname=szLegacyMetadata.get_fullnamecCs|j|�}|tkS)z+return True if name is a valid metadata key)rr�)rtr`rrr�is_fieldCs
zLegacyMetadata.is_fieldcCs|j|�}|tkS)N)rr�)rtr`rrr�is_multi_fieldHs
zLegacyMetadata.is_multi_fieldc
Cs.tj|ddd�}z|j|�Wd|j�XdS)z*Read the metadata values from a file path.�rzutf-8)�encodingN)�codecs�openrq�close)rt�filepath�fprrrrpLszLegacyMetadata.readcCs�t|�}|d|jd<xxtD]p}||kr*q|tkrh|j|�}|tkrZ|dk	rZdd�|D�}|j||�q||}|dk	r|dkr|j||�qW|j�}|r�|n|d|d<dS)z,Read the metadata values from a file object.zmetadata-versionzMetadata-VersionNcSsg|]}t|jd���qS)�,)rC�split)r>rZrrr�
<listcomp>asz,LegacyMetadata.read_file.<locals>.<listcomp>rLr!)rrnr�r�Zget_all�_LISTTUPLEFIELDSr}Zget_payload)rtZfileob�msgrc�valuesrZZbodyrrrrqTs

zLegacyMetadata.read_filec
Cs0tj|ddd�}z|j||�Wd|j�XdS)z&Write the metadata fields to filepath.�wzutf-8)r�N)r�r��
write_filer�)rtr��skip_unknownr�rrrrypszLegacyMetadata.writecCs�|j�x�t|d�D]�}|j|�}|r:|dgdgfkr:q|tkrX|j||dj|��q|tkr�|dkr�|jd
kr�|jdd�}n|jdd	�}|g}|t	kr�d
d�|D�}x|D]}|j|||�q�WqWdS)z0Write the PKG-INFO format data to a file object.zMetadata-VersionrLr�r!�1.0�1.1r�z	
        z	
       |cSsg|]}dj|��qS)r�)�join)r>rZrrrr��sz-LegacyMetadata.write_file.<locals>.<listcomp>N)r�r�)
rsrGr{r�rzr�r�r�r_r�)rtZ
fileobjectr�rcr�rZrrrr�xs$


zLegacyMetadata.write_filecs��fdd�}|snHt|d�r>x<|j�D]}||||�q&Wnx|D]\}}|||�qDW|r~x|j�D]\}}|||�qhWdS)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"|tkr|r�j�j|�|�dS)N)r�r}r)rYrZ)rtrr�_set�sz#LegacyMetadata.update.<locals>._setrHN)�hasattrrHrM)rt�other�kwargsr��k�vr)rtrrr�s

zLegacyMetadata.updatecCsn|j|�}|tks|dkrPt|ttf�rPt|t�rJdd�|jd�D�}q~g}n.|tkr~t|ttf�r~t|t�rz|g}ng}tj	t
j��rB|d}t|j
�}|tkr�|dk	r�x�|D](}|j|jd�d�s�tjd	|||�q�Wn`|tko�|dk	�r|j|��sBtjd
|||�n0|tk�rB|dk	�rB|j|��sBtjd
|||�|tk�r`|dk�r`|j|�}||j|<dS)z"Control then set a metadata field.rcSsg|]}|j��qSr)�strip)r>r�rrrr��sz&LegacyMetadata.set.<locals>.<listcomp>r�rN�;rz$'%s': '%s' is not valid (field '%s')z.'%s': '%s' is not a valid version (field '%s')r!)rr��
isinstance�listrCrr�r�rPZisEnabledFor�loggingZWARNINGr
ro�_PREDICATE_FIELDS�is_valid_matcher�warning�_VERSIONS_FIELDS�is_valid_constraint_list�_VERSION_FIELDS�is_valid_version�_UNICODEFIELDSr�rn)rtr`rZZproject_nameror�rrrr}�s@








zLegacyMetadata.setcCs�|j|�}||jkr*|tkr&|j|�}|S|tkr@|j|}|S|tkr�|j|}|dkr^gSg}x6|D].}|tkr�|j|�qh|j|d|df�qhW|S|tkr�|j|}t	|t
�r�|jd�S|j|S)zGet a metadata field.Nrrr�)rrn�_MISSINGr�r�r�r�rNr�r�rr�)rtr`rjrZ�res�valrrrr{�s.








zLegacyMetadata.getcs|j�gg}}xd
D]}||kr|j|�qW|rT|gkrTddj|�}t|��xdD]}||krZ|j|�qZW|ddkr�||fSt|j���fd	d
�}xdt|ft�jft	�j
ffD]F\}}x<|D]4}	|j|	d�}
|
dk	o�||
�r�|jd|	|
f�q�Wq�W||fS)zkCheck if the metadata is compliant. If strict is True then raise if
        no Name or Version are providedrrzmissing required metadata: %sz, �	Home-pager$zMetadata-Versionz1.2cs*x$|D]}�j|jd�d�sdSqWdS)Nr�rFT)r�r�)rZr�)rorr�are_valid_constraintss
z3LegacyMetadata.check.<locals>.are_valid_constraintsNzWrong value for '%s': %s)rr)r�r$)rsrNr�rr
ror�r�r�r�r�r{)rt�strict�missing�warningsrbr�r�rXZ
controllerrcrZr)ror�check�s2




zLegacyMetadata.checkcCsn|j�t|d�}i}xP|D]H}|s2||jkrt|}|dkrP||||<qdd�||D�||<qW|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.
        zMetadata-VersionZproject_urlcSsg|]}dj|��qS)r�)r�)r>�urrrr�5sz)LegacyMetadata.todict.<locals>.<listcomp>)rsrGrn�_FIELD2ATTR)rtZskip_missingrX�datar�rYrrr�todict"s
zLegacyMetadata.todictcCs<|ddkr(xdD]}||kr||=qW|d|7<dS)NzMetadata-Versionz1.1r*r,r+z
Requires-Dist)r*r,r+r)rt�requirementsrcrrr�add_requirements9s


zLegacyMetadata.add_requirementscCstt|d��S)NzMetadata-Version)r�rG)rtrrrrHDszLegacyMetadata.keysccsx|j�D]
}|Vq
WdS)N)rH)rtrYrrr�__iter__GszLegacyMetadata.__iter__cs�fdd��j�D�S)Ncsg|]}�|�qSrr)r>rY)rtrrr�Lsz)LegacyMetadata.values.<locals>.<listcomp>)rH)rtr)rtrr�KszLegacyMetadata.valuescs�fdd��j�D�S)Ncsg|]}|�|f�qSrr)r>rY)rtrrr�Osz(LegacyMetadata.items.<locals>.<listcomp>)rH)rtr)rtrrMNszLegacyMetadata.itemscCsd|jj|j|jfS)Nz
<%s %s %s>)�	__class__rr`rF)rtrrr�__repr__QszLegacyMetadata.__repr__)NNNrj)F)F)F)N)F)F)"rrrrrxrsrzr|r~r�r�rr�r�r�r�r�r�rprqryr�rrr}r�r{r�r�r�rHr�r�rMr�rrrrri�s>	




,
,
rizpydist.jsonz
metadata.jsonZMETADATAc@s�eZdZdZejd�Zejdej�Ze	Z
ejd�ZdZde
ZffdVd�Zd	Zd
ZeffedWfe
dXfedYfd�ZdZZd[dd�Zed\�ZdefZdefZdefdefeeedefeeeedefd]d^d�
Z[[dd �Zd_d!d"�Zd#d$�Zed%d&��Z ed'd(��Z!e!j"d)d(��Z!d`d*d+�Z#ed,d-��Z$ed.d/��Z%e%j"d0d/��Z%d1d2�Z&d3d4�Z'd5d6�Z(d7d8�Z)dd9dd:dad=dd>d?d@dbdDdcdGdddIdJddedi
Z*dLdM�Z+dfdPdQ�Z,dRdS�Z-dTdU�Z.dS)grz�
    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}z2.0zdistlib (%s)�legacy)r`rF�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`rFr��_legacy�_dataroNrjcCs0|||gjd�dkrtd��d|_d|_||_|dk	rzy|j||�||_Wn*tk
rvt||d�|_|j�YnXn�d}|r�t	|d��}|j
�}WdQRXn|r�|j
�}|dkr�|j|jd�|_ndt
|t�s�|jd�}ytj|�|_|j|j|�Wn0tk
�r*tt|�|d�|_|j�YnXdS)Nrkz'path, fileobj and mapping are exclusive)rwro�rb)r��	generatorzutf-8)rvro)rlrmr�r�ro�_validate_mappingrri�validater�rp�METADATA_VERSION�	GENERATORr�r	�decode�json�loads�
ValueErrorr)rtrurvrwror�r?rrrrx�s<



zMetadata.__init__r`rF�license�keywordsr�z
Requires-DistzSetup-Requires-DistzProvides-Extrar(�Download-URL�Metadata-Version)
�run_requires�build_requires�dev_requiresZ
test_requires�
meta_requires�extras�modules�
namespaces�exports�commands�classifiers�
source_urlr�c
CsZtj|d�}tj|d�}||k�r||\}}|jr^|dkrP|dkrHdn|�}n|jj|�}n�|dkrjdn|�}|dkr�|jj||�}n�t�}|}|jjd�}	|	�r|dkr�|	jd	|�}nR|dkr�|	jd
�}	|	r�|	j||�}n.|	jd�}	|	�s�|jjd�}	|	�r|	j||�}||k�rV|}n:||k�r4tj||�}n"|j�rJ|jj|�}n|jj|�}|S)
N�common_keys�mapped_keysr�r�r�r�r��
extensionszpython.commandszpython.detailszpython.exports)r�r�r�r�r�)�object�__getattribute__r�r{r�)
rtrY�common�mapped�lkZmaker�resultrZ�sentinel�drrrr��sF




zMetadata.__getattribute__cCsH||jkrD|j|\}}|p |j|krD|j|�}|sDtd||f��dS)Nz.'%s' is an invalid value for the '%s' property)�SYNTAX_VALIDATORSro�matchr)rtrYrZro�pattern�
exclusions�mrrr�_validate_value�s

zMetadata._validate_valuecCs*|j||�tj|d�}tj|d�}||kr�||\}}|jrV|dkrJt�||j|<nf|d
krj||j|<nR|jjdi�}|dkr�||d	<n2|dkr�|jd
i�}|||<n|jdi�}|||<nh||kr�tj|||�nP|dk�rt|t	��r|j
�}|�r|j�}ng}|j�r||j|<n
||j|<dS)Nr�r�r�r�r�r�r�r�zpython.commandszpython.detailszpython.exportsr�)r�r�r�r�r�)r�r�r�r��NotImplementedErrorr��
setdefault�__setattr__r�rr�r�)rtrYrZr�r�r�r]r�rrrr��s>




zMetadata.__setattr__cCst|j|jd�S)NT)rhr`rF)rtrrr�name_and_version%szMetadata.name_and_versioncCsF|jr|jd}n|jjdg�}d|j|jf}||krB|j|�|S)Nz
Provides-Dist�providesz%s (%s))r�r�r�r`rFrN)rtr��srrrr�)s
zMetadata.providescCs |jr||jd<n
||jd<dS)Nz
Provides-Distr�)r�r�)rtrZrrrr�4sc
Cs�|jr|}n�g}t|pg|j�}xl|D]d}d|kr@d|kr@d}n8d|krNd}n|jd�|k}|rx|jd�}|rxt||�}|r&|j|d�q&WxNdD]F}d|}	|	|kr�|j|	�|jjd	|g�}|j|j|||d
��q�W|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)rrr)	r�rr�r{r
�extendrOr��get_requirements)
rt�reqtsr�rr�r��includerJrY�errrr	;s0	




zMetadata.get_requirementscCs|jr|j�S|jS)N)r��_from_legacyr�)rtrrr�
dictionaryeszMetadata.dictionarycCs|jrt�nt|j|j�SdS)N)r�r�rr��DEPENDENCY_KEYS)rtrrr�dependencieskszMetadata.dependenciescCs|jrt�n|jj|�dS)N)r�r�r�rr)rtrZrrrrrsc	Cs�|jd�|jkrt��g}x0|jj�D]"\}}||kr&||kr&|j|�q&W|rfddj|�}t|��x"|j�D]\}}|j|||�qpWdS)Nr�zMissing metadata items: %sz, )	r{r�r�MANDATORY_KEYSrMrNr�rr�)	rtrwror�rYr�r�r�r�rrrr�yszMetadata._validate_mappingcCsB|jr.|jjd�\}}|s|r>tjd||�n|j|j|j�dS)NTz#Metadata: missing: %s, warnings: %s)r�r�rPr�r�r�ro)rtr�r�rrrr��s
zMetadata.validatecCs(|jr|jjd�St|j|j�}|SdS)NT)r�r�rr��
INDEX_KEYS)rtr�rrrr��szMetadata.todictc
Cs�|jr|jst�|j|jd�}|jjd�}x2dD]*}||kr2|dkrLd	}n|}||||<q2W|jd
g�}|dgkrzg}||d<d}x2|D]*\}}||kr�||r�d||ig||<q�W|j|d<i}i}	|S)N)r�r�Tr`rFr�r��description�
classifierr�r"�r��
requires_distr��setup_requires_distr�rr�)r`rFr�r�rr�rr��rr�)rr)r�r��AssertionErrorr�r�r�r{r�)
rtr�Zlmdr��nk�kwrH�okZauthorZ
maintainerrrrr
�s0


zMetadata._from_legacyrrr��python.detailsr&r rr!�python.project�project_urls�Homez	Home-page�contactsrr$�emailzAuthor-emailr�r�cCs�dd�}|jr|jst�t�}|j}x�|jj�D]v\}}t|t�sZ||kr�||||<q2|}d}x8|D]0}y||}Wqhtt	fk
r�d}PYqhXqhW|r2|||<q2W||j
|j�}	||j|j
�}
|jr�t|j�|d<t|	�|d<t|
�|d<|S)NcSs�t�}x�|D]�}|jd�}|jd�}|d}xb|D]Z}|rN|rN|j|�q2d}|r^d|}|rx|rtd||f}n|}|jdj||f��q2WqW|S)Nrrrrz
extra == "%s"z(%s) and %sr�)r}r{�addr�)Zentriesr
rrrZrlistr�rJrrr�process_entries�s"



z,Metadata._to_legacy.<locals>.process_entriesTFzProvides-Extraz
Requires-DistzSetup-Requires-Dist)r�r�rri�LEGACY_MAPPINGrMr�rCr��
IndexErrorr�r�r�r�r��sorted)rtr%r�Znmdrrr��foundr�Zr1Zr2rrr�
_to_legacy�s2

zMetadata._to_legacyFTcCs�||gjd�dkrtd��|j�|r`|jr4|j}n|j�}|rP|j||d�q�|j||d�n^|jrp|j�}n|j}|r�t	j
||dddd�n.tj|dd��}t	j
||dddd�WdQRXdS)	Nrz)Exactly one of path and fileobj is needed)r�Trk)Zensure_ascii�indentZ	sort_keysr�zutf-8)
rlr�r�r�r*ryr�r
r�r��dumpr�r�)rtrurvr�r�Z	legacy_mdr�r?rrrry�s&

zMetadata.writecCs�|jr|jj|�nt|jjdg�}d}x"|D]}d|kr,d|kr,|}Pq,W|dkrhd|i}|jd|�n t|d�t|�B}t|�|d<dS)Nr�rrrr)r�r�r�r��insertr}r()rtr�r��always�entryZrsetrrrr�
s
zMetadata.add_requirementscCs*|jpd}|jpd}d|jj|j||fS)Nz	(no name)z
no versionz<%s %s %s (%s)>)r`rFr�rr�)rtr`rFrrrr�s

zMetadata.__repr__)r�)r�)r�)r�)r�r�ro)NNNrj)r`rFr�r�r�)r�N)r�N)N)NN)r�rr�)r�rr r!)r�rr"rr`)r�rr"rr#)r�rr�)NNFT)/rrrr�re�compileZMETADATA_VERSION_MATCHER�IZNAME_MATCHERrZVERSION_MATCHERZSUMMARY_MATCHERr�rr�rrrr��	__slots__rxr}r�r�Z	none_list�dictZ	none_dictr�r�r�r��propertyr�r��setterr	rrr�r�r�r
r&r*ryr�r�rrrrr[s�


,+

'
*	2
)rrrrr r!r"r#r$r%r&)rrrrr'r r!r"r#r$r%r&r(r)r*r+r,)r*r+r,r(r))rrrrr'r r!r"r#r$r%r-r.r&r(r)r/r0r1r2r3r4)r1r2r3r/r4r-r.r0)rrrrr'r r!r"r#r$r%r-r.r&r(r)r/r0r1r2r3r4r5r6r7r8r9)r5r9r6r7r8)r:r,r+r*)r:)r2r/r1)r3)r)rr(r*r,r+r/r1r2r4r0r'r7r9r8)r0)r")r$r-r r!)F)GrZ
__future__rr�r#rr�r�r0rrr�compatrrr	rIr
�utilrrrFr
rZ	getLoggerrrPrrrr�__all__rrr1r�r�rArBrSr=rTrErVrDrUr}r�rrZEXTRA_RErGr[r�rMr�r�r�r�r�r�r�r�r�r�rfrhriZMETADATA_FILENAMEZWHEEL_METADATA_FILENAMEZLEGACY_METADATA_FILENAMErrrrr�<module>	s�









I


j

Youez - 2016 - github.com/yon3zu
LinuXploit