bg'= UdZddlmZddlZddlZddlmZddlmZddl m Z m Z ddl m Z ddlmZdd lmZdd lmZmZmZmZmZd d lmZd d lmZd dlmZd dlmZerddl m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'eiZ(de)d<ee*e+e*e*ffZ,de)d<edeeedfgdfZ-de)d<edZ.ej/e0Z1dd!Z2dd#Z3dd$Z4dd&Z5dd)Z6dd-Z7d.d/d0d1Z8dd4Z9dd7Z:dd8Z;dd<ZZ>dd@Z?ddAZ@ddCZAddEZBddFZCddHZDe(fddKZEddOZFddQZGddUZHddWZIddYZJddZZKd[ZLd\ZMe:e;e ed`ZNdae)db<dcddiZOdedfiZPhdgZQdheAiZRidPeLdidjeLdkdleLdmdneLdodpeMdqdrdseLdtdueMdvdwdxeMdydzd{eLd|d}eLd~deLddeIddeJdeKdeLddeLdZSiggggiiiigid ZTde)d<GddeZUdS)akTranslation layer between pyproject config and setuptools distribution and metadata objects. The distribution and metadata objects are modeled after (an old version of) core metadata, therefore configs in the format specified for ``pyproject.toml`` need to be processed before being applied. **PRIVATE MODULE**: API reserved for setuptools internal usage only. ) annotationsN)Mapping)Address)partialreduce)cleandoc)chain)MappingProxyType) TYPE_CHECKINGAnyCallableTypeVarUnion)StrPath)RemovedConfigError Extension)SetuptoolsWarning) TypeAliasmetadata Distribution) _OptionsListrEMPTYr_ProjectReadmeValuer_Correspondence_Tdistconfigdictfilenamerreturnc|s|Stj|pd}t|||t |||tj}tj| ||tj|n#tj|wxYw|S)z=Apply configuration dict read with :func:`read_configuration`.) ospathdirname_apply_project_table_apply_tool_tablegetcwdchdir_finalize_requires_finalize_license_files)r r!r#root_dircurrent_directorys ]/opt/cloudlinux/venv/lib64/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.pyapplyr3-s  wx((/CHvx000dFH--- HX$ !!! $$&&& "####"#### Ks 0(B--Cr0c|di}|sdSt||t||D]]\}}t |}t ||}t|r||||Lt|||^dS)Nproject) getcopy_handle_missing_dynamic_unify_entry_pointsitemsjson_compatible_keyPYPROJECT_CORRESPONDENCEcallable _set_config)r r!r0 project_tablefieldvaluenorm_keycorresps r2r*r*CsJJy"--2244M D-000 &&&%++--.. u&u--*..xBB G   . GD% * * * * gu - - - - ..c|didi}|sdS|D]\}}t|}|tvrQt t|}d|d}t dt ||gt||}t|||t|||dS)Ntool setuptoolsz, The parameter `tool.setuptools.zZ` was long deprecated and has been removed from `pyproject.toml`.  ) r6r:r;TOOL_TABLE_REMOVALSrrjoinTOOL_TABLE_RENAMESr>_copy_command_options) r r!r# tool_tabler@rArB suggestionmsgs r2r+r+TsFB''++L"==J "((** + + u&u-- * * *!"5h"?@@J,1C%TYY z/J%K%KLL L%))(H==D(E****&$11111rDr?c&t|dg}tD]S\}}||vsJ||vsF||}|r9t||t |||<TdS)zJBe temporarily forgiving with ``dynamic`` fields not listed in ``dynamic``dynamicr@rAN)setr6_PREVIOUSLY_DEFINEDr:_MissingDynamicemit_RESET_PREVIOUSLY_DEFINED)r r?rQr@getterrAs r2r8r8js-##Ir2233G,2244LL v&&%7*:*:F4LLE L$$5$>>>'@'D'DU'K'K e$ LLrDkeystrcR|ddS)z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)rYs r2r;r;us 99;;  sC ( ((rDr@rAr c6t|t||}t|jd|d}|r ||dSt |j|s |t vrt|j||dSt|||dS)Nset_) _PREPROCESSr6_noopgetattrrhasattrSETUPTOOLS_PATCHESsetattr)r r@rAvalsetters r2r>r>zs //% ' 'e 4 4C T]N5NND 9 9F "s  & &"%3E*E*E uc*****eS!!!!!rDz text/markdownz text/x-rstz text/plain)z.mdz.rstz.txtfile str | Nonec@tj|\}}|sdS|tvr t|SddtD}d|d}td|d|)N, c3,K|]\}}|d|dVdS)z ()N.0kvs r2 z&_guess_content_type..s2FFtq!llalllFFFFFFrDz3only the following file extensions are recognized: r&zUndefined content type for )r'r(splitextr^_CONTENT_TYPESrJr: ValueError)rjr]extvalidrOs r2_guess_content_typer{s W  djjll + +FAs t nc"" IIFF~/C/C/E/EFFF F FE H H H HC @4@@3@@ A AArDrhStrPath | Nonecddlm}t|tr(|}|||}t |}nJ|dpd}|dp|||}|d}t|d||rt|d||r|j |dSdS) Nrexpandrjrptextz content-typelong_descriptionlong_description_content_type) setuptools.configr isinstancerZ read_filesr{r6r>_referenced_filesadd)r rhr0rrjrctypes r2_long_descriptionrs)(((((#s$  x00#D))wwv$"wwvC&"3"3D("C"CN#($/// BD95AAA ) ""4((((())rDcddlm}d|vrNt|d||dg||j|ddSt|d|ddS)Nrr~rjlicenser)rrr>rrr)r rhr0rs r2_licensers(((((( }}D)V%6%6F }h%O%OPPP ""3v;/////D)S[11111rD list[dict] _root_dirkindcg}g}|D]}d|vr||d"d|vr||dBt|d|d}|t||r$t||d||r)t||dd|dSdS)Nnameemail) display_name addr_specrm_email)appendrrZr>rJ)r rhrrr@ email_fieldpersonaddrs r2_peoplers EK**      vg / / / / F " " LL ( ( ( (v&/RRRD   s4yy ) ) ) ) 2D$ % 0 0111CDT///499[+A+ABBBBBCCrDc(t|d|dS)N project_urls)r>)r rhrs r2 _project_urlsrsnc*****rDcFddlm}t|d||dS)Nr) SpecifierSetpython_requires)packaging.specifiersrr>)r rhrrs r2_python_requiresrs7111111'c):):;;;;;rDlistcbt|dgrd}tj|||_dS)Ninstall_requireszA`install_requires` overwritten in `pyproject.toml` (dependencies))rdrrVrr rhrrOs r2 _dependenciesrs;t',,$Qs###DrDcbt|ddrd}tj|||_dS)Nextras_requirezH`extras_require` overwritten in `pyproject.toml` (optional-dependencies))rdrrVrrs r2_optional_dependenciesrs;t%t,,$Xs###DrDlist[Extension]cP|jpg}d|D}d|D}g||S)Nc3RK|]"}d|DV#dS)cBi|]\}}|dd|S)r\r])r_rqs r2 z*_ext_modules...s, : : :1QYYsC ! : : :rDNr:)rrxs r2ruz_ext_modules..s9 H Hq : : : : : H H H H H HrDc&g|]}tdi|S)rpr)rrkws r2 z _ext_modules..s" * * *r9??r?? * * *rD) ext_modules)r rhexistingargsnews r2 _ext_modulesrsE%2H H HC H H HD * *T * * *C X  rD_distc|SNrp)rrhs r2rcrcs JrDcb|}|d|di}ddd}t|D]6\}}t|}||vr|||||<7|r#d|D|d<dSdS)N entry-points entry_pointsconsole_scripts gui_scripts)scriptsrcVi|]&\}}||d|D'S)c"g|] \}}|d| S)z = rprqs r2rz2_unify_entry_points...s&:::DAqa<.sK# # # e# ::EKKMM:::# # # rD)poprr:r;)r?r5rrenamingrYrArBs r2r9r9sG;;~w{{>2/N/NOOL,]KKH7==??++@@ U&s++ x  /6{{3/?/?L(+ , # # +1133# # #   rD pyprojectc |di}|didi}t|}|j}|didiD]\}}t |}||t } ||i|D]S\} } t | } t|| f||| <| | vr!t d|d| dTdS)NrFrGcmdclass distutilszCommand option r&z is not defined) r6_valid_command_optionscommand_optionsr:r;rS setdefaultrZ_loggerwarning) rr r#rMr valid_optionscmd_optscmdr!rzrYrAs r2rLrLsQvr**J~~lB//33JCCH*844M#H }}VR0044["EEKKMM N N V!#&&!!#suu--C$$$ ,,.. N NJC%c**C"%h--!7HSM# % L# L L L L LMMM  N N NrDrdict[str, set[str]]c |ddlm}ddlm}dt |ji}|jd}d|D}d |D}t||D]M\}}| |t} | t t|d gz} | ||<N|S) Nrrrrglobalzdistutils.commands)rc34K|]}t|VdSr)_load_eprreps r2ruz)_valid_command_options..s(HHB8B<<HHHHHHrDc3K|]}||V dSrrprs r2ruz)_valid_command_options.. s';;2;B;;;;;;rD user_options) setuptools.distr _importlibr_normalise_cmd_optionsglobal_optionsrr r:r6rSrd) rrrrunloaded_entry_pointsloaded_entry_pointsrr cmd_classoptss r2rrs,,,,,,%%%%%%5l6QRRSM1H18LMMMHH2GHHH;;!4;;;L hnn.>.>??""Y  cee,,,WYPR-S-STTT! c rDrmetadata.EntryPointtuple[str, type] | Nonec |jdrdS |j|fS#t$r@}|jjd|j}t|d|Yd}~dSd}~wwxYw)Nzwheel.bdist_wheelz" while trying to load entry-point z: ) rA startswithrload Exception __class____name__rr)rexrOs r2rr)s x.//t## &SS"'SS3"'''ttttts9 B5A>>BrcFt|dS)Nz_=)r;strip)rs r2_normalise_cmd_option_keyr8s t $ $ * *4 0 00rDdescrset[str]cd|DS)Nc8h|]}t|dS)r)r)rr fancy_options r2 z)_normalise_cmd_options..=s% P P P< %l1o 6 6 P P PrDrp)rs r2rr<s P P4 P P PPrDdict[str, list]cndt|ddpi}fd|DS)N)rrrc$i|] \}}|v || Srprp)rrrsrtignores r2rz-_get_previous_entrypoints..Cs$ > > >TQavooAqooorD)rdr:)r rArs @r2_get_previous_entrypointsr@s@ /F D.$ / / 52E > > > >U[[]] > > >>rD list | NonecRt|ddpi}|dS)Nrrrdr6r rAs r2_get_previous_scriptsrFs+ D.$ / / 52E 99& ' ''rDcRt|ddpi}|dS)Nrrrrs r2_get_previous_gui_scriptsrKs* D.$ / / 52E 99] # ##rDcVttd|dS)a8 Similar to ``operator.attrgetter`` but returns None if ``attr`` is not found >>> from types import SimpleNamespace >>> obj = SimpleNamespace(a=42, b=SimpleNamespace(c=13)) >>> _attrgetter("a")(obj) 42 >>> _attrgetter("b.c")(obj) 13 >>> _attrgetter("d")(obj) is None True c$t||dSr)rd)accrs r2z_attrgetter..\s'#q$*?*?rDr&)rrsplit)attrs r2 _attrgetterr Ps$ 6??C Q QQrDcfd}|S)aL Return the first "truth-y" attribute or None >>> from types import SimpleNamespace >>> obj = SimpleNamespace(a=42, b=SimpleNamespace(c=13)) >>> _some_attrgetter("d", "a", "b.c")(obj) 42 >>> _some_attrgetter("d", "e", "b.c", "a")(obj) 13 >>> _some_attrgetter("d", "e", "f")(obj) is None True cVfdD}td|DdS)Nc3HK|]}t|VdSr)r )rriobjs r2ruz5_some_attrgetter.._acessor..ms355!.+a..%%555555rDc3K|]}||V dSrrp)rrr s r2ruz5_some_attrgetter.._acessor..ns"881!-Q----88rD)next)rvaluesr:s` r2_acessorz"_some_attrgetter.._acessorls<5555u55588888$???rDrp)r:rs` r2_some_attrgetterr_s(@@@@@ OrDauthor)r maintainer)readmerauthors maintainersurls dependenciesoptional_dependenciesrequires_pythonzdict[str, _Correspondence]r< script_filesrnamespace_packagesz Please migrate to implicit native namespaces instead. See https://packaging.python.org/en/latest/guides/packaging-namespace-packages/. > license_filer license_filesprovides_extrasrrz metadata.nameversionzmetadata.version descriptionzmetadata.descriptionrzmetadata.long_descriptionzrequires-pythonrzmetadata.python_requiresrzmetadata.licenserzmetadata.authorzmetadata.author_emailrzmetadata.maintainerzmetadata.maintainer_emailkeywordszmetadata.keywords classifierszmetadata.classifiersrzmetadata.project_urlsr gui-scriptsrroptional-dependenciesr) rrrr$r%rrrr&rr'rWc.eZdZdZdZed dZd S) rUz9`{field}` defined outside of `pyproject.toml` is ignored.a% The following seems to be defined outside of `pyproject.toml`: `{field} = {value!r}` According to the spec (see the link below), however, setuptools CANNOT consider this value unless `{field}` is listed as `dynamic`. https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-project-metadata-the-project-table To prevent this problem, you can list `{field}` under `dynamic` or alternatively remove the `[project]` table from your file and rely entirely on other means of configuration. r@rZrAr r$c:|j||S)NrR)_DETAILSformat)clsr@rAs r2detailsz_MissingDynamic.detailss|""e"<<rwr{rrrrrrrrrcr9rLrrrrrrrr rr<rKrIrfrbrTrWrUrprDr2rEs#""""" ######((((((%%%%%%%%""""""??????????????''''''!!!!!!((((((,++++++......,,,,,,++++++"!"%%%%%%!&sDcN':!;;;;;%~sE'4-