File "metadata.cpython-37.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python37/lib/python3.7/site-packages/distlib/__pycache__/metadata.cpython-37.pyc
File size: 26.7 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit

B

:aŘ@sdZddlmZddlZddlmZddlZddlZddlZddl	m
Z
mZddlm
Z
mZmZddlmZdd	lmZmZdd
lmZmZeeZGddde
ZGd
dde
ZGddde
ZGddde
ZdddgZdZ dZ!e"dZ#e"dZ$dZ%dZ&dZ'dZ(dZ)dZ*d Z+e*d!Z,d"Z-e.Z/e/0e%e/0e&e/0e(e/0e*e/0e,e"d#Z1d$d%Z2d&d'Z3d(d)e/DZ4d*d)e45DZ6d+Z7d,Z8d-Z9d.Z:d/Z;d0Z<d1Z=e>Z?e"d2Z@d<d4d5ZAGd6d7d7e>ZBd8ZCd9ZDd:ZEGd;dde>ZFdS)=zImplementation 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_schemePEP440_VERSION_REc@seZdZdZdS)MetadataMissingErrorzA required metadata is missingN)__name__
__module____qualname____doc__rrA/opt/alt/python37/lib/python3.7/site-packages/distlib/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(srMetadataPKG_INFO_ENCODINGPKG_INFO_PREFERRED_VERSIONzutf-8z1.1z

       \|z	
        )zMetadata-VersionNameVersionPlatformSummaryDescriptionKeywordsz	Home-pageAuthorzAuthor-emailLicense)zMetadata-VersionrrrzSupported-Platformrr r!z	Home-pager"zAuthor-emailr#
ClassifierzDownload-URL	ObsoletesProvidesRequires)r%r&r'r$zDownload-URL)zMetadata-VersionrrrzSupported-Platformrr r!z	Home-pager"zAuthor-email
MaintainerzMaintainer-emailr#r$zDownload-URLzObsoletes-DistzProject-URLz
Provides-Distz
Requires-DistzRequires-PythonzRequires-External)z
Provides-Distz
Requires-DistzRequires-PythonzObsoletes-DistzRequires-Externalr(zMaintainer-emailzProject-URL)zMetadata-VersionrrrzSupported-Platformrr r!z	Home-pager"zAuthor-emailr(zMaintainer-emailr#r$zDownload-URLzObsoletes-DistzProject-URLz
Provides-Distz
Requires-DistzRequires-PythonzRequires-ExternalzPrivate-VersionzObsoleted-ByzSetup-Requires-Dist	ExtensionzProvides-Extra)zPrivate-VersionzProvides-ExtrazObsoleted-ByzSetup-Requires-Distr))zDescription-Content-Typer'r&r%)zDescription-Content-Typez"extra\s*==\s*("([^"]+)"|'([^']+)')cCsZ|dkrtS|dkrtS|dkr$tS|dkrBttddtDS|dkrNtSt|dS)Nz1.0z1.1z1.2)z1.3z2.1css|]}|tkr|VqdS)N)_345_FIELDS).0frrr	<genexpr>zsz%_version2fieldlist.<locals>.<genexpr>z2.0)_241_FIELDS_314_FIELDSr*tuple_566_FIELDS_426_FIELDSr)versionrrr_version2fieldlistqsr4c
CsLdd}g}x.|D]"\}}|gddfkr.q||qWddddd	d
g}x|D]}|tkr~d|kr~|dtd||tkrd|kr|dtd||tkrd|kr|dtd
||tkrd|kr|dtd||tkr$d
|kr$|dkr$|d
td||t	krTd	|krT|d	td|qTWt
|dkrd|dSt
|dkrtd|tdd|ko||t}d|ko||t
}d
|ko||t}d	|ko||t}	t|t|t|t|	dkrtd|s*|s*|s*|	s*t|kr*tS|r4dS|r>dS|rHd
Sd	S)z5Detect the best version depending on the fields used.cSsx|D]}||krdSqWdS)NTFr)keysmarkersmarkerrrr_has_markers
z"_best_version.<locals>._has_markerUNKNOWNNz1.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)itemsappendr.removeloggerdebugr/r*r1r2lenr_314_MARKERS_345_MARKERS_566_MARKERS_426_MARKERSintr)
fieldsr8r5keyvalueZpossible_versionsZis_1_1Zis_1_2Zis_2_1Zis_2_0rrr
_best_versions`






&
rHcCsi|]}||ddqS)-_)lowerreplace)r+namerrr
<dictcomp>srNcCsi|]\}}||qSrr)r+attrfieldrrrrNs)z
Requires-DistzObsoletes-Distz
Provides-Dist)zRequires-Python)r)rr$r%r'r&zObsoletes-Distz
Provides-Distz
Requires-DistzRequires-ExternalzProject-URLzSupported-PlatformzSetup-Requires-DistzProvides-Extrar))zProject-URL)r!)r"r(rr z[^A-Za-z0-9.]+FcCs0|r$td|}td|dd}d||fS)zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.rI .z%s-%s)	_FILESAFEsubrL)rMr3Zfor_filenamerrr_get_name_and_versionsrUc@s
eZdZdZd?ddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZddZ
ddZd@ddZddZdd Zd!d"Zd#d$ZdAd%d&ZdBd'd(ZdCd)d*Zd+d,Zefd-d.ZdDd/d0ZdEd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!dS)FLegacyMetadataaoThe 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
    NdefaultcCsz|||gddkrtdi|_g|_d|_||_|dk	rH||n.|dk	r\||n|dk	rv|||	dS)Nz'path, fileobj and mapping are exclusive)
count	TypeError_fieldsZrequires_filesZ
_dependenciesschemeread	read_fileupdateset_metadata_version)selfpathfileobjmappingr\rrr__init__s
zLegacyMetadata.__init__cCst|j|jd<dS)NzMetadata-Version)rHr[)rarrrr`
sz#LegacyMetadata.set_metadata_versioncCs|d||fdS)Nz%s: %s
)write)rarcrMrGrrr_write_field
szLegacyMetadata._write_fieldcCs
||S)N)get)rarMrrr__getitem__szLegacyMetadata.__getitem__cCs|||S)N)set)rarMrGrrr__setitem__szLegacyMetadata.__setitem__cCs8||}y|j|=Wntk
r2t|YnXdS)N)
_convert_namer[KeyError)rarM
field_namerrr__delitem__s

