CasperSecurity

Current Path : /lib/python3.10/distutils/command/__pycache__/
Upload File :
Current File : //lib/python3.10/distutils/command/__pycache__/build_py.cpython-310.pyc

o

��bc&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�1/usr/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)�set_undefined_options�distribution�packagesrrr�itemsr�get_data_files�
data_files�
isinstancer�int�
ValueError�AssertionError�DistutilsOptionError)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��plenrr�
<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�	filenamesrr7rr as



�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)r;r(�isfile)r5�fn��filesrrr9�s

�z,build_py.find_data_files.<locals>.<listcomp>)	r�get�globr;r(r<�escaper�extend)rrrB�globs�pattern�filelistrrHrr?ys�zbuild_py.find_data_filescCs`d}|jD](\}}}}|D]}tj�||�}|�tj�|��|jtj�||�|dd�q
qdS)z$Copy data files into build directoryNF��
preserve_mode)r!r;r(r<�mkpath�dirname�	copy_file)r�lastdirrrBrCrD�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).r2rEr���N)r=rr;r(r<�KeyError�insertrJ)rrr(�tail�pdirrrrr:�s,

��zbuild_py.get_package_dircCsj|dkrtj�|�std|��tj�|�std|��|r3tj�|d�}tj�|�r-|St�d|�dS)NrEz%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))	r;r(�exists�DistutilsFileError�isdirr<rFr�warn)rrr�init_pyrrr�
check_package�s&����zbuild_py.check_packagecCs"tj�|�st�d||�dSdS)Nz!file %s (for module %s) not foundFT)r;r(rFrra)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)
rcrKr;r(r<rL�abspathr�script_name�splitext�basenamer@�debug_print)	rrr�module_files�modules�setup_scriptr�abs_frdrrr�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.
        r2rrYr3�__init__�.py)
rr=r<rZr:rcr@r;r(rf)rrrmrdr(r�module_baser�checkedrbrerrr�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.)rrMrurr:rp)rrmrr�mrrr�find_all_moduless

zbuild_py.find_all_modulescCsdd�|��D�S)NcSsg|]}|d�qS)rYr)r5rdrrrr9-sz-build_py.get_source_files.<locals>.<listcomp>)rwrrrr�get_source_files,szbuild_py.get_source_filescCs$|gt|�|dg}tjj|�S)Nrr)�listr;r(r<)rrCrrd�outfile_pathrrr�get_module_outfile/szbuild_py.get_module_outfiler3cCs�|��}g}|D]8\}}}|�d�}|�|j||�}|�|�|r@|jr/|�tjj|dd��|j	dkr@|�tjj||j	d��q|dd�|j
D�7}|S)Nr2rE)�optimizationrcSs,g|]\}}}}|D]	}tj�||��q
qSr)r;r(r<)r5rrBrCrDrWrrrr9Bs
���z(build_py.get_outputs.<locals>.<listcomp>)rwr=r{rr@r	�	importlib�util�cache_from_sourcerr!)rr+rm�outputsrrdrerWrrrr03s(


�

���zbuild_py.get_outputscCsbt|t�r|�d�}nt|ttf�std��|�|j||�}tj	�
|�}|�|�|j||dd�S)Nr2z:'package' must be a string (dot-separated), list, or tuplerrQ)
r"�strr=ry�tuple�	TypeErrorr{rr;r(rTrSrU)rrdrer�outfile�dirrrr�build_moduleJs
�
zbuild_py.build_modulecCs*|��}|D]\}}}|�|||�qdSr4)rur�)rrmrrdrerrrr,Ys�zbuild_py.build_modulescCsP|jD]"}|�|�}|�||�}|D]\}}}||ksJ�|�|||�qqdSr4)rr:rpr�)rrrrm�package_rdrerrrr-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/rY)rr
�prefix�dry_run)�sys�dont_write_bytecodera�distutils.utilr/rr;�sepr	r
r�r)rrIr/r�rrrr/vs 


�


��zbuild_py.byte_compileN)r3)�__name__�
__module__�__qualname__�description�user_options�boolean_options�negative_optrr)r1r r?r.r:rcrfrprurwrxr{r0r�r,r-r/rrrrrs0



'4
	rc@seZdZdd�Zdd�ZdS)�
build_py_2to3cCsLg|_|jr
|��|jr|��|��|�|j�|�|jdd��dSr*)	�
updated_filesrr,rr-r.�run_2to3r/r0rrrrr1�szbuild_py_2to3.runcCs,t�||||�}|dr|j�|d�|S)Nr3r)rr�r�r@)rrdrer�resrrrr��szbuild_py_2to3.build_moduleN)r�r�r�r1r�rrrrr��sr�)�__doc__r;�importlib.utilr}r�rK�distutils.corer�distutils.errorsr�rr�	distutilsrrr�rrrr�<module>s}
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY