Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
§

hµµhD—ãóÖ—dZddlmZddlZddlmZddlZddlZddlZddl	m
Z
mZddlm
Z
mZmZddlmZdd	lmZmZdd
lmZmZeje¦«ZGd„de
¦«ZGd
„de
¦«ZGd„de
¦«ZGd„de
¦«Zgd¢ZdZ dZ!ej"d¦«Z#ej"d¦«Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+e*dzZ,d Z-d!Z.e,e.zZ/e0¦«Z1e1 2e%¦«e1 2e&¦«e1 2e(¦«e1 2e*¦«e1 2e,¦«e1 2e/¦«ej"d"¦«Z3d#„Z4d$„Z5d%„e1D¦«Z6d&„e6 7¦«D¦«Z8d'Z9d(Z:d)Z;d*Z<d+Z=d,Z>d-Z?e@¦«ZAej"d.¦«ZBd8d0„ZCGd1„d2e@¦«ZDd3ZEd4ZFd5ZGGd6„d7e@¦«ZHdS)9zzImplementation 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ó—eZdZdZdS)ÚMetadataMissingErrorzA required metadata is missingN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__©óú;/usr/local/lib/python3.11/site-packages/distlib/metadata.pyrrs€€€€€Ø(Ð(Ð(Ð(rrcó—eZdZdZdS)ÚMetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nrrrrrrs€€€€€ØHÐHÐHÐHrrcó—eZdZdZdS)Ú MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nrrrrrr#s€€€€€Ø*Ð*Ð*Ð*rrcó—eZdZdZdS)Ú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ó—|dkrtS|dkrtS|dkrtS|dvr&ttd„tD¦«¦«zS|dkrtd¦«‚|dkrtSt|¦«‚)	Nú1.0r$ú1.2)ú1.3ú2.1c3ó,K—|]}|tv¯|V—ŒdS©N)Ú_345_FIELDS)Ú.0Úfs  rú	<genexpr>z%_version2fieldlist.<locals>.<genexpr>ps,èè€Ð"RÐ"R¨¸QÅkÐ=QÐ=Q 1Ð=QÐ=QÐ=QÐ=QÐ"RÐ"Rrú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[gs›€Ø%ÒÐÝÐØ	EÒ	Ð	ÝÐØ	EÒ	Ð	ÝÐØ	NÐ	"Ð	"åUÐ"RÐ"R­kÐ"RÑ"RÔ"RÑRÔRÑRÐRØ	EÒ	Ð	ÝÐFÑGÔGÐGà	EÒ	Ð	ÝÐÝ
*¨7Ñ
3Ô
3Ð3rcóŠ—d„}d„| ¦«D¦«}gd¢}|D]w}|tvr4d|vr0| d¦«t d|¦«|t
vr4d|vr0| d¦«t d|¦«|tvr4d|vr0| d¦«t d	|¦«|tvr4d
|vr0| d
¦«t d|¦«|tvr:d|vr6|d
kr0| d¦«t d|¦«|tvr4d|vr0| d¦«t d|¦«Œyt|¦«dkr|dSt|¦«dkr*t d|¦«td¦«‚d|vo||t¦«}d|vo||t¦«}d|vo||t¦«}d|vo||t¦«}t|¦«t|¦«zt|¦«zt|¦«zdkrtd¦«‚|s|s|s|st |vrt S|rdS|rdS|rdSdS)z5Detect the best version depending on the fields used.có:‡—tˆfd„|D¦«¦«S)Nc3ó •K—|]}|‰vV—Œ	dSrMr)rOÚmarkerÚkeyss  €rrQz5_best_version.<locals>._has_marker.<locals>.<genexpr>}s'øèè€Ð8Ð8 f6˜T>Ð8Ð8Ð8Ð8Ð8Ð8r)Úany)r`Úmarkerss` rÚ_has_markerz"_best_version.<locals>._has_marker|s&ø€ÝÐ8Ð8Ð8Ð8°Ð8Ñ8Ô8Ñ8Ô8Ð8rcó&—g|]\}}|gddfv¯|‘ŒS)ÚUNKNOWNNr)rOÚkeyÚvalues   rú
<listcomp>z!_best_version.<locals>.<listcomp>s.€ÐWÐWÐW‘JC˜°EÀ"ÀiÐQUÐAVÐ4VÐ4VˆCÐ4VÐ4VÐ4Vr)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")	Úfieldsrcr`Úpossible_versionsrfÚis_1_1Úis_1_2Úis_2_1Úis_2_2s	         rÚ
_best_versionryys=€ð9ð9ð9ðXÐW &§,¢,¡.¤.ÐWÑWÔW€DØBÐBÐBÐðð7ñ7ˆØ•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+ÝLŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+ÝLŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+ÝLŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+ÝLŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@ؐmÒ#Ð#Ø!×(Ò(¨Ñ/Ô/Ð/Ý—’Ð4°cÑ:Ô:Ð:Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+ÝLŠLÐ0°#Ñ6Ô6Ð6ùõÐÑÔ Ò"Ð"Ø  Ô#Ð#Ý	Ð
Ñ	Ô	 1Ò	$Ð	$ݏŠÐ@À&ÑIÔIÐIÝ#Ð$:Ñ;Ô;Ð;ðÐ'Ð
'Ð
K¨K¨K¸½lÑ,KÔ,K€FØ
Ð'Ð
'Ð
K¨K¨K¸½lÑ,KÔ,K€FØ
Ð'Ð
'Ð
K¨K¨K¸½lÑ,KÔ,K€Fà
Ð'Ð
'Ð
K¨K¨K¸½lÑ,KÔ,K€FÝ
ˆ6{„{•S˜‘[”[Ñ ¥3 v¡;¤;Ñ.µ°V±´Ñ<¸qÒ@Ð@Ý#Ð$RÑSÔSÐSðð.˜&ð.¨ð.¸ð.å%Ð):Ð:Ð:Ý-Ð-Ø
ð؈uØ
ð؈uØ
ð؈uðˆ5rcó`—i|]+}| ¦« dd¦«|“Œ,S)ú-Ú_)ÚlowerÚreplace)rOÚnames  rú
<dictcomp>r€Ãs2€ÐLÐLÐL¸ˆtzŠz‰|Œ|×#Ò# C¨Ñ-Ô-¨tÐLÐLÐLrcó—i|]\}}||“Œ	Srr)rOÚattrÚfields   rr€r€Äs€ÐBÐBÐB™{˜t UˆudÐBÐBÐBr)r<r9r;)r=)r()r)r2r4r6r5r9r;r<r>r:r1rArCrBrF)r:)r,)r.r7r*r+z[^A-Za-z0-9.]+Fcó¨—|rJt d|¦«}t d| dd¦«¦«}|›d|›S)zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.r{ú ú.)Ú	_FILESAFEÚsubr~)rrZÚfor_filenames   rÚ_get_name_and_versionrŠ×sT€ðð@õ}Š}˜S $Ñ'Ô'ˆÝ—-’-  W§_¢_°S¸#Ñ%>Ô%>Ñ?Ô?ˆØdd˜G˜GÐ$Ð$rcóҗeZdZdZd"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!dS)%Ú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ÚdefaultcóR—|||g d¦«dkrtd¦«‚i|_g|_d|_||_|| |¦«dS|| |¦«dS|+| |¦«| 	¦«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–s     rÚ__init__zLegacyMetadata.__init__ñs¾€Ø'˜7Ð#×)Ò)¨$Ñ/Ô/°!Ò3Ð3ÝÐEÑFÔFÐF؈ŒØ ˆÔØ!ˆÔ؈ŒØÐØIŠId‰OŒOˆOˆOˆOØ
Ð
 ØNŠN˜7Ñ#Ô#Ð#Ð#Ð#Ø
