o
    h                     @   s   d dl Zd dlZd dlZd dlm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 dd	 Zd
d ZG dd deZdS )    N)ArgumentParser   )__version__)is_accelerate_availableis_flax_availableis_safetensors_availableis_tf_availableis_torch_available   )BaseTransformersCLICommandc                 C   s   t  S N)EnvironmentCommand)_ r   O/var/www/html/ai/venv/lib/python3.10/site-packages/transformers/commands/env.pyinfo_command_factory!   s   r   c                 C   s
   t | jS r   )r   accelerate_config_file)argsr   r   r   download_command_factory%      
r   c                   @   s<   e Zd ZedefddZdddZdd	 Zed
d ZdS )r   parserc                 C   s6   |  d}|jtd |jdd dd |jtd d S )Nenv)funcz--accelerate-config_filezQThe accelerate config file to use for the default values in the launching script.)defaulthelp)
add_parserset_defaultsr   add_argumentr   )r   download_parserr   r   r   register_subcommand*   s   
z&EnvironmentCommand.register_subcommandreturnNc                 G   s
   || _ d S r   )_accelerate_config_file)selfr   r   r   r   r   __init__5   r   zEnvironmentCommand.__init__c                 C   s  d}t  rdd l}|j}ntjdd urdd l}|j d}d}d }}t r_dd l}ddlm	}m
} |j}| jd usBtj|rI|| j }t|trZddd	 | D nd
| }d}	d}
t rrdd l}|j}	|j }
d}d}t rdd l}|j}z|j }W n ty   t|jd}Y nw d}d}d}d}t  rdd l!}dd l"}dd l#}|j}|j}|j}|j$j%& j'}t(t'' t') t*j| | | |	 d|
 d| d| d| d| d| | ddd}t+d t+| ,| |S )Nznot installedr   safetensorsz3 but is ignored because of PyTorch version too old.z	not found)default_config_fileload_config_from_file
c                 S       g | ]\}}d | d| qS )z	- : r   .0propvalr   r   r   
<listcomp>O        z*EnvironmentCommand.run.<locals>.<listcomp>	NAGPUz ()z	<fill in>)z`transformers` versionPlatformzPython versionzHuggingface_hub versionzSafetensors versionzAccelerate versionzAccelerate configzPyTorch version (GPU?)zTensorflow version (GPU?)zFlax version (CPU?/GPU?/TPU?)zJax versionzJaxLib versionz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   r$   r   	importlibutil	find_specr   
accelerateaccelerate.commands.configr%   r&   r!   ospathisfileto_dict
isinstancedictjoinitemsr	   torchcudais_availabler   
tensorflowtestis_gpu_availableAttributeErrorboolconfiglist_physical_devicesr   flaxjaxjaxliblib
xla_bridgeget_backendplatformversionpython_versionhuggingface_hubprintformat_dict)r"   safetensors_versionr$   accelerate_versionaccelerate_configaccelerate_config_strr8   r%   r&   
pt_versionpt_cuda_availablerB   
tf_versiontf_cuda_availabletfflax_versionjax_versionjaxlib_versionjax_backendrL   rM   rN   infor   r   r   run8   s   
zEnvironmentCommand.runc                 C   s   d dd |  D d S )Nr'   c                 S   r(   )z- r)   r   r*   r   r   r   r.      r/   z2EnvironmentCommand.format_dict.<locals>.<listcomp>)r@   rA   )dr   r   r   rW      s   zEnvironmentCommand.format_dict)r    N)	__name__
__module____qualname__staticmethodr   r   r#   rf   rW   r   r   r   r   r   )   s    

Ur   )importlib.utilr5   r:   rR   argparser   rU    r   rS   utilsr   r   r   r   r	   r   r   r   r   r   r   r   r   <module>   s   