U
    |e                     @  sB   d Z ddlmZ ddlZdd Zdd Zdd	 Zed
kr>e  dS )z=Inspect a target Python interpreter virtual environment wise.    )annotationsNc                 C  sT   | d krd S t | ttfs8t | tr,t| n
tt| } t | trP| t } | S )N)
isinstancestrbytestypereprdecodesysgetfilesystemencodingvalue r   ;/tmp/pip-unpacked-wheel-tuxcr54r/virtualenv/create/debug.pyencode_path   s    
r   c                 C  s   dd | D S )Nc                 S  s   g | ]}t |qS r   )r   ).0ir   r   r   
<listcomp>   s     z$encode_list_path.<locals>.<listcomp>r   r   r   r   r   encode_list_path   s    r   c               
   C  s  zddl m}  W n tk
r(   t} Y nX | d|  fg}d}|D ]6}tt|d}t|trdt|nt	|}||d |< qBt
 |d d< ttjdd|d d< tj|d	< z.ddl}t|d
t|dd}t	| |d< W n tk
r   Y nX ddl}t||d< zddl}t||d< W n0 tk
rJ }	 zt|	|d< W 5 d}	~	X Y nX zddl}
t|
|d< W n0 tk
r }	 zt|	|d< W 5 d}	~	X Y nX zddl}t||d< W n0 tk
r }	 zt|	|d< W 5 d}	~	X Y nX zddl}t||d< W n0 tk
r( }	 zt|	|d< W 5 d}	~	X Y nrX z|j|dd}tj| W nP ttfk
r }	 z,tjt|	 tjt| tdW 5 d}	~	X Y nX dS )z/Print debug data about the virtual environment.r   )OrderedDictr	   )	
executable_base_executableprefixbase_prefixreal_prefixexec_prefixbase_exec_prefixpath	meta_pathNZfs_encodingencodingZio_encodingversionget_makefile_filenameZ_get_makefile_filenameZmakefile_filenameossitedatetimemathjson   )indent   )collectionsr   ImportErrordictgetattrr	   r   listr   r   r
   stdoutr   	sysconfigr!   r   r"   r#   r$   r%   dumpswrite
ValueError	TypeErrorstderr
SystemExit)r   resultZ	path_keyskeyr   r/   makefiler!   r"   	exceptionr#   r$   r%   contentr   r   r   run   s`    

r;   __main__)__doc__
__future__r   r	   r   r   r;   __name__r   r   r   r   <module>   s   
O