Ð
 ØKŠK˜Ñ Ô Ð Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'ð!Ð
 rcó>—t|j¦«|jd<dS©Nr&)ryr“©r›s rršz#LegacyMetadata.set_metadata_versions€Ý+8¸¼Ñ+FÔ+FˆŒÐ'Ñ(Ð(Ð(rcó<—| |›d|›d¦«dS)Nz: ú
)Úwrite)r›rrrgs    rÚ_write_fieldzLegacyMetadata._write_fields'€Ø
Š
 D D D¨%¨%¨%Ð0Ñ1Ô1Ð1Ð1Ð1rcó,—| |¦«SrM)Úget©r›rs  rÚ__getitem__zLegacyMetadata.__getitem__s€ØxŠx˜‰~Œ~Ðrcó.—| ||¦«SrM)Úset)r›rrgs   rÚ__setitem__zLegacyMetadata.__setitem__	s€ØxŠx˜˜eÑ$Ô$Ð$rcó|—| |¦«}	|j|=dS#t$rt|¦«‚wxYwrM)Ú
_convert_namer“ÚKeyError)r›rÚ
field_names   rÚ__delitem__zLegacyMetadata.__delitem__sQ€Ø×'Ò'¨Ñ-Ô-ˆ
ð	!Ø”˜ZÐ(Ð(Ð(øÝð	!ð	!ð	!ݘ4‘.”.Ð ð	!øøøs—!¡;cóL—||jvp| |¦«|jvSrM)r“r¯r©s  rÚ__contains__zLegacyMetadata.__contains__s)€Ø˜œÐ$ÐP¨×(:Ò(:¸4Ñ(@Ô(@ÀDÄLÐ(PÐQrcóž—|tvr|S| dd¦« ¦«}t ||¦«S)Nr{r|)Ú_ALL_FIELDSr~r}Ú_ATTR2FIELDr¨r©s  rr¯zLegacyMetadata._convert_namesE€Ø•;ÐÐØˆK؏|Š|˜C Ñ%Ô%×+Ò+Ñ-Ô-ˆÝŠ˜t TÑ*Ô*Ð*rcó.—|tvs	|tvrgSdS)Nre)Ú_LISTFIELDSÚ_ELEMENTSFIELDr©s  rÚ_default_valuezLegacyMetadata._default_values!€Ø•;ÐР$­.Ð"8Ð"8؈I؈yrcó€—|jdvrt d|¦«St d|¦«S)N©rHr$r¤)Úmetadata_versionÚ_LINE_PREFIX_PRE_1_2rˆÚ_LINE_PREFIX_1_2©r›rgs  rÚ_remove_line_prefixz"LegacyMetadata._remove_line_prefix!s<€ØÔ  NÐ2Ð2Ý'×+Ò+¨D°%Ñ8Ô8Ð8å#×'Ò'¨¨eÑ4Ô4Ð4rcóB—|tvr||St|¦«‚rM)r·ÚAttributeErrorr©s  rÚ__getattr__zLegacyMetadata.__getattr__'s%€Ø•;ÐÐØ˜”:ÐݘTÑ"Ô"Ð"rFcó<—t|d|d|¦«S)zz
        Return the distribution name with version.

        If filesafe is true, return a filename-escaped form.
        r'r()rŠ)r›Úfilesafes  rÚget_fullnamezLegacyMetadata.get_fullname0s€õ% T¨&¤\°4¸	´?ÀHÑMÔMÐMrcó>—| |¦«}|tvS)z+return True if name is a valid metadata key)r¯r¶r©s  rÚis_fieldzLegacyMetadata.is_field8s €à×!Ò! $Ñ'Ô'ˆØ•{Ð"Ð"rcó>—| |¦«}|tvSrM)r¯r¹r©s  rÚis_multi_fieldzLegacyMetadata.is_multi_field=s €Ø×!Ò! $Ñ'Ô'ˆØ•{Ð"Ð"rcóº—tj|dd¬¦«}	| |¦«| ¦«dS#| ¦«wxYw)z*Read the metadata values from a file path.Úrr#©ÚencodingN)ÚcodecsÚopenr˜Úclose)r›ÚfilepathÚfps   rr—zLegacyMetadata.readAsR€å
Œ[˜ 3°Ð
9Ñ
9Ô
9ˆð	ØNŠN˜2ÑÔÐàHŠH‰JŒJˆJˆJˆJøˆBHŠH‰JŒJˆJˆJøøøs™AÁAcóŒ—t|¦«}|d|jd<tD]y}||vrŒ|tvrC| |¦«}|t
vr|d„|D¦«}| ||¦«ŒS||}||dkr| ||¦«Œz| ¦«}|r|n|d|d<dS)z,Read the metadata values from a file object.zmetadata-versionr&NcóR—g|]$}t| d¦«¦«‘Œ%S©ú,)rVÚsplit©rOrgs  rrhz,LegacyMetadata.read_file.<locals>.<listcomp>Vs,€ÐJÐJÐJ¸%e E§K¢K°Ñ$4Ô$4Ñ5Ô5ÐJÐJÐJrrer+)rr“r¶r¹Úget_allÚ_LISTTUPLEFIELDSr¬Úget_payload)r›ÚfileobÚmsgrƒÚvaluesrgÚbodys       rr˜zLegacyMetadata.read_fileIs÷€å Ñ'Ô'ˆØ+.Ð/AÔ+BˆŒÐ'Ñ(õ!ð
	+ð
	+ˆEؘCÐÐØØÐ#Ð#àŸš UÑ+Ô+ØÕ,Ð,Ð,°Ð1CØJÐJÀ6ÐJÑJÔJFØ—’˜ Ñ'Ô'Ð'Ð'ð˜Eœ
