
    =OgF                     n    	 d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ  G d d          ZdS )    N)DistutilsOptionError)utildir_util	file_utilarchive_utildep_utillogc                       e Zd Z	 g Zd Zd Zd Zd Zd Zd$dZ	d	 Z
d%dZd Zd&dZd&dZd Z	 d&dZd Zd Zd Zd Zd%dZd'dZd Zd Zd Zd(dZd)dZ	 	 d*dZ	 	 d+dZd%d Zd,d!Z	 	 d-d"Z 	 d.d#Z!dS )/Commandc                    	 ddl m} t          ||          st          d          | j        t
          u rt          d          || _        |                                  d | _	        |j
        | _
        d | _        d| _        d| _        d S )Nr   )Distributionz$dist must be a Distribution instancezCommand is an abstract class)distutils.distr   
isinstance	TypeError	__class__r   RuntimeErrordistributioninitialize_options_dry_runverboseforcehelp	finalized)selfdistr   s      &/usr/lib64/python3.11/distutils/cmd.py__init__zCommand.__init__/   s    	 	0/////$-- 	DBCCC>W$$=>>> !!!  | 
 	     c                     |dk    r,t          | d|z             }|t          | j        |          S |S t          |          )Ndry_run_)getattrr   AttributeError)r   attrmyvals      r   __getattr__zCommand.__getattr___   sK    9D#*--E}t0$777 &&&r   c                 J    | j         s|                                  d| _         d S N   )r   finalize_optionsr   s    r   ensure_finalizedzCommand.ensure_finalizedi   s)    ~ 	$!!###r   c                 2    	 t          d| j        z            Nz,abstract method -- subclass %s must overrider   r   r,   s    r   r   zCommand.initialize_options{   (    	 I!^, - - 	-r   c                 2    	 t          d| j        z            r/   r0   r,   s    r   r+   zCommand.finalize_options   s(    		 I!^, - - 	-r   N c                 z   ddl m} |d|                                 z  }|                     ||z   t          j                   |dz   }| j        D ]j\  }}}|                    |          }|d         dk    r
|d d         }t          | |          }|                     ||d|z   t          j                   kd S )	Nr   )longopt_xlatezcommand options for '%s':)levelz  =z = )	distutils.fancy_getoptr5   get_command_nameannouncer
   INFOuser_options	translater#   )r   headerindentr5   optionr"   values          r   dump_optionszCommand.dump_options   s    888888>043H3H3J3JJFfvoSX666$"/ 	* 	*NVQ%%m44FbzS  D&))EMM&#>> #  * * * *	* 	*r   c                 2    	 t          d| j        z            r/   r0   r,   s    r   runzCommand.run   r1   r   r*   c                 2    	 t          j         ||           d S Nr	   )r   msgr6   s      r   r;   zCommand.announce   s!    	 	sr   c                 v    	 ddl m} |r/t          |           t          j                                         d S d S )Nr   )DEBUG)distutils.debugrJ   printsysstdoutflush)r   rH   rJ   s      r   debug_printzCommand.debug_print   sR    	 	*))))) 	#JJJJ	 	r   c           	          t          | |          }|t          | ||           |S t          |t                    st	          d|d|d|d          |S )N'z' must be a z (got `z`))r#   setattrr   strr   )r   rA   whatdefaultvals        r   _ensure_stringlikezCommand._ensure_stringlike   sq    dF##;D&'***NC%% 	>&&*0&&$$$(= > > >
r   c                 6    	 |                      |d|           d S )Nstring)rX   )r   rA   rV   s      r   ensure_stringzCommand.ensure_string   s'    	 	':::::r   c                 8   	 t          | |          }|d S t          |t                    r&t          | |t	          j        d|                     d S t          |t                    rt          d |D                       }nd}|st          d|d|d          d S )Nz,\s*|\s+c              3   @   K   | ]}t          |t                    V  d S rG   )r   rT   ).0vs     r   	<genexpr>z-Command.ensure_string_list.<locals>.<genexpr>   s,      99As++999999r   FrR   z!' must be a list of strings (got ))	r#   r   rT   rS   resplitlistallr   )r   rA   rW   oks       r   ensure_string_listzCommand.ensure_string_list   s    	
 dF##;FS!! 
	'D&"(;"<"<=====#t$$ 99S99999 '**&' ' '' 'r   c                     |                      |||          }|" ||          st          d|z   ||fz            d S d S )Nzerror in '%s' option: )rX   r   )r   rA   testerrU   	error_fmtrV   rW   s          r   _ensure_tested_stringzCommand._ensure_tested_string   s[    %%fdG<<?66#;;?&(@9(L*0#(7 8 8 8 ???r   c                 V    	 |                      |t          j        j        dd           d S )Nfilenamez$'%s' does not exist or is not a file)rk   ospathisfiler   rA   s     r   ensure_filenamezCommand.ensure_filename   s:    C""627>#-#I	K 	K 	K 	K 	Kr   c                 T    |                      |t          j        j        dd           d S )Nzdirectory namez)'%s' does not exist or is not a directory)rk   rn   ro   isdirrq   s     r   ensure_dirnamezCommand.ensure_dirname  s7    ""627=#3#N	P 	P 	P 	P 	Pr   c                 H    t          | d          r| j        S | j        j        S )Ncommand_name)hasattrrw   r   __name__r,   s    r   r:   zCommand.get_command_name	  s(    4(( 	+$$>**r   c           	          	 | j                             |          }|                                 |D ]4\  }}t          | |          t	          | |t          ||                     5d S rG   )r   get_command_objr-   r#   rS   )r   src_cmdoption_pairssrc_cmd_obj
