
    ;e                      X    	 d dl Z d dlZd dlZd dlmZ d dlmZ dZ G d de          Z	dS )    N)Command)DistutilsOptionErrorz.pyc                   f    e Zd ZdZg dZg dZddiZd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd ZdS )install_libz7install all Python modules (extensions and pure Python)))zinstall-dir=dzdirectory to install to)z
build-dir=bz'build directory (where to install from))forcefz-force installation (overwrite existing files))compileczcompile .py to .pyc [default])
no-compileNzdon'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-buildNzskip the build steps)r	   r   r   r   r   c                 Z    d | _         d | _        d| _        d | _        d | _        d | _        d S )Nr   )install_dir	build_dirr	   r   optimize
skip_buildselfs    4/usr/lib/python3.11/distutils/command/install_lib.pyinitialize_optionszinstall_lib.initialize_options3   s1    
    c           	      H   |                      ddddddd           | j        d| _        | j        d	| _        t          | j        t                    sP	 t	          | j                  | _        | j        d
vrt
          d S # t          t
          f$ r t          d          w xY wd S )Ninstall)	build_libr   )r   r   )r	   r	   )r   r   )r   r   )r   r   TF)r         zoptimize must be 0, 1, or 2)set_undefined_optionsr   r   
isinstanceintAssertionError
ValueErrorr   r   s    r   finalize_optionszinstall_lib.finalize_options<   s     	""9#=#A#5#9#;#?	$ 	$ 	$ <DL= !DM$--- 	JJ #DM 2 2=	11(( 21/ J J J*+HIIIJ	J 	Js   )A> >!Bc                     |                                   |                                 }|0| j                                        r|                     |           d S d S d S N)buildr   distributionhas_pure_modulesbyte_compiler   outfiless     r   runzinstall_lib.runV   sb    


 <<>> D$5$F$F$H$Hh'''''  r   c                     | j         s^| j                                        r|                     d           | j                                        r|                     d           d S d S d S Nbuild_py	build_ext)r   r(   r)   run_commandhas_ext_modulesr   s    r   r'   zinstall_lib.buildf   s|     	. 1133 -  ,,, 0022 .  -----		. 	.. .r   c                     t           j                            | j                  r!|                     | j        | j                  }n|                     d| j        z             d S |S )Nz3'%s' does not exist -- no Python modules to install)ospathisdirr   	copy_treer   warnr+   s     r   r   zinstall_lib.installm   sa    7==(( 	~~dnd6FGGHHIIKn% & & &Fr   c                 2   t           j        r|                     d           d S ddlm} |                     d          j        }| j        r ||d| j        || j	                   | j
        dk    r' ||| j
        | j        || j        | j	                   d S d S )Nz%byte-compiling is disabled, skipping.r   )r*   r   )r   r	   prefixdry_run)r   r	   r;   verboser<   )sysdont_write_bytecoder9   distutils.utilr*   get_finalized_commandrootr   r	   r<   r   r=   )r   filesr*   install_roots       r   r*   zinstall_lib.byte_compilev   s    " 	II=>>>F////// 11)<<A< 	/L#z,!%/ / / / =1L#z,!%t|E E E E E E r   c           	      V   |sg S |                      |          }|                                }t          ||          }t          |          t          t          j                  z   }g }|D ]=}	|                    t          j                            ||	|d                               >|S r&   )	rA   get_outputsgetattrlenr5   sepappendr6   join)
r   has_any	build_cmd
cmd_option
output_dirbuild_filesr   
prefix_lenoutputsfiles
             r   _mutate_outputszinstall_lib._mutate_outputs   s     	I..y99	++--Iz22	^^c"&kk1
 	H 	HDNN27<<
D4EFFGGGGr   c                    g }|D ]}t           j                            t           j                            |                    d         }|t          k    rP| j        r4|                    t          j        	                    |d                     | j
        dk    r9|                    t          j        	                    || j
                             |S )Nr    )optimizationr   )r5   r6   splitextnormcasePYTHON_SOURCE_EXTENSIONr   rJ   	importlibutilcache_from_sourcer   )r   py_filenamesbytecode_filespy_fileexts        r   _bytecode_filenameszinstall_lib._bytecode_filenames   s    # 	: 	:G '""27#3#3G#<#<==a@C---| /%%in&F&F" 'G '. '. / / /}q  %%in&F&F$- 'G '9 '9 : : : r   c                 "   	 |                      | j                                        dd| j                  }| j        r|                     |          }ng }|                      | j                                        dd| j                  }||z   |z   S )Nr0   r   r1   )rT   r(   r)   r   r   rb   r3   )r   pure_outputsbytecode_outputsext_outputss       r   rF   zinstall_lib.get_outputs   s    	
   !2!C!C!E!E!+[!%!13 3 	 < 	"#77EE!   !2!B!B!D!D!,k!%!13 3 	
 ..<<r   c                 `   	 g }| j                                         r<|                     d          }|                    |                                           | j                                         r<|                     d          }|                    |                                           |S r/   )r(   r)   rA   extendrF   r3   )r   inputsr0   r1   s       r   
get_inputszinstall_lib.get_inputs   s    	
 --// 	211*==HMM(..00111,,.. 	322;??IMM)//11222r   N)__name__
__module____qualname__descriptionuser_optionsboolean_optionsnegative_optr   r$   r-   r'   r   r*   rT   rb   rF   rj    r   r   r   r      s        KK"

 

 

L 988O 9-L  J J J4( ( ( . . .  E E E2    ,= = =*    r   r   )
r5   importlib.utilr[   r>   distutils.corer   distutils.errorsr   rZ   r   rr   r   r   <module>rv      s   !
 
			     



 " " " " " " 1 1 1 1 1 1   H H H H H' H H H H Hr   