zLegacyMetadata.__delitem__cCs||jkp|||jkS)N)r[rl)rarMrrr__contains__s
zLegacyMetadata.__contains__cCs(|tkr|S|dd}t||S)NrIrJ)_ALL_FIELDSrLrK_ATTR2FIELDrh)rarMrrrrl!szLegacyMetadata._convert_namecCs|tks|tkrgSdS)Nr9)_LISTFIELDS_ELEMENTSFIELD)rarMrrr_default_value'szLegacyMetadata._default_valuecCs&|jdkrtd|Std|SdS)N)z1.0z1.1
)metadata_version_LINE_PREFIX_PRE_1_2rT_LINE_PREFIX_1_2)rarGrrr_remove_line_prefix,s
z"LegacyMetadata._remove_line_prefixcCs|tkr||St|dS)N)rrAttributeError)rarMrrr__getattr__2szLegacyMetadata.__getattr__FcCst|d|d|S)zhReturn the distribution name with version.

        If filesafe is true, return a filename-escaped form.rr)rU)raZfilesaferrrget_fullname=szLegacyMetadata.get_fullnamecCs||}|tkS)z+return True if name is a valid metadata key)rlrq)rarMrrris_fieldCs
zLegacyMetadata.is_fieldcCs||}|tkS)N)rlrs)rarMrrris_multi_fieldHs
zLegacyMetadata.is_multi_fieldcCs.tj|ddd}z||Wd|XdS)z*Read the metadata values from a file path.rzutf-8)encodingN)codecsopenr^close)rafilepathfprrrr]LszLegacyMetadata.readcCst|}|d|jd<xxtD]p}||kr*q|tkrh||}|tkrZ|dk	rZdd|D}|||q||}|dk	r|dkr|||qW|}|r|n|d|d<dS)z,Read the metadata values from a file object.zmetadata-versionzMetadata-VersionNcSsg|]}t|dqS),)r0split)r+rGrrr
<listcomp>asz,LegacyMetadata.read_file.<locals>.<listcomp>r9r )rr[rqrsget_all_LISTTUPLEFIELDSrjZget_payload)raZfileobmsgrPvaluesrGZbodyrrrr^Ts

