???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3

  \J                 @   sn   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 dZG dd deZdS )	    N)DistutilsOptionError)utildir_util	file_utilarchive_utildep_util)logc               @   s  e Zd Zg Zdd Zdd Zdd Zdd Zd	d
 ZdBddZ	dd Z
dCddZdd ZdDddZdEddZdd ZdFddZdd Zd d! Zd"d# Zd$d% ZdGd&d'ZdHd)d*Zd+d, Zd-d. Zd/d0 ZdId1d2ZdJd4d5ZdKd6d7ZdLd8d9ZdMd:d;ZdNd<d=ZdOd>d?Z dPd@dAZ!dS )QCommandc             C   sb   ddl m} t||std| jtkr0td|| _| j  d | _	|j
| _
d | _d| _d| _d S )Nr   )Distributionz$dist must be a Distribution instancezCommand is an abstract class)Zdistutils.distr
   
isinstance	TypeError	__class__r	   RuntimeErrordistributioninitialize_optionsZ_dry_runverboseforcehelp	finalized)selfZdistr
    r   %/usr/lib64/python3.6/distutils/cmd.py__init__/   s    


zCommand.__init__c             C   s<   |dkr0t | d| }|d kr*t | j|S |S nt|d S )Ndry_run_)getattrr   AttributeError)r   attrZmyvalr   r   r   __getattr___   s    zCommand.__getattr__c             C   s   | j s| j  d| _ d S )N   )r   finalize_options)r   r   r   r   ensure_finalizedi   s    zCommand.ensure_finalizedc             C   s   t d| j d S )Nz,abstract method -- subclass %s must override)r   r   )r   r   r   r   r   {   s    
zCommand.initialize_optionsc             C   s   t d| j d S )Nz,abstract method -- subclass %s must override)r   r   )r   r   r   r   r       s    zCommand.finalize_optionsN c             C   s   ddl m} |d kr d| j  }| j|| tjd |d }x\| jD ]R\}}}|j|}|d	 dkrp|d d
 }t| |}| j|d||f  tjd qDW d S )Nr   )longopt_xlatezcommand options for '%s':)levelz  r   =z%s = %sr&   )	Zdistutils.fancy_getoptr#   get_command_nameannouncer   INFOuser_options	translater   )r   headerindentr#   optionr   valuer   r   r   dump_options   s    

zCommand.dump_optionsc             C   s   t d| j d S )Nz,abstract method -- subclass %s must override)r   r   )r   r   r   r   run   s    
zCommand.runr   c             C   s   t j || d S )N)r   )r   msgr$   r   r   r   r(      s    zCommand.announcec             C   s&   ddl m} |r"t| tjj  d S )Nr   )DEBUG)Zdistutils.debugr3   printsysstdoutflush)r   r2   r3   r   r   r   debug_print   s    zCommand.debug_printc             C   sB   t | |}|d kr"t| || |S t|ts>td|||f |S )Nz'%s' must be a %s (got `%s`))r   setattrr   strr   )r   r.   whatdefaultvalr   r   r   _ensure_stringlike   s    

zCommand._ensure_stringlikec             C   s   | j |d| d S )Nstring)r>   )r   r.   r<   r   r   r   ensure_string   s    zCommand.ensure_stringc             C   sp   t | |}|d krd S t|tr6t| |tjd| n6t|trTtdd |D }nd}|sltd||f d S )Nz,\s*|\s+c             s   s   | ]}t |tV  qd S )N)r   r:   ).0vr   r   r   	<genexpr>   s    z-Command.ensure_string_list.<locals>.<genexpr>Fz''%s' must be a list of strings (got %r))	r   r   r:   r9   resplitlistallr   )r   r.   r=   okr   r   r   ensure_string_list   s    


