U
    |e;
                     @  sd   d dl mZ d dlZd dlZd dlZd dlmZ dddZG dd dZddd	Z	e
d
kr`e	  dS )    )annotationsN)default_timerc              
   C  s   |d krt jn|}t }ddlm} ddlm} | d krFtjdd  } z || ||}t	
t|| W nh |k
r } zJtd|j d|j  t|jtjdd t|jtjdd t|jW 5 d }~X Y nX d S )	Nr   )cli_run)ProcessCallFailedError   zsubprocess call failed for z with code  )fileend)osenvironr   Zvirtualenv.runr   Zvirtualenv.util.errorr   sysargvloggingwarning
LogSessionprintcmdcodeoutstdouterrstderr
SystemExit)argsoptionsenvstartr   r   session	exception r   7/tmp/pip-unpacked-wheel-tuxcr54r/virtualenv/__main__.pyrun	   s    r!   c                   @  s(   e Zd ZddddZddddZdS )	r   None)returnc                 C  s   || _ || _d S N)r   r   )selfr   r   r   r   r    __init__   s    zLogSession.__init__strc                 C  s   | j jjj}t | j d }d| d|ddd| j jg}| j jjr|d| j j | j jj	
 }tdd	 |D }|d
d|  | j jr|dddd	 | j jD   d|S )Ni  zcreated virtual environment z in z.0fmsz
  creator z	  seeder c                 s  s*   | ]"}|j d krd|jdV  qdS )z
.dist-infoz==-N)suffixjoinstemsplit.0ir   r   r    	<genexpr>*   s     
 z%LogSession.__str__.<locals>.<genexpr>z    added seed packages: z, z  activators ,c                 s  s   | ]}|j jV  qd S r$   )	__class____name__r.   r   r   r    r1   .   s     
)r   Zcreatorinterpreterspecr   r   ZseederZenabledappendpurelibiterdirsortedr+   Z
activators)r%   r7   elapsedlinespathpackagesr   r   r    __str__    s    
$zLogSession.__str__N)r4   
__module____qualname__r&   r@   r   r   r   r    r      s   r   c                 C  s   ddl m} |d krtjn|}| }zt| || W n tttfk
r } zhzXt
|ddr\ t|trp|jdkstdt|j| t|tr|jnd}t| W 5 t	  X W 5 d }~X Y nX d S )Nr   )VirtualEnvOptionswith_tracebackFz%s: %sr   )Zvirtualenv.config.cli.parserrC   r
   r   r!   KeyboardInterruptr   	Exceptionr   shutdowngetattr
isinstancer   errortyper4   r   exit)r   r   rC   r   r   r   r   r   r    run_with_catch2   s    rM   __main__)NNN)NN)
__future__r   r   r
   r   Ztimeitr   r!   r   rM   r4   r   r   r   r    <module>   s   

