gh@zdZddlZddlZddlZddlZddlmZddlm Z m Z ddl m Z ddl mZGdd eZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)Command)DistutilsOptionErrorDistutilsFileError) convert_path)logceZdZdZgdZddgZddiZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZddZdZdZdZdZdS)build_pyz5"build" pure Python modules (copy to build directory)))z build-lib=dzdirectory to "build" (copy) to)compileczcompile .py to .pyc) no-compileNz!don't compile .py files [default])z optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0])forcefz2forcibly build everything (ignore file timestamps)r rrcvd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizerselfs /builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_py.pyinitialize_optionszbuild_py.initialize_options#s@     cH|ddd|jj|_|jj|_|jj|_i|_|jjr;|jjD]\}}t||j|<||_ t|j tsV t|j |_ d|j cxkrdksnJdS#ttf$rtdwxYwdS)Nbuild)rr)rrrrzoptimize must be 0, 1, or 2)set_undefined_options distributionpackagesrrritemsrget_data_files data_files isinstancerint ValueErrorAssertionErrorr)rnamepaths rfinalize_optionszbuild_py.finalize_options-sM "" /1C   )2 +6 -:   ( <"/;AACC < < d)5d);); &&--//$--- J J #DM 2 2 DM....Q......../ J J J*+HIII J  J Js /C>>!Dc|jr||jr(||||ddS)Nr)include_bytecode)r build_modulesr"build_packagesbuild_package_data byte_compile get_outputsrs rrunz build_py.runFsy, ? !    = &    ! ! !  # # % % % $**A*>>?????rc\g}|js|S|jD]}||}tjj|jg|dz}d|rt|dzfd|||D}| ||||f|S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples.rc$g|] }|d SN).0fileplens r z+build_py.get_data_files..vs!XXXdeeXXXr) r"get_package_dirosr+joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr=s @rr$zbuild_py.get_data_filesds} K} B BG**733G '7'--:L:L'LNID (7||a'YXXX1E1Egw1W1WXXXI KK'9i@ A A A A rc h|jdg|j|gz}g|D]t}tjtjtj|t|}fd|DuS)z6Return filenames for package's data files in 'src_dir'cZg|]'}|vtj|%|(Sr:)r@r+isfile)r;fnfiless rr>z,build_py.find_data_files..s0QQQ"E//bgnnR>P>P////r) rgetglobr@r+rAescaperextend)rrrGglobspatternfilelistrOs @rrDzbuild_py.find_data_fileszs!%%b"--0A0E0Egr0R0RR  Gy T[11<3H3HIIH LLQQQQhQQQ     rc>|jD]\}}}}|D]}tj||}|tj||tj|||ddS)z$Copy data files into build directoryF preserve_modeN)r%r@r+rAmkpathdirname copy_file)rrrGrHrIfilenametargets rr1zbuild_py.build_package_datas6:o   2GWi%  i:: BGOOF33444GLL(33V5   rc|d}|js|rtjj|SdSg}|r{ |jd|}|d|tjj|S#t $r"|d|d|d=YnwxYw|{|jd}||d||rtjj|SdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r6rKr)rBrr@r+rAinsertKeyErrorrP)rrr+tailpdirs rr?zbuild_py.get_package_dirs"}}S!!  w|T**rD /+CHHTNN;D KK4(((7<..  !!!KK48,,,R! "'++B//#KK4(((7<..2s B)B.-B.c\|dkrbtj|std|ztj|std|z|rAtj|d}tj|r|SdS)NrKz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.py)r@r+existsrisdirrArM)rrrinit_pys r check_packagezbuild_py.check_packages "  7>>+.. (;kI7==-- (-/:;  gll; >>Gw~~g&& trcttj|stjd||dSdS)Nz!file %s (for module %s) not foundFT)r@r+rMrwarning)rmodule module_files r check_modulezbuild_py.check_modules7w~~k**  K;[& Q Q Q54rcJ|||tjtjtj|d}g}tj|jj}|D]}tj|}||kr[tj tj |d}| |||f| d|z|S)Nz*.pyrz excluding %s) rirQr@r+rArRabspathr! script_namesplitextbasenamerE debug_print) rrr module_filesmodules setup_scriptrabs_frls rfind_package_moduleszbuild_py.find_package_moduless 7K000ydk+.F.F!O!OPP wt'8'DEE  @ @AGOOA&&E $$))"'*:*:1*=*=>>qA34444  ,!>????rci}g}|jD]}|d}d|dd}|d} ||\}}n'#t$r||}d}YnwxYw|s7|||} |df||<| r||d| ftj||dz} | || s|||| f|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r6rr`r7__init__.py) rrBrArbr?rirEr@r+rn) rr"rvrlr+r module_basercheckedrhrms r find_moduleszbuild_py.find_modulessN o @ @F<<$$DhhtAbDz**Gr(K )1'):&gg   "227;;   C,,WkBB%0!$4!CNNGZ#ABBB ',,{K%4GHHK$$V[99  NNG[+> ? ? ? ?s A!A98A9cg}|jr'|||jrJ|jD]B}||}|||}||C|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrSrr"r?ry)rrvrrms rfind_all_moduleszbuild_py.find_all_moduless  ? 0 NN4,,.. / / / = "= " ""227;; --g{CCq!!!!rc>d|DS)Ncg|] }|d S)r`r:)r;rls rr>z-build_py.get_source_files../sAAAvr AAAr)rrs rget_source_fileszbuild_py.get_source_files.s"AA)>)>)@)@AAAArc\|gt|z|dzgz}tjj|S)Nr|)listr@r+rA)rrHrrl outfile_paths rget_module_outfilezbuild_py.get_module_outfile1s/!{T']]2fun5EE w|\**rr7c|}g}|D]\}}}|d}||j||}|||r|jr4|t j|d|j dkr9|t j||j |d|j Dz }|S)Nr6rK) optimizationrcbg|],\}}}}|D]"}tj||#-Sr:)r@r+rA)r;rrGrHrIr]s rr>z(build_py.get_outputs..HsW   6)Y%   GLLH - -    r) rrBrrrEr importlibutilcache_from_sourcerr%)rr.rvoutputsrrlrmr]s rr3zbuild_py.get_outputs5s#'')),3   (GV[mmC((G..t~wOOH NN8 $ $ $ <NN!88PR8SS=1$$NN!88$4=9   :>/     rc~t|tr|d}n+t|ttfst d||j||}tj |}| || ||dS)Nr6z:'package' must be a string (dot-separated), list, or tuplerrX) r&strrBrtuple TypeErrorrrr@r+r[rZr\)rrlrmroutfiledirs r build_modulezbuild_py.build_modulePs gs # # mmC((GGGdE]33 L ))$.'6JJgoog&& C~~k7!~DDDrcn|}|D]\}}}||||dSr9)rr)rrvrrlrms rr/zbuild_py.build_modules`sP##%%,3 < < (GV[   fk7 ; ; ; ;  < > > F'''''' ":  bf_F <  LFDL     =1   Lj         rN)r7)__name__ __module__ __qualname__ description user_optionsboolean_options negative_optrr,r4r$rDr1r?rirnryrrrrr3rr/r0r2r:rrr r ssKK   L!'*O ),LJJJ2@@@<,   %%%N4   222h BBB+++6EEE <<<@@@(rr )__doc__r@importlib.utilrrrQcorererrorsrrrrdistutils._logrr r:rrrs00  ========FFFFFwFFFFFr