zCommand.ensure_string_listc             C   s8   | j |||}|d k	r4|| r4td| ||f d S )Nzerror in '%s' option: )r>   r   )r   r.   Ztesterr;   Z	error_fmtr<   r=   r   r   r   _ensure_tested_string   s    zCommand._ensure_tested_stringc             C   s   | j |tjjdd d S )Nfilenamez$'%s' does not exist or is not a file)rJ   ospathisfile)r   r.   r   r   r   ensure_filename   s    zCommand.ensure_filenamec             C   s   | j |tjjdd d S )Nzdirectory namez)'%s' does not exist or is not a directory)rJ   rL   rM   isdir)r   r.   r   r   r   ensure_dirname  s    zCommand.ensure_dirnamec             C   s   t | dr| jS | jjS d S )Ncommand_name)hasattrrR   r   __name__)r   r   r   r   r'   	  s    
zCommand.get_command_namec             G   sJ   | j j|}|j  x0|D ](\}}t| |d krt| |t|| qW d S )N)r   get_command_objr!   r   r9   )r   Zsrc_cmdZoption_pairsZsrc_cmd_objZ
src_optionZ
dst_optionr   r   r   set_undefined_options  s
    zCommand.set_undefined_optionsc             C   s   | j j||}|j  |S )N)r   rU   r!   )r   commandZcreateZcmd_objr   r   r   get_finalized_command$  s    zCommand.get_finalized_commandr   c             C   s   | j j||S )N)r   reinitialize_command)r   rW   Zreinit_subcommandsr   r   r   rY   0  s    zCommand.reinitialize_commandc             C   s   | j j| d S )N)r   run_command)r   rW   r   r   r   rZ   4  s    zCommand.run_commandc             C   s6   g }x,| j D ]"\}}|d ks$|| r|j| qW |S )N)sub_commandsappend)r   ZcommandsZcmd_namemethodr   r   r   get_sub_commands;  s
    zCommand.get_sub_commandsc             C   s   t jd| j | d S )Nzwarning: %s: %s
)r   warnr'   )r   r2   r   r   r   r_   K  s    zCommand.warnc             C   s   t j|||| jd d S )N)r   )r   executer   )r   funcargsr2   r$   r   r   r   r`   N  s    zCommand.execute  c             C   s   t j||| jd d S )N)r   )r   mkpathr   )r   namemoder   r   r   rd   Q  s    zCommand.mkpathc          	   C   s   t j||||| j || jdS )N)r   )r   	copy_filer   r   )r   infileoutfilepreserve_modepreserve_timeslinkr$   r   r   r   rg   T  s    

zCommand.copy_filec          	   C   s   t j|||||| j | jdS )N)r   )r   	copy_treer   r   )r   rh   ri   rj   rk   Zpreserve_symlinksr$   r   r   r   rm   ]  s    
zCommand.copy_treec             C   s   t j||| jdS )N)r   )r   	move_filer   )r   srcdstr$   r   r   r   rn   f  s    zCommand.move_filec             C   s    ddl m} |||| jd d S )Nr   )spawn)r   )Zdistutils.spawnrq   r   )r   cmdZsearch_pathr$   rq   r   r   r   rq   j  s    zCommand.spawnc          	   C   s   t j||||| j||dS )N)r   ownergroup)r   make_archiver   )r   Z	base_nameformatZroot_dirZbase_dirrs   rt   r   r   r   ru   o  s    zCommand.make_archivec             C   s   |d krd| }t |tr"|f}nt |ttfs8td|d krRd|dj|f }| jsdtj||rv| j	|||| n
t
j| d S )Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, )r   r:   rF   tupler   joinr   r   Znewer_groupr`   r   debug)r   Zinfilesri   ra   rb   Zexec_msgZskip_msgr$   r   r   r   	make_fileu  s    

zCommand.make_file)Nr"   )r   )N)N)N)r   )r   )Nr   )rc   )r   r   Nr   )r   r   r   r   )r   )r   r   )NNNN)NNr   )"rT   
__module____qualname__r[   r   r   r!   r   r    r0   r1   r(   r8   r>   r@   rI   rJ   rO   rQ   r'   rV   rX   rY   rZ   r^   r_   r`   rd   rg   rm   rn   rq   ru   rz   r   r   r   r   r	      sD   0










 
 


 
r	   c               @   s2   e Zd ZdgZdd Zdd Zdd	 Zd
d ZdS )install_miscinstall-dir=d!directory to install the files toc             C   s   d | _ g | _d S )N)install_diroutfiles)r   r   r   r   r     s    zinstall_misc.initialize_optionsc             C   s   | j d|df d S )NZinstallr   )rV   )r   dirnamer   r   r   _install_dir_from  s    zinstall_misc._install_dir_fromc             C   sR   g | _ |sd S | j| j x2|D ]*}| j|| j | j jtjj| j| q W d S )N)r   rd   r   rg   r\   rL   rM   rx   )r   Zfilelistfr   r   r   _copy_files  s    
zinstall_misc._copy_filesc             C   s   | j S )N)r   )r   r   r   r   get_outputs  s    zinstall_misc.get_outputsN)r~   r   r   )rT   r{   r|   r*   r   r   r   r   r   r   r   r   r}     s
   	r}   )r5   rL   rD   Zdistutils.errorsr   Z	distutilsr   r   r   r   r   r   r	   r}   r   r   r   r   <module>   s      