U
    &c                     @   sX   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 dd Z
G dd	 d	e	ZdS )
    N)ArgumentParser)__version__)is_tf_availableis_torch_available)BaseTransformersCLICommandc                 C   s   t  S )N)EnvironmentCommand)_ r	   =/tmp/pip-unpacked-wheel-ymerj3tt/transformers/commands/env.pyinfo_command_factory	   s    r   c                   @   s2   e Zd ZeedddZdd Zedd ZdS )	r   )parserc                 C   s   |  d}|jtd d S )Nenv)func)
add_parserset_defaultsr   )r   Zdownload_parserr	   r	   r
   register_subcommand   s    
z&EnvironmentCommand.register_subcommandc                 C   s   d}d}t  r&dd l}|j}|j }d}d}t rvdd l}|j}z|j }W n$ t	k
rt   t
|jd}Y nX tt t d||d||ddd}td t| | |S )	Nznot installedZNAr   ZGPUz{} ({})z	<fill in>)z`transformers` versionPlatformzPython versionzPyTorch version (GPU?)zTensorflow version (GPU?)zUsing GPU in script?z/Using distributed or parallel set-up in script?zV
Copy-and-paste the text below in your GitHub issue and FILL OUT the two last points.
)r   torchr   ZcudaZis_availabler   Z
tensorflowtestZis_gpu_availableAttributeErrorboolconfigZlist_physical_devicesversionplatformpython_versionformatprintformat_dict)selfZ
pt_versionZpt_cuda_availabler   Z
tf_versionZtf_cuda_availabletfinfor	   r	   r
   run   s4    



zEnvironmentCommand.runc                 C   s   d dd |  D d S )N
c                 S   s   g | ]\}}d  ||qS )z- {}: {})r   ).0propvalr	   r	   r
   
<listcomp>:   s     z2EnvironmentCommand.format_dict.<locals>.<listcomp>)joinitems)dr	   r	   r
   r   8   s    zEnvironmentCommand.format_dictN)__name__
__module____qualname__staticmethodr   r   r!   r   r	   r	   r	   r
   r      s
   %r   )r   argparser   Ztransformersr   r   r   r   Ztransformers.commandsr   r   r   r	   r	   r	   r
   <module>   s   