zLegacyMetadata.read_filecCs0tj|ddd}z|||Wd|XdS)z&Write the metadata fields to filepath.wzutf-8)rN)rr
write_filer)rarskip_unknownrrrrrfpszLegacyMetadata.writecCs|xt|dD]}||}|r:|dgdgfkr:q|tkrX|||d|q|tkr|dkr|jdkr|dd}n|dd}|g}|t	krd	d
|D}x|D]}||||qWqWdS)z0Write the PKG-INFO format data to a file object.zMetadata-Versionr9rr )z1.0z1.1rvz	
        z	
       |cSsg|]}d|qS)r)join)r+rGrrrrsz-LegacyMetadata.write_file.<locals>.<listcomp>N)
r`r4rhrtrgrrsrwrLr)raZ
fileobjectrrPrrGrrrrxs$


zLegacyMetadata.write_filecsfdd}|snHt|dr>x<|D]}||||q&Wnx|D]\}}|||qDW|r~x|D]\}}|||qhWdS)aSet 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||dS)N)rrrjrl)rFrG)rarr_setsz#LegacyMetadata.update.<locals>._setr5N)hasattrr5r:)raotherkwargsrkvr)rarr_s

zLegacyMetadata.updatecCsl||}|tks|dkrNt|ttfsNt|trHdd|dD}qzg}n,|tkrzt|ttfszt|trv|g}ng}t	t
jr@|d}t|j
}|tkr|dk	rx|D](}||ddstd	|||qWnb|tkr|dk	r||s@td
|||n0|tkr@|dk	r@||s@td
||||tkr^|dkr^||}||j|<dS)z"Control then set a metadata field.rcSsg|]}|qSr)strip)r+rrrrrsz&LegacyMetadata.set.<locals>.<listcomp>rrN;rz$'%s': '%s' is not valid (field '%s')z.'%s': '%s' is not a valid version (field '%s')r )rlrt
isinstancelistr0rrrsr=isEnabledForloggingWARNINGr
r\_PREDICATE_FIELDSis_valid_matcherwarning_VERSIONS_FIELDSis_valid_constraint_list_VERSION_FIELDSis_valid_version_UNICODEFIELDSrzr[)rarMrGZproject_namer\rrrrrjs@








zLegacyMetadata.setcCs||}||jkr*|tkr&||}|S|tkr@|j|}|S|tkr|j|}|dkr^gSg}x6|D].}|tkr||qh||d|dfqhW|S|tkr|j|}t	|t
r|dS|j|S)zGet a metadata field.Nrrr)rlr[_MISSINGrurrsrr;rtrrr)rarMrWrGresvalrrrrhs.








zLegacyMetadata.getcs
|gg}}xdD]}||kr||qW|rT|gkrTdd|}t|xdD]}||krZ||qZW|ddkr||fSt|jfdd}xbt|ftjft	j
ffD]D\}}x:|D]2}	||	d	}
|
d	k	r||
s|d
|	|
fqWqW||fS)zkCheck if the metadata is compliant. If strict is True then raise if
        no Name or Version are provided)rrzmissing required metadata: %sz, )z	Home-pager"zMetadata-Versionz1.2cs*x$|D]}|ddsdSqWdS)NrrFT)rr)rGr)r\rrare_valid_constraintss
z3LegacyMetadata.check.<locals>.are_valid_constraintsNzWrong value for '%s': %s)r`r;rrr
r\rrrrrrh)rastrictmissingwarningsrOrrrEZ
controllerrPrGr)r\rchecks2




zLegacyMetadata.checkcCsl|t|d}i}xN|D]F}|r0||jkrt|}|dkrN||||<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|]}d|qS)r)r)r+urrrr5sz)LegacyMetadata.todict.<locals>.<listcomp>)r`r4r[_FIELD2ATTR)raZskip_missingrEdatarnrFrrrtodict"s
zLegacyMetadata.todictcCs<|ddkr(xdD]}||kr||=qW|d|7<dS)NzMetadata-Versionz1.1)r%r'r&z
Requires-Distr)rarequirementsrPrrradd_requirements9s


zLegacyMetadata.add_requirementscCstt|dS)NzMetadata-Version)rr4)rarrrr5DszLegacyMetadata.keysccsx|D]
}|Vq
WdS)N)r5)rarFrrr__iter__GszLegacyMetadata.__iter__csfddDS)Ncsg|]}|qSrr)r+rF)rarrrLsz)LegacyMetadata.values.<locals>.<listcomp>)r5)rar)rarrKszLegacyMetadata.valuescsfddDS)Ncsg|]}||fqSrr)r+rF)rarrrOsz(LegacyMetadata.items.<locals>.<listcomp>)r5)rar)rarr:NszLegacyMetadata.itemscCsd|jj|j|jfS)Nz
<%s %s %s>)	__class__rrMr3)rarrr__repr__QszLegacyMetadata.__repr__)NNNrW)F)F)F)N)F)F)"rrrrrer`rgrirkrorprlrurzr|r}r~rr]r^rfrr_rjrrhrrrr5rrr:rrrrrrVs>	