ØÐ$¨°)Ò);Ð);Ø—H’H˜U EÑ*Ô*Ð*øðŠÑ Ô ˆØ&*ÐC˜d˜d°°]Ô0Cˆˆ]ÑÐÐrcó¼—tj|dd¬¦«}	| ||¦«| ¦«dS#| ¦«wxYw)z&Write the metadata fields to filepath.Úwr#rÏN)rÑrÒÚ
write_filerÓ)r›rÔÚskip_unknownrÕs    rr¥zLegacyMetadata.writeesT€å
Œ[˜ 3°Ð
9Ñ
9Ô
9ˆð	ØOŠO˜B Ñ-Ô-Ð-àHŠH‰JŒJˆJˆJˆJøˆBHŠH‰JŒJˆJˆJøøøs™AÁAcóø—| ¦«t|d¦«D]Ï}| |¦«}|r	|dgdgfvrŒ"|tvr+| ||d |¦«¦«ŒV|tvr?|dkr6|jdvr| dd¦«}n| dd¦«}|g}|tvrd	„|D¦«}|D]}| |||¦«ŒŒÐd
S)z0Write the PKG-INFO format data to a file object.r&rerÙr+r½r¤r%z	
       |có8—g|]}d |¦«‘ŒSrØ©ÚjoinrÛs  rrhz-LegacyMetadata.write_file.<locals>.<listcomp>s"€Ð>Ð>Ð>¨e˜#Ÿ(š( 5™/œ/Ð>Ð>Ð>rN)
ršr[r¨rºr¦rêr¹r¾r~rÝ)r›Ú
fileobjectrærƒrárgs      rråzLegacyMetadata.write_filems;€à×!Ò!Ñ#Ô#Ð#å'¨Ð-?Ô(@ÑAÔAð	<ð	<ˆEØ—X’X˜e‘_”_ˆFØð
 ¨9°b¸9¸+Ð*FÐ FÐ FØØÐ&Ð&Ø×!Ò! *¨e°S·X²X¸fÑ5EÔ5EÑFÔFÐFØØKÐ'Ð'ؘMÒ)Ð)ØÔ,°Ð>Ð>Ø!'§¢°°lÑ!CÔ!C˜˜à!'§¢°°lÑ!CÔ!C˜Ø ˜àÕ(Ð(Ð(Ø>Ð>°vÐ>Ñ>Ô>àð
<ð
<Ø×!Ò! *¨e°UÑ;Ô;Ð;Ð;ð
<ð%	<ð	<rcó‡—ˆfd„}|snNt|d¦«r*| ¦«D]}||||¦«Œn|D]\}}|||¦«Œ|r&| ¦«D]\}}|||¦«Œ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.
        cóx•—|tvr-|r-‰ ‰ |¦«|¦«dSdSdSrM)r·r¬r¯)rfrgr›s  €rÚ_setz#LegacyMetadata.update.<locals>._set‘sIø€Ø•kÐ!Ð! eÐ!Ø—’˜×+Ò+¨CÑ0Ô0°%Ñ8Ô8Ð8Ð8Ð8ð"Ð!Ð!Ð!rr`N)Úhasattrr`ri)r›ÚotherÚkwargsrîÚkÚvs`     rr™zLegacyMetadata.update†sÞø€ð	9ð	9ð	9ð	9ð	9ðð	àÝ
U˜FÑ
#Ô
#ð	Ø—Z’Z‘\”\ð
"ð
"ØQ˜˜aœÑ!Ô!Ð!Ð!ð
"ðð
ð
‘1ؐQ˜‘
”


àð	ØŸš™œð
ð
‘1ؐQ˜‘
”


ð	ð	ð
ð
rcó—| |¦«}|tvs|dkrTt|ttf¦«s8t|t
¦«r d„| d¦«D¦«}nCg}n@|tvr7t|ttf¦«st|t
¦«r|g}ng}t 	tj¦«ró|d}t|j
¦«}|tvrS|Q|D]M}| | d¦«d¦«st d|||¦«ŒNn{|t"vr5|3| |¦«st d	|||¦«n=|t&vr4|2| |¦«st d	|||¦«|t*vr|d
kr| |¦«}||j|<dS)z"Control then set a metadata field.r)có6—g|]}| ¦«‘ŒSr)Ústrip)rOrós  rrhz&LegacyMetadata.set.<locals>.<listcomp>©s €Ð=Ð=Ð= q˜Ÿš™œÐ=Ð=Ð=rrÙ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Úr¹rkÚisEnabledForÚloggingÚWARNINGrr–Ú_PREDICATE_FIELDSÚis_valid_matcherÚwarningÚ_VERSIONS_FIELDSÚis_valid_constraint_listÚ_VERSION_FIELDSÚis_valid_versionÚ_UNICODEFIELDSrÂr“)r›rrgÚproject_namer–rós      rr¬zLegacyMetadata.set£s€à×!Ò! $Ñ'Ô'ˆà
•^Ð
#Ð
# t¨zÒ'9Ð'9Å:ÈeÕVZÕ\aÐUbÑCcÔCcÐ'9ݘ%¥Ñ.Ô.ð
Ø=Ð=¨E¯KªK¸Ñ,<Ô,<Ð=Ñ=Ô=àØ•kÐ!Ð!­*°U½TÅ5¸MÑ*JÔ*JÐ!ݘ%¥Ñ.Ô.ð
ؘàå×ҝwœÑ/Ô/ð	pØ œ<ˆLå ¤Ñ,Ô,ˆFØÕ(Ð(Ð(¨UÐ->ØðfðfAà!×2Ò2°1·7²7¸3±<´<À´?ÑCÔCðfÝŸšÐ'MÈ|Ð]^Ð`dÑeÔeÐeøðfð
Õ)Ð)Ð)¨eÐ.?Ø×6Ò6°uÑ=Ô=ðpÝ—N’NÐ#SÐUaÐchÐjnÑoÔoÐoøØÐ(Ð(¨UÐ->Ø×.Ò.¨uÑ5Ô5ðpÝ—N’NÐ#SÐUaÐchÐjnÑoÔoÐoà•>Ð!Ð!ؐ}Ò$Ð$Ø×0Ò0°Ñ7Ô7à"ˆŒTÑÐÐrcó—| |¦«}||jvr |tur| |¦«}|S|tvr|j|}|S|t
vr\|j|}|€gSg}|D]D}|tvr| |¦«Œ!| |d|df¦«ŒE|S|tvr7|j|}t|t¦«r| d¦«S|j|S)zGet a metadata field.NrrrÙ)r¯r“Ú_MISSINGr»rr¹rÝÚappendrºrør	rÚ)r›rrrgÚresÚvals      rr¨zLegacyMetadata.getÉs$€à×!Ò! $Ñ'Ô'ˆØt”|Ð#Ð#؝(Ð"Ð"Ø×-Ò-¨dÑ3Ô3ØˆNØ•>Ð!Ð!Ø”L Ô&ˆE؈LØ
•[Ð
 Ð
 Ø”L Ô&ˆE؈}ؐ	؈CØð
