_i"\dZddlZddlZddlZddlmZddlmZddlm Z ddl m Z m Z ddl mZdd lmZmZdd lmZdd lmZdd lmZdd lmZdZdedefdZdedede efdZdedede efdZdedede e efdZdede efdZ dZ!dZ"dZ#dZ$dZ%dedededefd Z&d!Z'y)"z Handling of Core Metadata for Python packages (including reading and writing). See: https://packaging.python.org/en/latest/specifications/core-metadata/ N)message_from_file)Message)NamedTemporaryFile)OptionalList) rfc822_escape)_normalization_reqs)Marker) Requirement)Version)SetuptoolsDeprecationWarningcHt|dd}|td}||_|S)Nmetadata_version2.1)getattrrr)selfmvs /builddir/build/BUILDROOT/alt-python312-setuptools-69.0.2-3.el8.x86_64/opt/alt/python312/lib/python3.12/site-packages/setuptools/_core_metadata.pyget_metadata_versionrs, )4 0B z U^ " Icontentreturnc |j}t|dk(r|djSdj|djt j dj|ddfS)zFReverse RFC-822 escaping by removing leading whitespaces from content.r r N) splitlineslenlstripjointextwrapdedent)rliness rrfc822_unescaper$sc    E 5zQQx  99eAhoo'599M)NO PPrmsgfieldc||}|dk(ry|S)zRead Message header field.UNKNOWNNr%r&values r_read_field_from_msgr,'s JE  Lrc8t||}||St|S)z4Read Message header field and apply rfc822_unescape.)r,r$r*s r_read_field_unescaped_from_msgr./s# e ,E } 5 !!rc6|j|d}|gk(ry|S)z9Read Message header field and return all results as list.N)get_all)r%r&valuess r_read_list_from_msgr27s! [[ %F | MrcR|jj}|dk(s|sy|S)Nr() get_payloadstrip)r%r+s r_read_payload_from_msgr6?s) OO  # # %E  Lrct|}t|d|_t|d|_t|d|_t|d|_t|d|_d|_t|d|_ d|_ t|d|_ t|d |_ t|d |_t|d |_|j(|jtd k\rt!||_t|d|_d |vr t|d j#d|_t'|d|_t'|d|_|jtdk(r4t'|d|_t'|d|_t'|d|_nd|_d|_d|_t'|d|_y)z-Reads the metadata values from a file object.zmetadata-versionnameversionsummaryauthorNz author-emailz home-pagez download-urllicense descriptionrkeywords,platform classifierz1.1requiresprovides obsoletesz license-file)rrrr,r8r9r=r; maintainer author_emailmaintainer_emailurl download_urlr.r<long_descriptionr6splitr>r2 platforms classifiersrBrCrD license_files)rfiler%s r read_pkg_filerPFs D !C#C(:$;)>'%.)P 6s ;+C;DS,S*=CCCH (j9DN*3 =D .+C< +C< ,S+>  ,S.ADrcd|vr:d}tjd||jjdd}|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)remitr5rK)valr%s r single_linerTosD s{S$))*;SAiik%a( Jrcd}tjj|d} tdd|d5}|j}|j |dddt jtj|j}tj||t jzt jztj|||r6tjj|rtj|yyy#1swYxYw#|r6tjj|rtj|wwwxYw)z.Write the PKG-INFO file into the release tree.zPKG-INFOwzutf-8F)encodingdirdeleteN)ospathr rr8write_pkg_filestatS_IMODElstatst_modechmodS_IRGRPS_IROTHreplaceexistsremove)rbase_dirtempfinalf permissionss rwrite_pkg_inform}s D GGLL: .E  g8E RVW66D    "Sll288D>#9#9:  {T\\1DLL@A 4 BGGNN4( IIdO)4S R BGGNN4( IIdO)4s#DDBDDD:Ec|j}fd}|dt||d|j|d|j|j }|r|dt |d}|D]\}}t ||d}|||| |j} | r|dt| |jjD]} |d d | zd j|j} | r |d | |jxsg} | D] } |d |  |jd|j|jd|j!|jd|j#|jd|j%t'|dr|d|j(|j*r|d|j*|jd|j,xsgt/||j1}|r8j3d|z|j5dsj3dyyy)z0Write the PKG-INFO format data to a file object.c4j|d|dy)Nz: r)write)keyr+rOs r write_fieldz#write_pkg_file..write_fields e,-rzMetadata-VersionNamerSummary))z Home-pagerH)z Download-URLrI)Authorr;)z Author-emailrF) MaintainerrE)zMaintainer-emailrGNLicensez Project-URLz%s, %sr?KeywordsPlatform ClassifierRequiresProvides Obsoletespython_requireszRequires-PythonzDescription-Content-Typez License-Filez %sr)rstrget_name get_versionget_descriptionrTr get_licenser project_urlsitemsr get_keywords get_platforms _write_listget_classifiers get_requires get_provides get_obsoleteshasattrr~long_description_content_typerN_write_requirementsget_long_descriptionrpendswith)rrOr9rrr:optional_fieldsr&attrattr_valr< project_urlr>rLr@rJs ` rr]r]sO'')G."CL1 ( 4++-.""$GI{734O' t4t,   x ('  GI}W56((..0 M8k#9:1xx))+,HJ)""$*IJ) T<)=)=)?@ T:t'8'8':;T:t'8'8':;T;(:(:(<=t&'%t';';< )).0R0RST>4+=+=+CDd#002 6,,-((. JJt /rctj|jD]}|jd|di}|jj D]\}}|j d\}}}|j}tj|} | rt||| |tj|D]2}t|| |j} |jd| d4|S)NzRequires-Dist: r:) r parseinstall_requiresrpextras_requirer partitionr5r safe_extra_write_provides_extra parse_strings_include_extra) rrOreqprocessed_extrasaugmented_extrareqs unsafe_extra_ conditionextrars rrrs{{4001 _SE,-2!%!4!4!:!:!<%4%>%>s%C" a#))+ )),7  !$(8% N&&t,CsE9??+<=A JJ2. /-"= rrrrct|}|jrd|jdnd|rd|dnd|rd|ndf}tdjd|D|_|S)N()z extra ==  and c3&K|] }|s| yw)Nr)).0xs r z!_include_extra..s"9eq1es)r markerr r )rrrrpartss rrrsjCA88!AHH:Q%!I;a4!&)E9D E gll"9e"99:AH Hrc |j|}||k(r#tjdd|d|d|ddy|||<|jd|d y) 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)getrrRrp)rOrsafeunsafepreviouss rrrsw##D)H6$)) F LfZ(   8 "( %dV2./r)(__doc__r[r^r!emailr email.messagertempfilertypingrrdistutils.utilrrVr r extern.packaging.markersr extern.packaging.requirementsr extern.packaging.versionrwarningsrrrr$r,r.r2r6rPrTrmr]rrrr)rrrs  #!'!(#,6-2QSQSQgchsm""" "WSXd3i5HHSM&BR &BJ(  C C K 0r