,
,
rVzpydist.jsonz
metadata.jsonZMETADATAc@seZdZdZedZedejZe	Z
edZdZde
Zdddd	Zd
ZdZedfedfe
dfedfdZd
ZdHddZedZdefZdefZdefdefeeedefeeeedefddd
Z[[ddZdIddZddZed 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'd0d1Z(d2d3Z)d4d5d6d7d8d9d:d;d<dd=
Z*d>d?Z+dKdBdCZ,dDdEZ-dFdGZ.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}z2.0zdistlib (%s)r)legacy)rMr3summaryzqname 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)rwrMr3r)_legacy_datar\NrWc	Cs0|||gddkrtdd|_d|_||_|dk	rzy|||||_Wn*tk
rvt||d|_|YnXnd}|rt	|d}|
}WdQRXn|r|
}|dkr|j|jd|_ndt
|ts|d}yt||_||j|Wn0tk
r*tt||d|_|YnXdS)NrXz'path, fileobj and mapping are exclusive)rdr\rb)rw	generatorzutf-8)rcr\)rYrZrrr\_validate_mappingrrVvalidaterr]METADATA_VERSION	GENERATORrr	decodejsonloads
ValueErrorr)rarbrcrdr\rr,rrrres<



zMetadata.__init__)rMr3licensekeywordsrz
Requires-DistzSetup-Requires-DistzProvides-Extrar$)zDownload-URLN)zMetadata-VersionN)
run_requiresbuild_requiresdev_requiresZ
test_requires
meta_requiresextrasmodules
namespacesexportscommandsclassifiers
source_urlrwc
CsXt|d}t|d}||kr||\}}|jr^|dkrP|dkrHdn|}n|j|}n|dkrjdn|}|dkr|j||}nt}|}|jd}	|	r
|dkr|	d|}nP|dkr|	d}	|	r|	||}n,|	d	}	|	s|jd	}	|	r
|	||}||krT|}n:||kr2t||}n"|jrH|j|}n|j|}|S)
Ncommon_keysmapped_keys)rrrrr
extensionsrzpython.commandsrzpython.detailszpython.exports)object__getattribute__rrhr)
rarFcommonmappedlkZmakerresultrGsentineldrrrrsD




zMetadata.__getattribute__cCsH||jkrD|j|\}}|p |j|krD||}|sDtd||fdS)Nz.'%s' is an invalid value for the '%s' property)SYNTAX_VALIDATORSr\matchr)rarFrGr\pattern
exclusionsmrrr_validate_values

zMetadata._validate_valuecCs*|||t|d}t|d}||kr||\}}|jrV|dkrJt||j|<nf|dkrj||j|<nR|jdi}|dkr||d<n2|dkr|di}|||<n|d	i}|||<nh||krt|||nP|d
krt|t	r|
}|r|}ng}|jr||j|<n
||j|<dS)Nrr)rrrrrrrzpython.commandsrzpython.detailszpython.exportsr)rrrrNotImplementedErrorr
setdefault__setattr__rrrr)rarFrGrrrrJrrrrrs<




zMetadata.__setattr__cCst|j|jdS)NT)rUrMr3)rarrrname_and_version%szMetadata.name_and_versioncCsF|jr|jd}n|jdg}d|j|jf}||krB|||S)Nz
Provides-Distprovidesz%s (%s))rrrrMr3r;)rarsrrrr)s
zMetadata.providescCs |jr||jd<n
||jd<dS)Nz
Provides-Distr)rr)rarGrrrr4sc
Cs|jr|}ng}t|pg|j}xl|D]d}d|kr@d|kr@d}n8d|krNd}n|d|k}|rx|d}|rxt||}|r&||dq&WxNdD]F}d|}	|	|kr||	|jd|g}||j|||dqW|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.
        extraenvironmentTrequires)builddevtestz:%s:z%s_requires)renv)	rrrrhr
extendr<rget_requirements)
rareqtsrrrrincluder7rFerrrr;s0	




