1j.dZddlmZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZdd lmZmZdd lmZd d lmZmZd d lmZd dlmZddlmZdZdOdZdPdZ dPdZ!dQdZ"dRdZ#dZ$dZ%d Z&d!Z'd"Z(dSd'Z)d(Z*d)Z+dTd,Z,d-Z-id.d.d/d0d1d2d3d4d5d6d7d8d9d:d;d;dd?d@dAdAdBdCdDdDdEdFdGdHdIdIdJdKdLdMd3dNZ.dS)Uz Handling of Core Metadata for Python packages (including reading and writing). See: https://packaging.python.org/en/latest/specifications/core-metadata/ ) annotationsN)message_from_file)Message)NamedTemporaryFile)Marker) Requirement)canonicalize_namecanonicalize_version)Version)_normalization_reqs) is_static)SetuptoolsDeprecationWarning) rfc822_escapecXt|dd}|td}||_|S)Nmetadata_versionz2.4)getattrr r)selfmvs P/opt/cloudlinux/venv/lib64/python3.11/site-packages/setuptools/_core_metadata.pyget_metadata_versionrs1 )4 0 0B z U^^ " Icontentstrreturnc <|}t|dkr|dSd|dt jd|ddfS)zFReverse RFC-822 escaping by removing leading whitespaces from content.r r N) splitlineslenlstripjointextwrapdedent)rliness rrfc822_unescaper&$sy    E 5zzQQx   99eAhoo''599M9M)N)NO P PPrmsgrfield str | Nonec&||}|dkrdS|S)zRead Message header field.UNKNOWNNr'r(values r_read_field_from_msgr/,s JE t LrcHt||}||St|S)z4Read Message header field and apply rfc822_unescape.)r/r&r-s r_read_field_unescaped_from_msgr14s) e , ,E } 5 ! !!rlist[str] | NonecB||d}|gkrdS|S)z9Read Message header field and return all results as list.N)get_all)r'r(valuess r_read_list_from_msgr6<s( [[ % %F ||t Mrct|}|dks|sdS|S)Nr+)r get_payloadstrip)r'r.s r_read_payload_from_msgr:Ds? !! " " ( ( * *E t LrcXt|}t|d|_t|d|_t|d|_t|d|_t|d|_d|_t|d|_ d|_ t|d|_ t|d |_ t|d |_t|d |_t|d |_|j,|jtd krt#||_t|d|_d|vr(t|dd|_t)|d|_t)|d|_|jtdkr@t)|d|_t)|d|_t)|d|_nd|_d|_d|_t)|d|_dS)z-Reads the metadata values from a file object.zmetadata-versionnameversionsummaryauthorN author-email home-page download-urllicenselicense-expression descriptionz2.1keywords,platform classifierz1.1requiresprovides obsoletes license-file)rr rr/r<r=rEr? maintainer author_emailmaintainer_emailurl download_urlr1rClicense_expressionlong_descriptionr:splitrFr6 platforms classifiersrJrKrL license_files)rfiler's r read_pkg_filerZKs D ! !C#C(:$;<'%..)P)P 6s ; ;+C;;DS,S*==CCCHH (j99DN*3 ==D ..+C<< +C<< ,S+>>  ,S.AADrcd|vrDd}tjd||dd}|S)zF Quick and dirty validation for Summary pypa/setuptools#1390. rzBnewlines are not allowed in `summary` and will break in the futurezInvalid config.r)remitr9rU)valr's r single_liner^usN s{{S$)*;SAAAiikk%%a( Jrcd}tj|d} tdd|d5}|j}||dddn #1swxYwYt jtj|j }tj ||t j zt j ztj |||r5tj|rtj|dSdSdS#|r4tj|rtj|wwwxYw)z.Write the PKG-INFO file into the release tree.zPKG-INFOwzutf-8F)encodingdirdeleteN)ospathr"rr<write_pkg_filestatS_IMODElstatst_modechmodS_IRGRPS_IROTHreplaceexistsremove)rbase_dirtempfinalf permissionss rwrite_pkg_inforwsq D GLL: . .E  g8E R R R #VW6D    " " " # # # # # # # # # # # # # # #l28D>>#9::  {T\1DL@AAA 4  BGNN4((  IdOOOOO    4 BGNN4((  IdOOOO  s/DA  D A$$D'A$(A2D9Ec|}fd}|dt||d||d||}|r|dt |d}|D]$\}}t ||d}| |||%|jx} r |d| n/|x} r|d t| |j D]\} } |d | d | d | } | r |d | |pg}|D]}|d||d||d||d||d|t)|dr|d|j|jr|d|jt/t0|jpg}|d|t5|t6 D]3\}}t ||dx}rt9|s |d|4|}|rDd||dsddSdSdS)z0Write the PKG-INFO format data to a file object.c>|d|ddS)Nz: r)write)keyr.rYs r write_fieldz#write_pkg_file..write_fields, c&&U&&&'''''rzMetadata-VersionNamer Summary))z Home-pagerQ)z Download-URLrR)Authorr?)z Author-emailrO) MaintainerrN)zMaintainer-emailrPNzLicense-ExpressionLicensez Project-URLz, rGKeywordsPlatform ClassifierRequiresProvides Obsoletespython_requireszRequires-PythonzDescription-Content-Typez License-FileDynamicr) rrget_name get_versionget_descriptionr^rrS get_licenser project_urlsitemsr" get_keywords get_platforms _write_listget_classifiers get_requires get_provides get_obsoleteshasattrrlong_description_content_typemap_safe_license_filerX_write_requirements_POSSIBLE_DYNAMIC_FIELDSrget_long_descriptionrzendswith)rrYr=r|r>optional_fieldsr(attrattr_valrSrClabelrQrFrVrHsafe_license_filesr]rTs ` rrgrgs''))G(((((K"CLL111K (((K 4++--...""$$G5 I{733444O')) t4t,,   Kx ( ( (!447 (*<====$$&& &7 I}W55666'--//66 s Me#4#4s#4#45555xx))++,,H* J)))""$$*I** J))))T<)=)=)?)?@@@ T:t'8'8':':;;;T:t'8'8':':;;;T;(:(:(<(<===t&''= %t';<<< )T .0RSSS/1C1IrJJT>+=>>>d###/5577** t4t,, ,C *inn * K 5 ) ) )0022 *(**+++((..  JJt       rctj|jD]}|d|di}|jD]\}}|d\}}}|}tj |} | rt||| |tj |D]>}t|| |} |d| d?|S)NzRequires-Dist: r:) rparseinstall_requiresrzextras_requirer partitionr9r safe_extra_write_provides_extra parse_strings_include_extra) rrYreqprocessed_extrasaugmented_extrareqs unsafe_extra_ conditionextrars rrrs${4011.. ,S,,,----!%!4!:!:!%>s%C%C" a#))++ ),77  O !$(8% N N N&t,, 0 0CsE9??+<+<==A JJ.... / / / / 0 rrrrrct|}|jr d|jdnd|rd|dnd|rd|ndf}tdd|D|_|S)N()z extra ==  and c3K|]}||V dSNr,).0xs r z!_include_extra..s'"9"9q"91"9"9"9"9"9"9r)rmarkerrr")rrrrpartss rrrsCA8-AH%/I4!&0ED E gll"9"9e"9"9"999::AH Hrc ||}||kr#tjdd|d|d|dddS|||<|d|d dS) Nz8Ambiguity during "extra" normalization for dependencies.z rz/ normalize to the same value: zW In future versions, setuptools might halt the build process. z!https://peps.python.org/pep-0685/)see_urlzProvides-Extra: r)getrr\rz)rYrsafeunsafepreviouss rrrs##D))H6$) F    $      8      "( .d.../////rcjt||Sr)_distribution_fullnamerr)rs r get_fullnamers& !$--//43C3C3E3E F FFrr<r=cdt|ddt|dS)a >>> _distribution_fullname('setup.tools', '1.0-2') 'setup_tools-1.0.post2' >>> _distribution_fullname('setup-tools', '1.2post2') 'setup_tools-1.2.post2' >>> _distribution_fullname('setup-tools', '1.0-r2') 'setup_tools-1.0.post2' >>> _distribution_fullname('setup.tools', '1.0.post') 'setup_tools-1.0.post0' >>> _distribution_fullname('setup.tools', '1.0+ubuntu-1') 'setup_tools-1.0+ubuntu.1' z{}-{}-rF)strip_trailing_zero)formatr ror )r<r=s rrrsE >>$''S11W%@@@  rctj|tjd}d|vrtj|S|S)N/z../)rerfnormpathrosepbasename)rY normalizeds rrr)sP!!$''//<)rrrr)r'rr(rrr))r'rr(rrr2)r'rrr))rrrrrrrr)r<rr=rrr)/__doc__ __future__rrerhr#emailr email.messagertempfilerpackaging.markersrpackaging.requirementsrpackaging.utilsr r packaging.versionr r`r r_staticrwarningsrdistutils.utilrrr&r/r1r6r:rZr^rwrgrrrrrrrr,rrrs. #""""" ######!!!!!!''''''$$$$$$......CCCCCCCC%%%%%%########222222((((((QQQQ""""'B'B'BT   &HHHV(    000$GGG&  h N -  %   ? N    y O  .! ",# $*% &' * + ,>- . / 2''(=   r