a XC?h� �@sHddlZddlZddlZddlmZddlmZdZGdd�de�Z dS)�N)�Command)�DistutilsOptionErrorz.pyc@sxeZdZdZgd�Zgd�ZddiZdd�Zdd �Zd d �Z d d �Z dd�Z dd�Z dd�Z dd�Zdd�Zdd�ZdS)� install_libz7install all Python modules (extensions and pure Python)))z install-dir=�dzdirectory to install to)z build-dir=�bz'build directory (where to install from))�force�fz-force installation (overwrite existing files))�compile�czcompile .py to .pyc [default])� no-compileNzdon't compile .py files)z optimize=�Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0])� skip-buildNzskip the build steps)rr r r r cCs(d|_d|_d|_d|_d|_d|_dS)Nr)� install_dir� build_dirrr �optimize� skip_build��self�r�B/opt/alt/python39/lib64/python3.9/distutils/command/install_lib.py�initialize_options3s zinstall_lib.initialize_optionsc Cs�|�ddddddd�|jdur&d|_|jdur6d |_t|jt�s�zt|j�|_|jd vr^t�Wnttfy~td ��Yn0dS) N�install)� build_libr)rr)rr)r r )rr)rrTF)r��zoptimize must be 0, 1, or 2)Zset_undefined_optionsr r� isinstance�int�AssertionError� ValueErrorrrrrr�finalize_options<s&�     zinstall_lib.finalize_optionscCs0|��|��}|dur,|j��r,|�|�dS�N)�buildr� distribution�has_pure_modules� byte_compile�rZoutfilesrrr�runVszinstall_lib.runcCs2|js.|j��r|�d�|j��r.|�d�dS�N�build_py� build_ext)rr"r#Z run_command�has_ext_modulesrrrrr!fs    zinstall_lib.buildcCs8tj�|j�r |�|j|j�}n|�d|j�dS|S)Nz3'%s' does not exist -- no Python modules to install)�os�path�isdirrZ copy_treer�warnr%rrrrms�zinstall_lib.installcCsrtjr|�d�dSddlm}|�d�j}|jrH||d|j||j d�|j dkrn|||j |j||j |j d�dS)Nz%byte-compiling is disabled, skipping.r)r$r)rr�prefix�dry_run)rrr/�verboser0) �sys�dont_write_bytecoder.Zdistutils.utilr$�get_finalized_command�rootr rr0rr1)r�filesr$Z install_rootrrrr$vs   � �zinstall_lib.byte_compilec Csd|sgS|�|�}|��}t||�}t|�ttj�}g}|D] } |�tj�|| |d���q>|Sr ) r4� get_outputs�getattr�lenr+�sep�appendr,�join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesr� prefix_lenZoutputs�filerrr�_mutate_outputs�s  zinstall_lib._mutate_outputscCsrg}|D]d}tj�tj�|��d}|tkr.q|jrJ|�tjj |dd��|j dkr|�tjj ||j d��q|S)Nr�)� optimizationr) r+r,�splitext�normcase�PYTHON_SOURCE_EXTENSIONr r;� importlib�util�cache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr�_bytecode_filenames�s �  � zinstall_lib._bytecode_filenamescCsR|�|j��dd|j�}|jr*|�|�}ng}|�|j��dd|j�}|||S)Nr(rr))r?r"r#rr rHr*)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr7�s ��  ��zinstall_lib.get_outputscCsLg}|j��r&|�d�}|�|���|j��rH|�d�}|�|���|Sr')r"r#r4�extendr7r*)rZinputsr(r)rrr� get_inputs�s    zinstall_lib.get_inputsN)�__name__� __module__� __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrr&r!rr$r?rHr7rJrrrrrs   r) r+�importlib.utilrEr2Zdistutils.corerZdistutils.errorsrrDrrrrr�s