HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/distutils/command/__pycache__/build_py.cpython-310.pyc
o

�N�g&C�@szdZddlZddlZddlZddlZddlmZddlTddl	m
Z
mZddlm
Z
Gdd�de�ZGd	d
�d
ee�ZdS)zHdistutils.command.build_py

Implements the Distutils 'build_py' command.�N)�Command)�*)�convert_path�	Mixin2to3)�logc@s�eZdZdZgd�ZddgZddiZdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd.d#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-S)/�build_pyz5"build" pure Python modules (copy to build directory)))z
build-lib=�dzdirectory to "build" (copy) to)�compile�czcompile .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])�force�fz2forcibly build everything (ignore file timestamps)r	r
rcCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr)�	build_lib�
py_modules�package�package_data�package_dirr	�optimizer
��self�r�@/opt/saltstack/salt/lib/python3.10/distutils/command/build_py.py�initialize_options s
zbuild_py.initialize_optionsc	Cs�|�ddd�|jj|_|jj|_|jj|_i|_|jjr/|jj��D]\}}t|�|j|<q#|��|_	t
|jt�s`zt|j�|_d|jkrMdksPJ�J�WdSt
tfy_td��wdS)N�build)rr)r
r
r�zoptimize must be 0, 1, or 2)Zset_undefined_options�distribution�packagesrrr�itemsr�get_data_files�
data_files�
isinstancer�int�
ValueError�AssertionErrorZDistutilsOptionError)r�name�pathrrr�finalize_options*s(�



$��zbuild_py.finalize_optionscCs:|jr|��|jr|��|��|�|jdd��dS�Nr)�include_bytecode)r�
build_modulesr�build_packages�build_package_data�byte_compile�get_outputsrrrr�runCszbuild_py.runcs�g}|js|S|jD]4}|�|�}tjj|jg|�d��}d�|r(t|�d��fdd�|�||�D�}|�	||||f�q
|S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples�.r�csg|]}|�d��qS�Nr)�.0�file�Zplenrr�
<listcomp>ss�z+build_py.get_data_files.<locals>.<listcomp>)
r�get_package_dir�osr&�joinr�split�len�find_data_files�append)r�datar�src_dir�	build_dir�	filenamesrr5rras



�zbuild_py.get_data_filescsd|j�dg�|j�|g�}g�|D]}t�tj�t�|�t|���}���fdd�|D��q�S)z6Return filenames for package's data files in 'src_dir'�cs$g|]}|�vrtj�|�r|�qSr)r8r&�isfile)r3�fn��filesrrr6�s

�z,build_py.find_data_files.<locals>.<listcomp>)	r�get�globr8r&r9�escaper�extend)rrr?Zglobs�patternZfilelistrrErr<ys�zbuild_py.find_data_filescCs`d}|jD](\}}}}|D]}tj�||�}|�tj�|��|jtj�||�|dd�q
qdS)z$Copy data files into build directoryNF�Z
preserve_mode)r r8r&r9�mkpath�dirname�	copy_file)rZlastdirrr?r@rA�filename�targetrrrr,�s���zbuild_py.build_package_datacCs�|�d�}|js|rtjj|�SdSg}|rCz
|jd�|�}Wnty4|�d|d�|d=Yn
w|�d|�tjj|�S|s|j�d�}|durS|�d|�|r[tjj|�SdS)z�Return 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).r0rBr���N)r:rr8r&r9�KeyError�insertrG)rrr&�tailZpdirrrrr7�s,

��zbuild_py.get_package_dircCsj|dkrtj�|�std|��tj�|�std|��|r3tj�|d�}tj�|�r-|St�d|�dS)NrBz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz__init__.pyz8package init file '%s' not found (or not a regular file))	r8r&�existsZDistutilsFileError�isdirr9rCr�warn)rrr�init_pyrrr�
check_package�s&����zbuild_py.check_packagecCs"tj�|�st�d||�dSdS)Nz!file %s (for module %s) not foundFT)r8r&rCrrX)r�module�module_filerrr�check_module�szbuild_py.check_modulec	Cs�|�||�t�tj�t�|�d��}g}tj�|jj�}|D](}tj�|�}||kr@tj�	tj�
|��d}|�|||f�q|�d|�q|S)Nz*.pyrzexcluding %s)
rZrHr8r&r9rI�abspathr�script_name�splitext�basenamer=Zdebug_print)	rrrZmodule_files�modulesZsetup_scriptrZabs_fr[rrr�find_package_modules�szbuild_py.find_package_modulesc	Cs�i}g}|jD]]}|�d�}d�|dd��}|d}z||\}}Wnty3|�|�}d}Ynw|sL|�||�}	|df||<|	rL|�|d|	f�tj�||d�}
|�	||
�s\q|�|||
f�q|S)a�Finds 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.
        r0rrRr1�__init__�.py)
rr:r9rSr7rZr=r8r&r])rrrbr[r&rZmodule_baser�checkedrYr\rrr�find_modules�s,


�zbuild_py.find_modulescCsNg}|jr|�|���|jr%|jD]}|�|�}|�||�}|�|�q|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.)rrJrgrr7rc)rrbrr�mrrr�find_all_moduless

zbuild_py.find_all_modulescCsdd�|��D�S)NcSsg|]}|d�qS)rRr)r3r[rrrr6-sz-build_py.get_source_files.<locals>.<listcomp>)rirrrr�get_source_files,szbuild_py.get_source_filescCs$|gt|�|dg}tjj|�S)Nre)�listr8r&r9)rr@rr[Zoutfile_pathrrr�get_module_outfile/szbuild_py.get_module_outfiler1cCs�|��}g}|D]8\}}}|�d�}|�|j||�}|�|�|r@|jr/|�tjj|dd��|j	dkr@|�tjj||j	d��q|dd�|j
D�7}|S)Nr0rB)�optimizationrcSs,g|]\}}}}|D]	}tj�||��q
qSr)r8r&r9)r3rr?r@rArPrrrr6Bs
���z(build_py.get_outputs.<locals>.<listcomp>)rir:rlrr=r	�	importlib�util�cache_from_sourcerr )rr)rbZoutputsrr[r\rPrrrr.3s(


�

���zbuild_py.get_outputscCsbt|t�r|�d�}nt|ttf�std��|�|j||�}tj	�
|�}|�|�|j||dd�S)Nr0z:'package' must be a string (dot-separated), list, or tuplerrL)
r!�strr:rk�tuple�	TypeErrorrlrr8r&rNrMrO)rr[r\rZoutfile�dirrrr�build_moduleJs
�
zbuild_py.build_modulecCs*|��}|D]\}}}|�|||�qdSr2)rgru)rrbrr[r\rrrr*Ys�zbuild_py.build_modulescCsP|jD]"}|�|�}|�||�}|D]\}}}||ksJ�|�|||�qqdSr2)rr7rcru)rrrrbZpackage_r[r\rrrr+bs


��zbuild_py.build_packagescCs�tjr
|�d�dSddlm}|j}|dtjkr|tj}|jr-||d|j	||j
d�|jdkr@|||j|j	||j
d�dSdS)Nz%byte-compiling is disabled, skipping.r)r-rR)rr
�prefix�dry_run)�sys�dont_write_bytecoderX�distutils.utilr-rr8�sepr	r
rwr)rrFr-rvrrrr-vs 


�


��zbuild_py.byte_compileN)r1)�__name__�
__module__�__qualname__�descriptionZuser_optionsZboolean_optionsZnegative_optrr'r/rr<r,r7rZr]rcrgrirjrlr.rur*r+r-rrrrrs0



'4
	rc@seZdZdd�Zdd�ZdS)�
build_py_2to3cCsLg|_|jr
|��|jr|��|��|�|j�|�|jdd��dSr()	�
updated_filesrr*rr+r,Zrun_2to3r-r.rrrrr/�szbuild_py_2to3.runcCs,t�||||�}|dr|j�|d�|S)Nr1r)rrur�r=)rr[r\r�resrrrru�szbuild_py_2to3.build_moduleN)r|r}r~r/rurrrrr��sr�)�__doc__r8�importlib.utilrnrxrHZdistutils.corerZdistutils.errorsrzrr�	distutilsrrr�rrrr�<module>s}