1ð
1ØÕ/Ð/Ð/Ø—J’J˜s‘O”OOOð—J’J  A¤¨¨A¬Ð/Ñ0Ô0Ð0Ð0؈Jà
•^Ð
#Ð
#Ø”L Ô&ˆEݘ%¥Ñ.Ô.ð
(Ø—{’{ 3Ñ'Ô'Ð'ØŒ|˜DÔ!Ð!rcó>‡—| ¦«gg}}dD]}||vr| |¦«Œ|r-|gkr'dd |¦«z}t|¦«‚dD]}||vr| |¦«Œ|ddkr||fSt	|j¦«Šˆfd„}t|ft‰jft‰j
ffD]H\}}|D]@}	| |	d¦«}
|
&||
¦«s| d	|	›d
|
›¦«ŒAŒI||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ót•—|D]3}‰ | d¦«d¦«sdSŒ4dS)Nr÷rFT)rþrÚ)rgrór–s  €rÚare_valid_constraintsz3LegacyMetadata.check.<locals>.are_valid_constraintssGø€Øð
!ð
!Ø×.Ò.¨q¯wªw°s©|¬|¸A¬Ñ?Ô?ð!Ø ˜5˜5ð!à4rNzWrong value for 'z': )ršrrêrrr–rýrrrrr¨)r›ÚstrictÚmissingÚwarningsr‚ràrrsÚ
controllerrƒrgr–s           @rÚcheckzLegacyMetadata.checkæs£ø€ð	
×!Ò!Ñ#Ô#Ð#𠐈à'ð	%ð	%ˆDؘ4ÐÐØ—’˜tÑ$Ô$Ð$øàð	,g ’mmØ1°D·I²I¸gÑ4FÔ4FÑFˆCÝ& sÑ+Ô+Ð+à+ð	%ð	%ˆDؘ4ÐÐØ—’˜tÑ$Ô$Ð$øðÐ"Ô# uÒ,Ð,ؘHÐ$Ð$å˜DœKÑ(Ô(ˆð	ð	ð	ð	ð	õ%6Ð7LÐ#MÝ$4°fÔ6UÐ#VÕYhØY_ÔYpðYrð#sð	Qð	QÑˆFJð ð
Qð
QØŸš ¨Ñ-Ô-ØÐ$¨Z¨Z¸Ñ->Ô->Ð$Ø—O’OOÀ%À%À%ÈÈÐ$OÑPÔPÐPøð
Qð
˜Ð Ð rcóä—| ¦«t|d¦«}i}|D]A}|r	||jvr4t|}|dkr||||<Œ,d„||D¦«||<ŒB|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_urlcó8—g|]}d |¦«‘ŒSrØré)rOÚus  rrhz)LegacyMetadata.todict.<locals>.<listcomp>#s"€Ð GÐ GÐ G° §¢¨!¡¤Ð GÐ GÐ Gr)ršr[r“Ú_FIELD2ATTR)r›Úskip_missingrsÚdatar±rfs      rÚtodictzLegacyMetadata.todicts›€ð	
×!Ò!Ñ#Ô#Ð#å# DÐ);Ô$<Ñ=Ô=ˆàˆà ð	Hð	HˆJØð
H :°´Ð#=Ð#=Ý! *Ô-Ø˜-Ò'Ð'Ø $ ZÔ 0D˜‘IIà GÐ G°d¸:Ô6FÐ GÑ GÔ GD˜‘IøàˆrcóV—|ddkrdD]	}||vr||=Œ
|dxx|z
cc<dS)Nr&r$)r4r6r5r<r)r›Úrequirementsrƒs   rÚadd_requirementszLegacyMetadata.add_requirements'sU€ØÐ"Ô# uÒ,Ð,à>ð
$ð
$Ø˜D==ؘU˜øØˆ_ÐÐÔ Ñ-ÐÐÑÐÐrcóF—tt|d¦«¦«Sr¡)rùr[r¢s rr`zLegacyMetadata.keys2s€ÝÕ& tÐ,>Ô'?Ñ@Ô@ÑAÔAÐArc#ó@K—| ¦«D]}|V—ŒdSrM©r`)r›rfs  rÚ__iter__zLegacyMetadata.__iter__5s2èè€Ø—9’9‘;”;ð	ð	ˆC؈IˆIˆIˆIð	ð	rcóD‡—ˆfd„‰ ¦«D¦«S)Ncó •—g|]
}‰|‘ŒSrr©rOrfr›s  €rrhz)LegacyMetadata.values.<locals>.<listcomp>:sø€Ð1Ð1Ð1˜cS”	Ð1Ð1Ð1rr!r¢s`rrázLegacyMetadata.values9s%ø€Ø1Ð1Ð1Ð1 T§Y¢Y¡[¤[Ð1Ñ1Ô1Ð1rcóD‡—ˆfd„‰ ¦«D¦«S)Ncó$•—g|]}|‰|f‘Œ
Srrr%s  €rrhz(LegacyMetadata.items.<locals>.<listcomp>=s"ø€Ð8Ð8Ð8 Sd˜3”iÐ Ð8Ð8Ð8rr!r¢s`rrizLegacyMetadata.items<s%ø€Ø8Ð8Ð8Ð8¨D¯IªI©K¬KÐ8Ñ8Ô8Ð8rcóB—d|jj›d|j›d|j›dS)Nú<r…ú>)Ú	__class__rrrZr¢s rÚ__repr__zLegacyMetadata.__repr__?s(€€Ø#œ~Ô6Ð6Ð6¸¼	¸	¸	À4Ä<À<À<ÐPÐPr©NNNr©FrM)"rrrrrŸršr¦rªr­r²r´r¯r»rÂrÅrÈrÊrÌr—r˜r¥rår™r¬rr¨rrrr`r"rárir,rrrrŒrŒäs€€€€€ððð
(ð
(ð
(ð
(ðGðGðGð2ð2ð2ðððð%ð%ð%ð!ð!ð!ðRðRðRð+ð+ð+ðððð
5ð5ð5ð#ð#ð#ðNðNðNðNð#ð#ð#ð
#ð#ð#ððððDðDðDð8ðððð<ð<ð<ð<ð2ðððð:$#ð$#ð$#ðL!)ð"ð"ð"ð"ð:(!ð(!ð(!ð(!ðTðððð..ð.ð.ðBðBðBðððð2ð2ð2ð9ð9ð9ðQðQðQðQðQrrŒzpydist.jsonz
metadata.jsonÚMETADATAcóZ—eZdZdZejd¦«Zejdej¦«Zejdej¦«Z	e
Zejd¦«ZdZ
dezZddd	d
œZdZdZedfed	fed	fed	fe	d	fd
œZdZd8d„Zed¦«ZdefZdefZdefdefeeedefeeeedefdddœ
Z[[d„Zd9d„Zd„Ze d„¦«Z!e d„¦«Z"e"j#d„¦«Z"d:d „Z$e d!„¦«Z%e d"„¦«Z&e&j#d#„¦«Z&d$„Z'd%„Z(d&„Z)d'„Z*d(d)d*d+d,d-d.d/d0dd1œ
Z+d2„Z,d;d5„Z-d6„Z.d7„Z/dS)<r 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)rrZÚ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¾rrZr2Údynamic)Ú_legacyÚ_datar–Nrcól—|||g d¦«dkrtd¦«‚d|_d|_||_|[	| ||¦«||_dS#t$r.t||¬¦«|_| ¦«YdSwxYwd}|r=t|d¦«5}| 
¦«}ddd¦«n#1swxYwYn|r| 
¦«}|€|j|jdœ|_dSt|t¦«s| d¦«}	t!j|¦«|_| |j|¦«dS#t$$r;tt'|¦«|¬¦«|_| ¦«YdSwxYw)Nrr)ržr–Úrb©r¾Ú	generatorr#)rr–)r‘r’r4r5r–Ú_validate_mappingrrŒÚvalidaterÒr—ÚMETADATA_VERSIONÚ	GENERATORrør
ÚdecodeÚjsonÚloadsrXr)r›rœrržr–rrPs       rrŸzMetadata.__init__us€Ø'˜7Ð#×)Ò)¨$Ñ/Ô/°!Ò3Ð3ÝÐEÑFÔFÐF؈Œ؈Œ
؈ŒàÐð
 Ø×&Ò& w°Ñ7Ô7Ð7Ø$”


øÝ3ð
 ð
 ð
 Ý-°gÀfÐMÑMÔM”Ø—
’
‘”ð
 øøøðˆDØð
&ݘ$ Ñ%Ô%ð$¨ØŸ6š6™8œ8Dð$ð$ð$ñ$ô$ð$ð$ð$ð$ð$ð$øøøð$ð$ð$ð$øàð
&Ø—|’|‘~”~Øˆ|ð)-Ô(=Ø!%¤ðð”


õ
" $­	Ñ2Ô2ð0ØŸ;š; wÑ/Ô/Dð$Ý!%¤¨DÑ!1Ô!1D”JØ×*Ò*¨4¬:°vÑ>Ô>Ð>Ð>Ð>øÝ!ð$ð$ð$õ$2½(À4¹.¼.ÐQWÐ#XÑ#XÔ#XD”LØ—M’M‘O”OOOOOð$øøøs7ÁA#Á#4BÂBÂ2CÃCÃCÄ84E.Å.AF3Æ2F3)rrZÚlicenseÚkeywordsr2r<rArCr2)r3N)r&N)
Úrun_requiresÚbuild_requiresÚdev_requiresÚ
test_requiresÚ
meta_requiresÚextrasÚmodulesÚ
namespacesÚexportsÚcommandsÚclassifiersÚ
source_urlr¾có¬—t |d¦«}t |d¦«}||vr<||\}}|jr.|€|€dn	|¦«}nt|j |¦«}nX|€dn	|¦«}|dvr|j ||¦«}n)t¦«}|}|j d¦«}	|	rš|dkr|	 d|¦«}n}|dkr.|	 d¦«}	|	r|	 ||¦«}nI|	 d	¦«}	|	s|j d	¦«}	|	r|	 ||¦«}||ur|}n\||vrt ||¦«}n<|jr|j |¦«}n|j |¦«}|S)
NÚcommon_keysÚmapped_keys©rLrKrIrJrMÚ
extensionsrLúpython.commandsrMúpython.detailsúpython.exports)ÚobjectÚ__getattribute__r4r¨r5)
r›rfÚcommonÚmappedÚlkÚmakerÚresultrgÚsentinelÚds
          rrXzMetadata.__getattribute__·sî€Ý×(Ò(¨¨}Ñ=Ô=ˆÝ×(Ò(¨¨}Ñ=Ô=ˆØ&ˆ=‰=ؘsœ‰IˆBØŒ|ð
'ؐ:Ø%* ]˜T˜T¸¸¹¼F‘Fà!œ\×-Ò-¨bÑ1Ô1F‘Fà % 
˜˜°5°5±7´7ØÐ]Ð]Ð]Ø!œZŸ^š^¨C°Ñ7Ô7F‘Fõ &™xœxHØ%FØœ
Ÿš |Ñ4Ô4AØð;Ø *Ò,Ð,Ø%&§U¢UÐ+<¸eÑ%DÔ%D˜F˜FØ  MÒ1Ð1Ø !§¢Ð&6Ñ 7Ô 7˜AØ ð;Ø)*¯ª¨s°EÑ):Ô): øà !§¢Ð&6Ñ 7Ô 7˜AØ#$ðEØ$(¤J§N¢NÐ3CÑ$DÔ$D Ø ð;Ø)*¯ª¨s°EÑ):Ô): Ø Ð)Ð)Ø!&˜øØ
˜Ð
Ð
Ý×,Ò,¨T°3Ñ7Ô7ˆFˆFØ
Œ\ð	)Ø”\×%Ò% cÑ*Ô*ˆFˆFà”Z—^’^ CÑ(Ô(ˆF؈
rcó°—||jvrH|j|\}}|p|j|vr/| |¦«}|std|›d|›d¦«‚dSdSdS)Nú'z' is an invalid value for the 'z
' property)ÚSYNTAX_VALIDATORSr–Úmatchr)r›rfrgr–ÚpatternÚ
exclusionsÚms       rÚ_validate_valuezMetadata._validate_valueás“€Ø$Ô(Ð(Ð(Ø"&Ô"8¸Ô"=ÑˆGZØÐ%˜$œ+¨jÐ8Ð8Ø—M’M %Ñ(Ô(ØðSÝ.Ð.ØFKÀeÀeÈSÈSÈSð0RñSôSðSð)Ð(à8Ð8ðSðSrcóò—| ||¦«t |d¦«}t |d¦«}||vrŸ||\}}|jr|€t‚||j|<dS|dvr||j|<dS|j di¦«}|dkr||d<dS|dkr| di¦«}|||<dS| d	i¦«}|||<dS||vrt |||¦«dS|d
krBt|t¦«r-| 
¦«}|r| ¦«}ng}|jr||j|<dS||j|<dS)NrPrQrRrSrLrTrMrUrVrB)rgrWrXr4ÚNotImplementedErrorr5Ú
setdefaultÚ__setattr__rør	rörÚ)r›rfrgrYrZr[r|r_s        rrkzMetadata.__setattr__ês¶€Ø×Ò˜S %Ñ(Ô(Ð(Ý×(Ò(¨¨}Ñ=Ô=ˆÝ×(Ò(¨¨}Ñ=Ô=ˆØ&ˆ=ˆ=ؘ3”K‰EˆBØŒ|ð
#ؐ:Ý-Ð-Ø#(”˜RÑ Ð Ð ØÐ[Ð[Ð[Ø"'”
˜3‘ð”J×)Ò)¨,¸Ñ;Ô;Ø˜*Ò$Ð$Ø+0AÐ'Ñ(Ð(Ð(ؘMÒ)Ð)ØŸšÐ%5°rÑ:Ô:AØ"Ac‘FFFàŸšÐ%5°rÑ:Ô:AØ"Ac‘FFFØ
˜Ð
Ð
Ý×Ò˜t S¨%Ñ0Ô0Ð0Ð0Ð0àjÒ Ð Ý˜e¥\Ñ2Ô2ð#Ø!ŸKšK™MœMEØð#Ø %§¢¡
¤
˜˜à "˜ØŒ|ð
(Ø$)”˜SÑ!Ð!Ð!à"'”
˜3‘rcó8—t|j|jd¦«S©NT)rŠrrZr¢s rÚname_and_versionzMetadata.name_and_versions€å$ T¤Y°´¸dÑCÔCÐCrcó¼—|jr|jd}n|j dg¦«}|j›d|j›d}||vr| |¦«|S)Nr;Úprovidesú (ú))r4r5rjrrZr)r›r]Úss   rrpzMetadata.providessg€àŒ<ð	;Ø”\ /Ô2ˆFˆFà”Z×*Ò*¨:°rÑ:Ô:ˆFØœ˜˜ D¤L L LÐ1ˆØFˆ?ˆ?ØMŠM˜!ÑÔÐ؈
rcó@—|jr||jd<dS||jd<dS)Nr;rp)r4r5rÁs  rrpzMetadata.providess0€àŒ<ð	+Ø,1ˆDŒL˜Ñ)Ð)Ð)à%*ˆDŒJzÑ"Ð"Ð"rcó—|jr|}nùg}t|pg|j¦«}|D]q}d|vrd|vrd}nGd|vrd}n| d¦«|v}|r'| d¦«}|rt	||¦«}|r| |d¦«ŒrdD]i}d|z}	|	|vr^| |	¦«|j d|zg¦«}| | |||¬¦«¦«Œj|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)rHÚenv)	r4r
rHr¨rÚextendrjr5Úget_requirements)
r›ÚreqtsrHr|r]r_Úincluder_rfÚes
          rr~zMetadata.get_requirements&sO€ðŒ<ð	X؈FˆFàˆFÝ  ¨"¨d¬kÑ:Ô:ˆFØð