src_option
dst_options         r   set_undefined_optionszCommand.set_undefined_options  s    	 '77@@$$&&&(4 	L 	L$ZtZ((0j'+z*J*JKKK	L 	Lr   c                 f    	 | j                             ||          }|                                 |S rG   )r   r{   r-   )r   commandcreatecmd_objs       r   get_finalized_commandzCommand.get_finalized_command$  s8    	
 #33GVDD  """r   r   c                 8    | j                             ||          S rG   )r   reinitialize_command)r   r   reinit_subcommandss      r   r   zCommand.reinitialize_command0  s%     55g6HJ J 	Jr   c                 <    	 | j                             |           d S rG   )r   run_command)r   r   s     r   r   zCommand.run_command4  s&    	 	%%g.....r   c                 j    	 g }| j         D ]'\  }}| ||           r|                    |           (|S rG   )sub_commandsappend)r   commandscmd_namemethods       r   get_sub_commandszCommand.get_sub_commands;  sN    	 "&"3 	* 	*Xv~~)))r   c                 V    t          j        d|                                 |           d S )Nzwarning: %s: %s
)r
   warnr:   )r   rH   s     r   r   zCommand.warnK  s)    $d&;&;&=&=sCCCCCr   c                 @    t          j        |||| j                   d S Nr!   )r   executer!   )r   funcargsrH   r6   s        r   r   zCommand.executeN  s#    T4dl;;;;;;r     c                 >    t          j        ||| j                   d S r   )r   mkpathr!   )r   namemodes      r   r   zCommand.mkpathQ  s!    dDL999999r   c           	      P    	 t          j        ||||| j         || j                  S r   )r   	copy_filer   r!   )r   infileoutfilepreserve_modepreserve_timeslinkr6   s          r   r   zCommand.copy_fileT  s:    	L "67M#1tz>4+/<9 9 9 	9r   c           	      P    	 t          j        |||||| j         | j                  S r   )r   	copy_treer   r!   )r   r   r   r   r   preserve_symlinksr6   s          r   r   zCommand.copy_tree]  s>    	 !&'="02C&*j.$,H H H 	Hr   c                 <    	 t          j        ||| j                  S r   )r   	move_filer!   )r   srcdstr6   s       r   r   zCommand.move_filef  s    2"3T\BBBBr   c                 :    	 ddl m}  |||| j                   d S )Nr   )spawnr   )distutils.spawnr   r!   )r   cmdsearch_pathr6   r   s        r   r   zCommand.spawnj  s6    @))))))c;555555r   c           	      B    t          j        ||||| j        ||          S )N)r!   ownergroup)r   make_archiver!   )r   	base_nameformatroot_dirbase_dirr   r   s          r   r   zCommand.make_archiveo  s2    (FHh15/4EC C C 	Cr   c                 l   	 |d|z  }t          |t                    r|f}n+t          |t          t          f          st	          d          |d|dd                    |          }| j        st          j        ||          r| 	                    ||||           d S t          j        |           d S )Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating z from z, )r   rT   rd   tupler   joinr   r   newer_groupr   r
   debug)r   infilesr   r   r   exec_msgskip_msgr6   s           r   	make_filezCommand.make_fileu  s    	 7'AH gs## 	OjGGGdE]33 	OMO O O 29''499W;M;M;MNH
 : 	 -gw?? 	 LLtXu55555 Ihr   )Nr3   )r*   rG   )r   r)   )r   )r*   r*   Nr*   )r*   r*   r   r*   )r*   r*   )NNNN)NNr*   )"ry   
__module____qualname__r   r   r'   r-   r   r+   rC   rE   r;   rP   rX   r[   rg   rk   rr   ru   r:   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r      sr       : L
- - -`' ' '  $- - -- - -* * * *- - -     .   ; ; ; ;' ' ', '+8 8 8 8K K KP P P+ + +L L L*   J J J J/ / /   D D D< < < <: : : : JK#$9 9 9 9 JK./H H H HC C C C6 6 6 6
 GK'+C C C C 78           r   r   )rM   rn   rb   distutils.errorsr   	distutilsr   r   r   r   r   r
   r   r   r   r   <module>r      s                1 1 1 1 1 1 G G G G G G G G G G G G G G      G  G  G  G  G  G  G  G  G  G r   