zMetadata.get_requirementscCs|jr|S|jS)N)r_from_legacyr)rarrr
dictionaryeszMetadata.dictionarycCs|jrtnt|j|jSdS)N)rrrrDEPENDENCY_KEYS)rarrrdependencieskszMetadata.dependenciescCs|jrtn|j|dS)N)rrrr_)rarGrrrrrsc	Cs|d|jkrtg}x0|jD]"\}}||kr&||kr&||q&W|rfdd|}t|x"|D]\}}||||qpWdS)NrwzMissing metadata items: %sz, )	rhrrMANDATORY_KEYSr:r;rrr)	rardr\rrFrrrrrrrryszMetadata._validate_mappingcCsB|jr.|jd\}}|s|r>td||n||j|jdS)NTz#Metadata: missing: %s, warnings: %s)rrr=rrrr\)rarrrrrrs
zMetadata.validatecCs(|jr|jdSt|j|j}|SdS)NT)rrrr
INDEX_KEYS)rarrrrrszMetadata.todictc
Cs|jr|jrt|j|jd}|jd}x2dD]*}||kr0|dkrJd}n|}||||<q0W|dg}|dgkrxg}||d<d	}x2|D]*\}}||kr||rd
||ig||<qW|j|d<i}i}	|S)N)rwrT)rMr3rrdescription
classifierrrr!r))Z
requires_distr)Zsetup_requires_distrrr)rrAssertionErrorrrrrhr)
rarZlmdrnkkwr5okauthor
maintainerrrrrs,



zMetadata._from_legacyrrr#rr z	Home-pager"zAuthor-emailzDownload-URL)
rMr3)rzpython.detailsrrr)rzpython.projectZproject_urlsZHome)rzpython.projectcontactsrrM)rzpython.projectrremailr)rzpython.detailsrcCsdd}|jr|jrtt}|j}x|jD]v\}}t|tsX||kr||||<q0|}d}x8|D]0}y||}Wqftt	fk
rd}PYqfXqfW|r0|||<q0W||j
|j}	||j|j
}
|jrt|j|d<t|	|d<t|
|d<|S)NcSst}x|D]}|d}|d}|d}x^|D]V}|sJ|sJ||q2d}|rZd|}|rt|rpd||f}n|}|d||fq2WqW|S)Nrrrrz
extra == "%s"z(%s) and %sr)rjrhaddr)entriesrrrrZrlistrr7rrrprocess_entriess"



z,Metadata._to_legacy.<locals>.process_entriesTFzProvides-Extraz
Requires-DistzSetup-Requires-Dist)rrrrVLEGACY_MAPPINGr:rr0rm
IndexErrorrrrrrsorted)rar	rZnmdrrrfoundrZr1Zr2rrr
_to_legacys2

zMetadata._to_legacyFTc	Cs||gddkrtd||r`|jr4|j}n|}|rP|j||dq|j||dn^|jrp|}n|j}|rt	j
||ddddn.t|dd}t	j
||ddddWdQRXdS)	Nrz)Exactly one of path and fileobj is needed)rTrX)Zensure_asciiindentZ	sort_keysrzutf-8)
rYrrrrrfrrrrdumprr)rarbrcrrZ	legacy_mdrr,rrrrfs&

zMetadata.writecCs|jr|j|nt|jdg}d}x"|D]}d|kr,d|kr,|}Pq,W|dkrhd|i}|d|n t|dt|B}t||d<dS)Nrrrrr)rrrrinsertrjr)rarralwaysentryZrsetrrrr
s
zMetadata.add_requirementscCs*|jpd}|jpd}d|jj|j||fS)Nz	(no name)z
no versionz<%s %s %s (%s)>)rMr3rrrw)rarMr3rrrrs

zMetadata.__repr__)NNNrW)N)NN)NNFT)/rrrrrecompileZMETADATA_VERSION_MATCHERIZNAME_MATCHERrZVERSION_MATCHERZSUMMARY_MATCHERrrrrrrr	__slots__rerjrrZ	none_listdictZ	none_dictrrrrpropertyrrsetterrrrrrrrr
rrfrrrrrrr[s


,+

'
*	2
)F)GrZ
__future__rrrrrrrrrrcompatrrr	r6r
utilrrr3r
r	getLoggerrr=rrrr__all__rrrryrxr.r/r@r*rAr2rCr1rBrjrqr_ZEXTRA_REr4rHrrr:rrrrrsrrtrrrrSrUrVZMETADATA_FILENAMEZWHEEL_METADATA_FILENAMEZLEGACY_METADATA_FILENAMErrrrr<module>	sv










I


j