r'GDdZddlmZddlZddlmZddlZddlZddlZddl m Z m Z ddl m Z mZmZddlmZdd lmZmZdd lmZmZejeZGd d e ZGd de ZGdde ZGdde ZgdZdZ dZ!ej"dZ#ej"dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+e*dzZ,d Z-e.Z/e/0e%e/0e&e/0e(e/0e*e/0e,ej"d!Z1d"Z2d#Z3d$e/DZ4d%e45DZ6d&Z7d'Z8d(Z9d)Z:d*Z;d+ZZ?ej"d-Z@d7d/ZAGd0d1e>ZBd2ZCd3ZDd4ZEGd5d6e>ZFdS)8zImplementation 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_REceZdZdZdS)MetadataMissingErrorzA required metadata is missingN__name__ __module__ __qualname____doc__/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/distlib/metadata.pyrrs((((rrceZdZdZdS)MetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nrrrrrr sHHHHrrceZdZdZdS) MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nrrrrrr$s****rrceZdZdZdS)MetadataInvalidErrorzA metadata value is invalidNrrrrrr(s%%%%rr)MetadataPKG_INFO_ENCODINGPKG_INFO_PREFERRED_VERSIONutf-81.1z \| ) Metadata-VersionNameVersionPlatformSummary DescriptionKeywords Home-pageAuthor Author-emailLicense)r&r'r(r)Supported-Platformr*r+r,r-r.r/r0 Classifier Download-URL ObsoletesProvidesRequires)r4r5r6r2r3)r&r'r(r)r1r*r+r,r-r.r/ MaintainerMaintainer-emailr0r2r3Obsoletes-Dist Project-URL Provides-Dist Requires-DistRequires-PythonRequires-External)r;r<r=r9r>r7r8r:)r&r'r(r)r1r*r+r,r-r.r/r7r8r0r2r3r9r:r;r<r=r>Private-Version Obsoleted-BySetup-Requires-Dist ExtensionProvides-Extra)r?rCr@rArB)Description-Content-Typer6r5r4)rDz"extra\s*==\s*("([^"]+)"|'([^']+)')c|dkrtS|dkrtS|dkrtS|dvr&ttdtDzS|dkrt St |)N1.0r$1.2)1.32.1c3,K|]}|tv |VdSN) _345_FIELDS).0fs r z%_version2fieldlist..zs,"R"RQk=Q=Q1=Q=Q=Q=Q"R"Rr2.0) _241_FIELDS _314_FIELDSrLtuple _566_FIELDS _426_FIELDSr)versions r_version2fieldlistrWqs% E   E   N " "U"R"Rk"R"R"RRRRR E   *7 3 33rcd}g}|D]"\}}|gddfvr ||#gd}|D]w}|tvr4d|vr0|dtd||t vr4d|vr0|dtd||tvr4d |vr0|d td ||tvr4d |vr0|d td ||tvr:d |vr6|dkr0|d td||tvr4d|vr0|dtd|yt|dkr|dSt|dkr*td|tdd|vo||t}d |vo||t}d |vo||t}d|vo||t} t!|t!|zt!|zt!| zdkrtd|s|s|s| st"|vrt"S|rdS|rd S|rd SdS)z5Detect the best version depending on the fields used.c|D] }||vrdS dS)NTFr)keysmarkersmarkers r _has_markerz"_best_version.._has_markers+  F~~tturUNKNOWNN)rFr$rGrHrPrIrFzRemoved 1.0 due to %sr$zRemoved 1.1 due to %srGzRemoved 1.2 due to %srHzRemoved 1.3 due to %srIr+zRemoved 2.1 due to %srPzRemoved 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)itemsappendrQremoveloggerdebugrRrLrTrUlenr _314_MARKERS _345_MARKERS _566_MARKERS _426_MARKERSintr") fieldsr]rZkeyvaluepossible_versionsis_1_1is_1_2is_2_1is_2_0s r _best_versionrrsi Dllnn U RD) ) )  CBBB77 k ! !e/@&@&@  $ $U + + + LL0# 6 6 6 k ! !e/@&@&@  $ $U + + + LL0# 6 6 6 k ! !e/@&@&@  $ $U + + + LL0# 6 6 6 k ! !e/@&@&@  $ $U + + + LL0# 6 6 6 k ! !e/@&@&@m##!((/// 4c::: k ! !e/@&@&@  $ $U + + + LL0# 6 6 6 "" ##   1 $ $ @&III#$:;;;' ' KKKl,K,KF ' ' KKKl,K,KF ' ' KKKl,K,KF ' ' KKKl,K,KF 6{{S[[ 3v;;.Vrys?-1DJJLLc""Drci|]\}}|| Srr)rMattrfields rryrysBBB{tUudBBBr)r<r9r;)r=)r()r)r2r4r6r5r9r;r<r>r:r1rArCrB)r:)r,)r.r7r*r+z[^A-Za-z0-9.]+Fc|rJtd|}td|dd}|d|S)zhReturn the distribution name with version. If for_filename is true, return a filename-escaped form.rt .) _FILESAFEsubrw)rxrV for_filenames r_get_name_and_versionrsT@}}S$''--W__S#%>%>??ddGG $$rceZdZdZ d"dZdZdZdZdZd Z d Z d Z d Z d Z dZd#dZdZdZdZdZd#dZd#dZd$dZdZefdZd#dZd#dZdZdZdZdZd 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 NdefaultcR|||gddkrtdi|_g|_d|_||_|||dS|||dS|+||| dSdS)N'path, fileobj and mapping are exclusive) count TypeError_fieldsrequires_files _dependenciesschemeread read_fileupdateset_metadata_version)selfpathfileobjmappingrs r__init__zLegacyMetadata.__init__s '7 # ) )$ / /! 3 3EFF F  !   IIdOOOOO  NN7 # # # # #  KK  % % ' ' ' ' '! rc>t|j|jd<dSNr&)rrrrs rrz#LegacyMetadata.set_metadata_version s+8+F+F '(((rc<||d|ddS)Nz:  )write)rrrxrls r _write_fieldzLegacyMetadata._write_field s' DDD%%%011111rc,||SrK)getrrxs r __getitem__zLegacyMetadata.__getitem__sxx~~rc.|||SrK)set)rrxrls r __setitem__zLegacyMetadata.__setitem__sxxe$$$rc|||} |j|=dS#t$rt|wxYwrK) _convert_namerKeyError)rrx field_names r __delitem__zLegacyMetadata.__delitem__sQ''--  ! Z((( ! ! !4..  !s!;cL||jvp|||jvSrK)rrrs r __contains__zLegacyMetadata.__contains__s. $9""4((DL8 :rc|tvr|S|dd}t||S)Nrtru) _ALL_FIELDSrwrv _ATTR2FIELDrrs rrzLegacyMetadata._convert_name!sE ;  K||C%%++--tT***rc.|tvs |tvrgSdS)Nr^) _LISTFIELDS_ELEMENTSFIELDrs r_default_valuezLegacyMetadata._default_value's! ;  $."8"8Iyrc|jdvrtd|Std|S)NrFr$r)metadata_version_LINE_PREFIX_PRE_1_2r_LINE_PREFIX_1_2rrls r_remove_line_prefixz"LegacyMetadata._remove_line_prefix,s<  N 2 2'++D%88 8#''e44 4rcB|tvr||St|rK)rAttributeErrorrs r __getattr__zLegacyMetadata.__getattr__2s% ;  : T"""rFc<t|d|d|S)zhReturn the distribution name with version. If filesafe is true, return a filename-escaped form.r'r()r)rfilesafes r get_fullnamezLegacyMetadata.get_fullname=s%T&\4 ?HMMMrc>||}|tvS)z+return True if name is a valid metadata key)rrrs ris_fieldzLegacyMetadata.is_fieldCs !!$''{""rc>||}|tvSrK)rrrs ris_multi_fieldzLegacyMetadata.is_multi_fieldHs !!$''{""rctj|dd} |||dS#|wxYw)z*Read the metadata values from a file path.rr#encodingN)codecsopenrclose)rfilepathfps rrzLegacyMetadata.readLsR [3 9 9 9  NN2    HHJJJJJBHHJJJJs AAct|}|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&NcRg|]$}t|d%S,)rSsplitrMrls r z,LegacyMetadata.read_file..as,JJJ%eEKK$4$455JJJrr^r+)rrrrget_all_LISTTUPLEFIELDSr get_payload)rfileobmsgr|valuesrlbodys rrzLegacyMetadata.read_fileTs''+./A+B '(! + +EC ##U++,,,1CJJ6JJJF''''E $)););HHUE***  &*Cdd]0C]rctj|dd} ||||dS#|wxYw)z&Write the metadata fields to filepath.wr#rN)rr write_filer)rr skip_unknownrs rrzLegacyMetadata.writepsT [3 9 9 9  OOB - - - HHJJJJJBHHJJJJs AAc|t|dD]}||}|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&r^rr+rrr%z |c8g|]}d|Srjoinrs rrz-LegacyMetadata.write_file..s">>>e#((5//>>>rN) rrWrrrrrrrwr)r fileobjectrr|rrls rrzLegacyMetadata.write_filexs; !!###'-?(@AA < >!'l!C!C!'l!C!C (((>>v>>> < <!!*eU;;;; <% < ._setsIk!!e!++C00%88888"!!!rrZN)hasattrrZr_)rotherkwargsrkvs` rrzLegacyMetadata.updates 9 9 9 9 9   UF # # ZZ\\ " "Qa!!!! "  1Q     1Q     rc||}|tvs|dkrTt|ttfs8t|t r d|dD}nCg}n@|tvr7t|ttfst|t r|g}ng}t tj r|d}t|j }|tvrS|Q|D]M}||ddstd|||Nn{|t"vr5|3||std |||n=|t&vr4|2||std ||||t*vr|d kr||}||j|<dS) z"Control then set a metadata field.r)c6g|]}|Sr)strip)rMrs rrz&LegacyMetadata.set..s ===q===rrr'N;rz$'%s': '%s' is not valid (field '%s')z.'%s': '%s' is not a valid version (field '%s')r+)rr isinstancelistrSr rrrb isEnabledForloggingWARNINGrr_PREDICATE_FIELDSis_valid_matcherwarning_VERSIONS_FIELDSis_valid_constraint_list_VERSION_FIELDSis_valid_version_UNICODEFIELDSrr)rrxrl project_namerrs rrzLegacyMetadata.sets"!!$'' ^ # #tz'9'954-00(:%.. ==EKK,<,<===k!!UT5M22"%..    w / / >33A!221773<<?CC3B(!T3333)))e.?66u==>NN#S#/>>>((U->..u55>NN#S#/>>> > ! !}$$0077" Trc||}||jvr |tur||}|S|tvr|j|}|S|t vr\|j|}|gSg}|D]D}|t vr||!||d|dfE|S|tvr7|j|}t|tr| dS|j|S)zGet a metadata field.Nrrr) rr_MISSINGrrrrr`rrr r)rrxrrlresvals rrzLegacyMetadata.gets$!!$'' t| # #(""--d33N > ! !L&EL [ L&E} C 1 1///JJsOOOOJJAA/0000J ^ # #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 | AI||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&rGct|D]3}|ddsdS4dS)NrrFT)rr)rlrrs rare_valid_constraintsz3LegacyMetadata.check..are_valid_constraintssG ! !..qwws||A??! 55!4rNzWrong value for 'z': ) rr`rrrrrrrrrr) rstrictmissingwarningsr{rrrj controllerr|rlrs @rcheckzLegacyMetadata.checks !!###' % %D4t$$$  ,gmm1DIIg4F4FFC&s++ ++ % %D4t$$$ " #u , ,H$ $DK((      %67L#M$4$*$C$E$3$*$;$=#> Q Q FJ   Q Q--$ZZ->->$OOO%%%$OPPP 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_urlc8g|]}d|Srr)rMus rrz)LegacyMetadata.todict..5s" G G G! G G Gr)rrWr _FIELD2ATTR)r skip_missingrjdatarrks rtodictzLegacyMetadata.todict"s !!####D);$<==  H HJ H:#=#=!*--'' $Z 0DII G Gd:6F G G GDI rcV|ddkr dD] }||vr||= |dxx|z cc<dS)Nr&r$)r4r6r5r<r)r requirementsr|s radd_requirementszLegacyMetadata.add_requirements9sU " #u , ,> $ $D==U  _-rcFtt|dSr)rrWrs rrZzLegacyMetadata.keysDs&t,>'?@@AAArc#@K|D]}|VdSrKrZ)rrks r__iter__zLegacyMetadata.__iter__Gs299;;  CIIII  rcDfdDS)Nc g|] }| SrrrMrkrs rrz)LegacyMetadata.values..Ls111cS 111rrrs`rrzLegacyMetadata.valuesKs%1111TYY[[1111rcDfdDS)Nc$g|] }||f Srrrs rrz(LegacyMetadata.items..Os"888Sd3i 888rrrs`rr_zLegacyMetadata.itemsNs%8888DIIKK8888rcBd|jjd|jd|jdS)N) __class__rrxrVrs r__repr__zLegacyMetadata.__repr__Qs-#~666 #|||- -rNNNrFrK)"rrrrrrrrrrrrrrrrrrrrrrrrrrr rrrZrrr_r%rrrrrs9=!(((( GGG222%%%!!!:::+++  555 ###NNNN ### ###DDD8<<<<28*#*#*#X!)"""":*!*!*!*!X....BBB222999-----rrz pydist.jsonz metadata.jsonMETADATAc,eZdZdZejdZejdejZe Z ejdZ dZ de zZdddd Zd Zd Zedfedfe dfe dfd Zd Z d7dZedZdefZdefZdefdefeeedefeeeedefddd Z[[dZd8dZdZedZ edZ!e!j"dZ!d9dZ#ed Z$ed!Z%e%j"d"Z%d#Z&d$Z'd%Z(d&Z)d'd(d)d*d+d,d-d.d/dd0 Z*d1Z+d:d4Z,d5Z-d6Z.dS);r z 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}rPz distlib (%s)r)legacy)rxrVsummaryzqname 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)rrxrVr+)_legacy_datarNrcl|||gddkrtdd|_d|_||_|[ |||||_dS#t $r.t|||_|YdSwxYwd}|r=t|d5}| }dddn #1swxYwYn|r| }||j |j d|_dSt|ts|d} t!j||_||j|dS#t$$r;tt'|||_|YdSwxYw)Nrr)rrrbr generatorr#)rr)rrr,r-r_validate_mappingrrvalidaterrMETADATA_VERSION GENERATORrr decodejsonloads ValueErrorr)rrrrrrrNs rrzMetadata.__init__s '7 # ) )$ / /! 3 3EFF F     &&w777$ 3   -gfMMM   D &$%%$6688D$$$$$$$$$$$$$$$ &||~~|)-(=!% "$ 220;;w//D $!%D!1!1DJ**4:v>>>>>! $ $ $$2(4..9?$A$A$ADLMMOOOOOO $s7A##4BB2CCC84E..AF32F3)rxrVlicensekeywordsr+r<rArCr2)r3N)r&N) run_requiresbuild_requires dev_requires test_requires meta_requiresextrasmodules namespacesexportscommands classifiers source_urlrct|d}t|d}||vr<||\}}|jr.||dn |}nt|j|}nX|dn |}|dvr|j||}n)t}|}|jd} | r|dkr| d|}n}|dkr.| d} | r| ||}nI| d } | s|jd } | r| ||}||ur|}n\||vrt||}n<|jr|j|}n|j|}|S) N common_keys mapped_keysrErDrBrCrF extensionsrEpython.commandsrFpython.detailspython.exports)object__getattribute__r,rr-) rrkcommonmappedlkmakerresultrlsentinelds rrQzMetadata.__getattribute__s((}==((}== &==s IB| ':%*]TTFF!\--b11FF % 5577...!Z^^C77FF &xxH%F |44A ;*,,%&UU+(>"GGa''"&"#%%..F":=!"}!5!5!=&/&<&CCEMM$"7"7f.process_entriessEEE 9 9geeM***  9 9A 9u 9 ! !# =%4u%rAsorted) rrrVnmdrrrXfoundrr1r2s r _to_legacyzMetadata._to_legacysg   *z.$,...!!j)//11 # #FBb%(( #99!$RF2JAaD$j1 %#!"F2J _T.1CC D D _T043DD E E ; ;'-dk':':F# $"(**(.r $% s5A>>BBFTcD||gddkrtd||rW|jr|j}n|}|r|||dS|||dS|jr|}n|j}|rtj ||ddddStj |dd5}tj ||dddddddS#1swxYwYdS) Nrz)Exactly one of path and fileobj is needed)rTr) ensure_asciiindent sort_keysrr#) rr9r3r,rrrr|r-r7dumprr)rrrr*r legacy_mdrXrNs rrzMetadata.writes '?  & &! + +HII I   .| . L  OO--  I<@@@@@$$W<$HHHHH| %%''J . !W4$(******[sG44.Iaa(,......................s.DDDcR|jr|j|dS|jdg}d}|D]}d|vrd|vr|}n|d|i}|d|dSt |dt |z}t ||d<dS)Nr<rprorqr)r,rr-rcinsertrr)rrr<alwaysentryrsets rrzMetadata.add_requirements s < 2 L ) ), 7 7 7 7 7:00DDLF%   --'2F2F"FE~%|5##Av.....6*-..\1B1BB%+D\\z"""rc b|jpd}|jpd}d|jjd|jd|d|d S)Nz (no name)z no versionr"r~rjz)>)rxrVr$rr)rrxrVs rr%zMetadata.__repr__sNy'K,.,$(N$;$;$;$($9$9$9444J Jrr&rK)NN)NNFT)/rrrrrecompileMETADATA_VERSION_MATCHERI NAME_MATCHERrVERSION_MATCHERSUMMARY_MATCHERr4rr5rrrr[ __slots__rrrIr none_listdict none_dictrJrQr`rdpropertyrgrisetterrwr}rr2r3rr|rrrrr%rrrr r [s *rz*:;;2:A24HHL'O bj--O,IN !J/O 6r:{+#[1#[1 /I8<!+$+$+$+$Z#KLLKt It I)$/0$7!""#T*$d+,6K 9)))VJJJJ%(%(%(NDDXDX_++_+ ((((TX DDXD %%% / / /<<<<5>$BMAIBP$9E  N000d....4222"JJJJJrr r')Gr __future__rrrrr7rrrrrcompatrr r r[r utilr r rVrr getLoggerrrbrrrr__all__r!r"rrrrQrRrerLrfrUrhrTrgrrrEXTRA_RErWrrrr_rrrrrrrrrPrrrrMETADATA_FILENAMEWHEEL_METADATA_FILENAMELEGACY_METADATA_FILENAMEr rrrrs (''''' ######  ,+++++++5555555555,,,,,,,,22222222  8 $ $)))))+)))IIIII,III+++++'7+++&&&&&+&&& J I I#2:n--!rz,// '  7 3 ! 4 BB - cee ; ; ; ; ; 2:? @ @ 4 4 4EEER5@ CBk.?.?.A.ABBB H'. $C 688 BJ' ( (  % % % %e-e-e-e-e-Ve-e-e-P ")%GJGJGJGJGJvGJGJGJGJGJr