:QgC dZddlZddlZddlmZddlmZddlmZm Z m Z m Z m Z m Z mZddlmZmZddlmZd d lmZd d lmZmZd d lmZerdd lmZeeejfZ ej!e"Z#de de$fdZ%de$de de&fdZ' d$ddde ddfdZ( d%de de dfdZ) d&de$de e de&de dde$f dZ*GddZ+dZ,ede&fdZ-Gd d!ej.Z/Gd"d#eZ0dS)'ac Load setuptools configuration from ``pyproject.toml`` files. **PRIVATE MODULE**: API reserved for setuptools internal usage only. To read project metadata, consider using ``build.util.project_wheel_metadata`` (https://pypi.org/project/build/). For simple scenarios, you can also try parsing the file directly with the help of ``tomllib`` or ``tomli``. N)contextmanager)partial) TYPE_CHECKINGCallableDictMappingOptionalSetUnion) FileErrorInvalidConfigError)SetuptoolsWarning)expand)_PREVIOUSLY_DEFINED_MissingDynamic)apply Distributionfilepathreturncddlm}t|d5}||cdddS#1swxYwYdS)Nr)tomlirb)setuptools.externropenload)rrfiles /builddir/build/BUILD/imunify360-venv-2.5.0/opt/imunify360/venv/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py load_filer!s'''''' h   zz$                  s 9==configcddlm}|jd}t |dr| ||S#|j$r}d|j}|j ddkr9t |t |j d|j d }t|d |dd}~wwxYw) Nr)_validate_pyprojectztrove-classifier_disable_downloadzconfiguration error: `projectzinvalid pyproject.toml config: . )r$FORMAT_FUNCTIONSgethasattrr%validateValidationErrorsummarynamestrip_loggerdebugdetails ValueError)r"r validatortrove_classifierexr0errors r r.r.%s 222222 1556HII!455-**,,, :!!&)))  $:::6"*66 7==   * * MM' " " " MM"* % % %<"'<<<E..W..//T9:sA C+%BC&&C+FdistrcHt|d||}t|||S)zeApply the configuration from a ``pyproject.toml`` file into an existing distribution object. T)read_configuration_apply)r;rignore_option_errorsr"s r apply_configurationr@:s* $0Dd K KF $ ) ))Tctj|}tj|st d|dt |pi}|di}|di}|di}|r|s|siSd|vrtd|r-t|d d | d |j n| d d ||d<||d<t|5|d|id }t||d d d n #1swxYwY|r1tj|} t|| ||S|S)aRead given configuration file and returns options from it as a dict. :param str|unicode filepath: Path to configuration file in the ``pyproject.toml`` format. :param bool expand: Whether to expand directives and other computed values (i.e. post-process the given configuration) :param bool ignore_option_errors: Whether to silently ignore options, values of which could not be resolved (e.g. due to exceptions in directives such as file:, attr:, etc.). If False exceptions are propagated as expected. :param Distribution|None: Distribution object to which the configuration refers. If not given a dummy object will be created and discarded after the configuration is read. This is used for auto-discovery of packages and in the case a dynamic configuration (e.g. ``attr`` or ``cmdclass``) is expanded. When ``expand=False`` this object is simply ignored. :rtype: dict zConfiguration file z does not exist.r'tool setuptools distutilsz[tool.distutils])subjectinclude_package_dataNzinclude-package-dataT)r'rC)ospathabspathisfiler r!r,_ExperimentalConfigurationemitgetattr setdefaultrG_ignore_errorsr.dirnameexpand_configuration) rrr?r;asdict project_table tool_tablesetuptools_tablesubsetroot_dirs r r=r=Fs6wx((H 7>>( # #LJhJJJKKK x &BFJJy"--MFB''J!~~lB77 -+; j  "''0B'CCC  B4d;;G##$:D@STT  8%+7K  # # % % %  ! !+ . . .  $ $T; 7 7 7  8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 %%d&<==={s/ACC Cc|jd}|t|ttfrdS|d}t|t rp|j|d<|jdi|d<t|j 5tj di||jd<ddddS#1swxYwYdSdS)NpackagesfindrX package-dirfill_package_dir) r`r, isinstancelisttupledictrXrOrPr?rt find_packages)rerrs r ryz _ConfigExpander._expand_packagess8&**:66  z(T5MBB  F||F## dD ! ! P#}D '+':'E'EmUW'X'XD# $ 9:: P P292G2O2O$2O2O#J/ P P P P P P P P P P P P P P P P P P P Ps!CC C c~ttj|j}||jd|dS)N)rXz data-files)rrtcanonic_data_filesrXrqr`)re data_filess r r|z"_ConfigExpander._expand_data_filess:W7$-PPP  D/zJJJJJrAr{c|j}ttj||}||jd|dS)N)r{rXcmdclass)rXrrtrrqr`)rer{rXrs r r}z _ConfigExpander._expand_cmdclasssA=7+xXXX D/XFFFFFrAc dfdjD}|pid|D}j |dS)N)versionreadme entry-pointsscripts gui-scripts classifiers dependenciesoptional-dependenciescHi|]}|v||Sr)_obtain).0rmr;r{respecials r z7_ConfigExpander._expand_all_dynamic..s@   G## 4<<e[99###rA)rrrroptional_dependenciesci|] \}}||| Srpr)rkvs r rz7_ConfigExpander._expand_all_dynamic..sNNNDAq 1a rA) r]r_obtain_entry_points_obtain_version_obtain_readme_obtain_classifiers_obtain_dependencies_obtain_optional_dependenciesitemsr_)rer;r{obtained_dynamicupdatesrs``` @r r~z#_ConfigExpander._expand_all_dynamics               % %dK 8 8 >B(({;;&&t,,006622488"&"D"DT"J"J    ON$4$:$:$<$<NNN (((((rAcpt||}||jsd|d}t|dSdS)Nz#No configuration found for dynamic z. Some dynamic fields need to be specified via `tool.setuptools.dynamic` others must be specified via the equivalent attribute in `setup.py`.)rr?r)rer;rmpreviousmsgs r _ensure_previously_setz&_ConfigExpander._ensure_previously_sets_&u-d33  D$= YeYYY  %S)) )    rA specifiercddlm}t|j5|j}d|vrP|j||dtj|d|cdddSd|vr(tj |d||cdddStd|d|#1swxYwYdS)Nr)always_iterablerattrz invalid `z`: ) setuptools.extern.more_itertoolsrrPr?rXrdrrt read_files read_attrr6)rer directiver{rrXs r _expand_directivez!_ConfigExpander._expand_directives] EDDDDD D5 6 6 F F}H""&--ooi>O.P.PQQQ))F*;XFF  F F F F F F F F ""(6):KRR  F F F F F F F FDDDyDDEE E F F F F F F F FtsAB87B8#B88B<?B<c||jvr%|d||j||S|||dS)Nztool.setuptools.dynamic.)rarr)rer;rmr{s r rz_ConfigExpander._obtains^ D$ $ $))2522 '  ##D%000trAc|d|jvr2d|jvr)tj||d|SdS)Nr)r]rartrr)rer;r{s r rz_ConfigExpander._obtain_version'sA  $ $d6F)F)F?4<<i#M#MNN NtrAcd|jvrdS|j}d|vr4||di|ddddS||ddS)Nr content-typez text/x-rst)textr)r]rarr,r)rer;ras r rz_ConfigExpander._obtain_readme-s~ 4< ' '4& { " " T8R88 +H 5 9 9., W W  ##D(333trAc d}tfd|DsdS|d|}|dStj|didtdtffd }|dd|d d S) N)rrrc3*K|] }|jvVdSrp)r])rrmres r z7_ConfigExpander._obtain_entry_points..?s*==U5DL(======rArrmgroupc|vrG|}|jvr"ttj||||<dSdSrp)popr]rrr5)rmrvalueexpandedgroupsres r _set_scriptsz:_ConfigExpander._obtain_entry_points.._set_scriptsIsY 5)) ,,,_-DUE-R-RSSS"' rArconsole_scriptsr gui_scripts)anyrrt entry_pointsstr)rer;r{fieldsrrrrs` @@r rz$_ConfigExpander._obtain_entry_points;s<====f===== 4||D.+>> <4%d++"F+ ( (C ( ( ( ( ( ( ( (  Y 1222 ]M222rAcrd|jvr-||di}|r|SdS)Nr)r]r splitlinesrer;rs r rz#_ConfigExpander._obtain_classifiersUsC DL ( (LL}b99E *'')))trAchd|jvr(||di}|rt|SdS)Nr)r]r_parse_requirements_listrs r rz$_ConfigExpander._obtain_dependencies\s? T\ ) )LL~r::E 7/666trAcdjvrdSdjvrDjd}t|tsJfd|DS|ddS)Nrc fi|]-\}}|td||i.S)z.tool.setuptools.dynamic.optional-dependencies.)rr)rrrres r rzA_ConfigExpander._obtain_optional_dependencies..is`   %E9/**PPP!   rA)r]rarrrr)rer;optional_dependencies_maps` r rz-_ConfigExpander._obtain_optional_dependenciescs "$, 6 64 "d&6 6 6(,(89P(Q %7>> > >>    )B(G(G(I(I     ##D*ABBBtrANFN)rr)rr)r;r)__name__ __module__ __qualname__rr _Pathboolrfrkrrrqrwrryr|rr}r~rrrrrrrrrrrrAr rZrZs%)%*)- 1115/1# 1 ~& 1111"1111 88S8h8888 ::::" P P PKKKGGCH,=GGGG ))WSRUXEV))))<*>*#****  6=c3h6G    N3WSRUXEVNcAR > htCH~6N    "18c1B $sDy/ "4rArZc>d|DS)Ncg|]?}||d=|@S)#)r2 startswith)rlines r z,_parse_requirements_list..xsV     ::<< !% 7 7 < <     rA)r)rs r rrws/  $$&&   rAc#K|sdVdS dVdS#t$r5}td|jjd|Yd}~dSd}~wwxYw)Nzignored error: z - ) Exceptionr3r4 __class__r)r?r9s r rPrPs  H  HHH F (=FF"FFGGGGGGGGGHs A*A  Ac@eZdZdddedeffd ZfdZfdZxZS)rz distributionrr_r`cft|||_||_dSrp)superrf _project_cfg_setuptools_cfg)rerr_r`rs r rfz"_EnsurePackagesDiscovered.__init__s3 &&&'-rAc|j|j}}|di}||jpi||_|j|jj$|j d|j_|j | d|_ |j | d|_ tS)zWhen entering the context, the values of ``packages``, ``py_modules`` and ``package_dir`` that are missing in ``dist`` are copied from ``setuptools_cfg``. rNr1 py-modulesr)rbrrOrr{ set_defaults_ignore_ext_modulesmetadatar1rr, py_modulesrr __enter__)rer;cfgr{rs r rz#_EnsurePackagesDiscovered.__enter__sJ 4c&)nn]B&G&G 4+1r222& --/// =  %!%!2!6!6v!>!>DM  ? "!ggl33DO = GGJ//DMww  """rAc|jd|jj|jd|jjt |||S)zWhen exiting the context, if values of ``packages``, ``py_modules`` and ``package_dir`` are missing in ``setuptools_cfg``, copy from ``dist``. rr)rrOrbrrr__exit__)reexc_type exc_value tracebackrs r rz"_EnsurePackagesDiscovered.__exit__s] '' DJ4GHHH '' dj6KLLLww)Y???rA)rrrrrfrr __classcell__)rs@r rzrzs.*.9=.OS......#####,@@@@@@@@@rArzceZdZdZdS)rLz``{subject}` in `pyproject.toml` is still *experimental* and likely to change in future releases.N)rrr_SUMMARYrrAr rLrLs 3 HHrArL)F)TFNr)1__doc__loggingrH contextlibr functoolsrtypingrrrrr r r errorsr rwarningsrr*rrt_apply_pyprojecttomlrrrr>rirrPathLiker getLoggerrr3rr!rr.r@r=rRrZrrPEnsurePackagesDiscoveredrzrLrrAr rs   %%%%%%OOOOOOOOOOOOOOOOOO22222222((((((FFFFFFFF111111-,,,,,, c2; ' H % %  $    :T:U:t::::0 * *  * * * * * * %) ??? > " ????H!%!&%) RR RuoRR > " R  RRRR.UUUUUUUUpHHHHH%@%@%@%@%@ @%@%@%@P!2rA