1ð
1Ø !Ð#Ð#¨
¸QÐ(>Ð(>à"GGà aÐ'Ð'à"&˜˜à"#§%¢%¨¡.¤.°FÐ":˜Øð=à!"§¢ }Ñ!5Ô!5˜Ø!ð=Ý&/°¸Ñ&<Ô&<˜GØð1Ø—M’M ! J¤-Ñ0Ô0Ð0øØ/ð
Xð
XØ˜S‘LØ˜;;Ø—M’M !Ñ$Ô$Ð$ð!œJŸNšN¨=¸3Ñ+>ÀÑCÔCEØ—M’M $×"7Ò"7¸ÀfÐRUÐ"7Ñ"VÔ"VÑWÔWÐWøØˆ
rcóF—|jr| ¦«S|jSrM)r4Ú_from_legacyr5r¢s rÚ
dictionaryzMetadata.dictionaryOs&€àŒ<ð	'Ø×$Ò$Ñ&Ô&Ð&ØŒzÐrcóR—|jrt‚t|j|j¦«SrM)r4rirr5ÚDEPENDENCY_KEYSr¢s rÚdependencieszMetadata.dependenciesUs(€àŒ<ð	DÝ%Ð%å! $¤*¨dÔ.BÑCÔCÐCrcóV—|jrt‚|j |¦«dSrM)r4rir5r™rÁs  rr‡zMetadata.dependencies\s.€àŒ<ð	%Ý%Ð%àŒJ×Ò˜eÑ$Ô$Ð$Ð$Ð$rcóŽ—| d¦«|jkrt¦«‚g}|j ¦«D]"\}}||vr||vr| |¦«Œ#|r'dd |¦«z}t|¦«‚| ¦«D]\}}| |||¦«ŒdS)Nr¾zMissing metadata items: %sr)	r¨r<rÚMANDATORY_KEYSrirrêrrg)	r›ržr–rrfreràròrós	         rr:zMetadata._validate_mappingcs倨;Š;Ð)Ñ*Ô*¨dÔ.CÒCÐCÝ2Ñ4Ô4Ð4؈Ø#Ô2×8Ò8Ñ:Ô:ð	(ð	(‰OˆCØ˜'Ð!Ð!Ø Ð+Ð+Ø—N’N 3Ñ'Ô'Ð'øØð	,Ø.°·²¸7Ñ1CÔ1CÑCˆCÝ& sÑ+Ô+Ð+Ø—M’M‘O”Oð	/ð	/‰DˆAˆqØ× Ò   A vÑ.Ô.Ð.Ð.ð	/ð	/rcó֗|jrA|j d¦«\}}|s|rt d||¦«dSdS| |j|j¦«dS)NTz#Metadata: missing: %s, warnings: %s)r4rrkrÿr:r5r–)r›rrs   rr;zMetadata.validateqs‚€ØŒ<ð	<Ø $¤× 2Ò 2°4Ñ 8Ô 8ÑˆGXØð
Y˜(ð
YÝ—’ÐDÀgÈxÑXÔXÐXÐXÐXð
Yð
Yð
×"Ò" 4¤:¨t¬{Ñ;Ô;Ð;Ð;Ð;rcó|—|jr|j d¦«St|j|j¦«}|Srm)r4rrr5Ú
INDEX_KEYS)r›r]s  rrzMetadata.todictys:€ØŒ<ð	Ø”<×&Ò& tÑ,Ô,Ð,å# D¤J°´Ñ@Ô@ˆF؈MrcóZ—|jr|jrJ‚|j|jdœ}|j d¦«}dD]}||vr|dkrd}n|}||||<Œ| dg¦«}|dgkrg}||d<d	}|D]\}}||vr||rd
||ig||<Œ |j|d<|S)Nr8T)rrZrAr2ÚdescriptionÚ
classifierrrMr,ÚrB))Ú
requires_distrC)Úsetup_requires_distrDrxrp)r4r5r<r=rr¨rp)r›r]ÚlmdròÚnkÚkwr`Úoks        rrƒzMetadata._from_legacy€s€ØŒ|Ð. D¤JÐ.Ð.Ð.à $Ô 5Øœð
ð
ˆðŒl×!Ò! $Ñ'Ô'ˆØWð	$ð	$ˆAؐCˆxˆxؘÒ$Ð$Ø&BBàBØ  œVr‘
øØ
WŠWZ Ñ
$Ô
$ˆØ
"Š:ˆ:؈B؈ˆzÑØ]ˆØð	5ð	5‰FˆBØSˆyˆy˜S œWˆyØ)¨3¨r¬7Ð3Ð4r‘
øØ!œ]ˆˆzÑðˆ
rr'r(r0r*r+r-r.r/r3)
rrZ)rSrUrAr2r)rSúpython.projectÚproject_urlsÚHome)rSr˜Úcontactsrr)rSr˜r›rÚemailrN)rSrUrMcó(—d„}|jr|jrJ‚t¦«}|j}|j ¦«D]]\}}t|t¦«s||vr||||<Œ*|}d}|D]%}	||}Œ#ttf$rd}YnwxYw|r|||<Œ^||j	|j
z¦«}	||j|jz¦«}
|j
rt|j
¦«|d<t|	¦«|d<t|
¦«|d<|S)NcóR—t¦«}|D]•}| d¦«}| d¦«}|d}|D]^}|s|s| |¦«Œd}|rd|z}|r
|r	d|›d|›}n|}| d ||f¦«¦«Œ_Œ–|S)	Nrvrwrxr‘z
extra == "%s"ú(z) and r÷)r¬r¨Úaddrê)Úentriesrrrvr|ÚrlistrÎr_s        rÚprocess_entriesz,Metadata._to_legacy.<locals>.process_entriesªsæ€Ý‘E”EˆEØð
9ð
9ØŸš˜g™œØ—e’e˜MÑ*Ô*Ø˜*œ
Øð9ð9AØð9 uð9ØŸ	š	 !™œ˜˜à!#˜Ø ð=Ø%4°uÑ%<˜FØð-Ø%ð-ð-Ø:=¸#¸#¸v¸vÐ)F  à), ØŸ	š	 #§(¢(¨A¨v¨;Ñ"7Ô"7Ñ8Ô8Ð8Ð8ð9ðˆLrTFrCr<rA)r5r4rŒÚLEGACY_MAPPINGrirørVr°Ú
IndexErrorrCrGrDrErHÚsorted)r›r£r]Únmdr•r—r_ÚfoundròÚr1Úr2s           rÚ
_to_legacyzMetadata._to_legacy¨sg€ð	ð	ð	ð*ŒzÐ. $¤,Ð.Ð.Ð.ÝÑ!Ô!ˆØŒjˆàÔ)×/Ò/Ñ1Ô1ð	#ð	#‰FˆBÝ˜b¥%Ñ(Ô(ð

#ؘ99Ø!$ R¤F˜2‘JøàØØððAðؘaœD˜˜øÝ$¥jÐ1ðððØ %˜Ø˜˜ðøøøðð#Ø!"F˜2‘JøØ
ˆ_˜TÔ.°Ô1CÑCÑ
DÔ
DˆØ
ˆ_˜TÔ0°4Ô3DÑDÑ
EÔ
EˆØŒ;ð	;Ý'-¨d¬kÑ':Ô':ˆFÐ#Ñ$Ý"(¨¡*¤*ˆˆÑÝ(.¨r©
¬
ˆÐ$Ñ%àˆ
sÁ5A>Á>BÂBFTcóD—||g d¦«dkrtd¦«‚| ¦«|rW|jr|j}n| ¦«}|r| ||¬¦«dS| ||¬¦«dS|jr| ¦«}n|j}|rtj
||ddd¬¦«dStj|dd¦«5}tj
||ddd¬¦«ddd¦«dS#1swxYwYdS)	Nrz)Exactly one of path and fileobj is needed)ræTr)Úensure_asciiÚindentÚ	sort_keysrär#)
r‘rXr;r4r«r¥rårƒr5r?ÚdumprÑrÒ)r›rœrr1ræÚ	legacy_mdr_rPs        rr¥zMetadata.writeÛs›€Ø'ˆ?× Ò  Ñ&Ô&¨!Ò+Ð+ÝÐHÑIÔIÐIØ
Š
‰ŒˆØð	QØŒ|ð
.Ø œL		à ŸOšOÑ-Ô-	Øð
IØ—’ °<Ñ@Ô@Ð@Ð@Ð@à×$Ò$ W¸<Ð$ÑHÔHÐHÐHÐHàŒ|ð
Ø×%Ò%Ñ'Ô'à”JØð
QÝ”	˜!˜W°4ÀÈTÐRÑRÔRÐRÐRÐRå”[  s¨GÑ4Ô4ðQ¸Ý”I˜a °¸aÈ4ÐPÑPÔPÐPðQðQðQñQôQðQðQðQðQðQðQðQøøøðQðQðQðQðQðQsÃ.DÄDÄDcóR—|jr|j |¦«dS|j dg¦«}d}|D]}d|vrd|vr|}nŒ|€d|i}| d|¦«dSt|d¦«t|¦«z}t
|¦«|d<dS)NrCrwrvrxr)r4rr5rjÚinsertr¬r¦)r›rrCÚalwaysÚentryÚrsets      rrzMetadata.add_requirementsósӀØŒ<ð	2ØŒL×)Ò)¨,Ñ7Ô7Ð7Ð7Ð7àœ:×0Ò0°ÀÑDÔDˆL؈FØ%ð
ð
Ø ¨Ð-Ð-°'ÀÐ2FÐ2FØ"FؐEøØˆ~Ø$ lÐ3Ø×#Ò# A vÑ.Ô.Ð.Ð.Ð.å˜6 *Ô-Ñ.Ô.µ°\Ñ1BÔ1BÑBÝ%+¨D¡\¤\zÑ"Ð"Ð"rc	ób—|jpd}|jpd}d|jj›d|j›d|›d|›d	S)Nz	(no name)z
no versionr)r…rqz)>)rrZr+rr¾)r›rrZs   rr,zMetadata.__repr__sM€ØŒyÐ'˜KˆØ”,Ð. ,ˆˆØ$(¤NÔ$;Ð$;Ð$;¸TÔ=RÐ=RÐ=RÐTXÐTXÐTXÐZaÐZaÐZaÐbÐbrr-rM)NN)NNFT)0rrrrÚreÚcompileÚMETADATA_VERSION_MATCHERÚIÚNAME_MATCHERÚFIELDNAME_MATCHERrÚVERSION_MATCHERÚSUMMARY_MATCHERr<rr=rŠrr†rbÚ	__slots__rŸr¬rPrùÚ	none_listÚdictÚ	none_dictrQrXrgrkÚpropertyrnrpÚsetterr~r„r‡r:r;rrƒr¤r«r¥rr,rrrr r Hs €€€€€ððð *˜rœzÐ*:Ñ;Ô;Ðà2”:ÐAÀ2Ä4ÑHÔH€Là"˜œ
Ð#AÀ2Ä4ÑHÔHÐà'€Oà b”j Ñ-Ô-€OàÐà Ñ,€IðØØðð€Nð!€Jð/€Oð
6°rÐ:ؘ|Ð,Ø# \Ð2Ø# \Ð2Ø% |Ð4ððÐð/€Ið)$ð)$ð)$ð)$ðV#ÐKÑLÔL€Kàt€Iؐt€Ið)¨$Ð/Ø0°$Ð7Ø!Ø"Ø"Ø# TÐ*ØØØØØ$ dÐ+Ø,Ø6ðð€Kð 	9ð(ð(ð(ðTSðSðSðSð$(ð$(ð$(ðLðDðDñ„XðDðððñ„Xðð„_ð+ð+ñ„_ð+ð'ð'ð'ð'ðRððñ„Xðð
ðDðDñ„XðDðÔð%ð%ñÔð%ð/ð/ð/ð<ð<ð<ððððððð8ØØ5>ØØ$ØBMØAIØBPØ$Ø9Eðð€Nð1ð1ð1ðfQðQðQðQð02ð2ð2ð"cðcðcðcðcrr r.)IrÚ
__future__rrÑrœrr?rûr¸r‘rrÚcompatrr	r
rbrÚutilrr
rZrrÚ	getLoggerrrkrrrrÚ__all__r!r"r¹rÀr¿rTrUrnrNroÚ_426_FIELDSÚ_426_MARKERSrWrprqrYr¬r¶r™ÚEXTRA_REr[ryr·rirrýrrr¹rÝrºrrWrr‡rŠrŒÚMETADATA_FILENAMEÚWHEEL_METADATA_FILENAMEÚLEGACY_METADATA_FILENAMEr rrrú<module>rÑsðððð(Ð'Ð'Ð'Ð'Ð'à
€
€
€
Ø#Ð#Ð#Ð#Ð#Ð#Ø€€€Ø€€€Ø	€	€	€	à+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ØÐÐÐÐÐØ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à	ˆÔ	˜8Ñ	$Ô	$€ð)ð)ð)ð)ð)Ð+ñ)ô)ð)ðIðIðIðIðIÐ,ñIôIðIð+ð+ð+ð+ð+Ð'7ñ+ô+ð+ð&ð&ð&ð&ð&Ð+ñ&ô&ð&ð
JÐ
IÐ
I€ðÐð#Ðà2”:˜nÑ-Ô-ÐØ!r”z ,Ñ/Ô/Ðð4€ð'€ðS€ð7€ð
A€ð.€ði€ðÐ]Ñ]€à-€à*€à˜LÑ(€àˆc‰eŒe€Ø×Ґ;ÑÔÐØ×Ґ;ÑÔÐØ×Ґ;ÑÔÐØ×Ґ;ÑÔÐØ×Ґ;ÑÔÐØ×Ґ;ÑÔÐàˆ2Œ:Ð?Ñ@Ô@€ð4ð4ð4ð$EðEðEðTMÐLÀÐLÑLÔL€ØBÐB¨k×.?Ò.?Ñ.AÔ.AÐBÑBÔB€àHÐØ(ÐØ€ð>€ð%Ðà€àC€àˆ6‰8Œ8€àˆBŒJÐ'Ñ(Ô(€	ð
%ð
%ð
%ð
%ð\Qð\Qð\Qð\Qð\QVñ\Qô\Qð\Qð~
"ÐØ)ÐØ%Ððcðcðcðcðcˆvñcôcðcðcðcr