a
    hp                     @   s   d dl Z d dlZ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 ddlmZmZmZ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_deepspeed_available)is_accelerate_availableis_flax_availableis_safetensors_availableis_tf_availableis_torch_availableis_torch_hpu_availableis_torch_npu_availableis_torch_xpu_available   )BaseTransformersCLICommandc                 C   s   t  S N)EnvironmentCommand)_ r   U/var/www/html/assistant/venv/lib/python3.9/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,   s    r   c                   @   s@   e Zd ZeedddZd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   Zdownload_parserr   r   r   register_subcommand1   s    
z&EnvironmentCommand.register_subcommandN)returnc                 G   s
   || _ d S r   )_accelerate_config_file)selfr   r   r   r   r   __init__<   s    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 rdd l}ddlm	}m
} |j}| jd ustj|r|| j }t|trddd	 | D nd
| }d}	d}
d}t r*dd l}|j}	|j }
t }t }t }|
rd}n"|rd}n|r d}n
|r*d}d}d}t r|dd l}|j}z|j }W n$ tyz   t |j!"d}Y n0 d}t# rt$%t&'  dd l(}W d    n1 s0    Y  |j}d}d}d}d}t) rdd l*}dd l+}dd l,}|j}|j}|j}|j-j./ j0}t1t00 t02 t3j| | | | |	 d| d| d| d| d| d| | dd}t r|
rd|d< |j4 |d< nd|rd|d< |j54 |d< nF|rd|d< |j64 |d< n(|rd|d< |j74 |d< |j1j8|d< t9d t9| :| |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   s    g | ]\}}d | d| qS )z	- : r   .0propvalr   r   r   
<listcomp>V       z*EnvironmentCommand.run.<locals>.<listcomp>	ZNACUDAZXPUZNPUZHPUZGPUz ()z	<fill in>)z`transformers` versionPlatformzPython versionzHuggingface_hub versionzSafetensors versionzAccelerate versionzAccelerate configzDeepSpeed versionzPyTorch version (accelerator?)zTensorflow version (GPU?)zFlax version (CPU?/GPU?/TPU?)zJax versionzJaxLib versionz/Using distributed or parallel set-up in script?zUsing GPU in script?zGPU typezUsing XPU in script?zXPU typezUsing HPU in script?zHPU typezUsing NPU in script?zNPU typezCANN versionzV
Copy-and-paste the text below in your GitHub issue and FILL OUT the two last points.
);r   r&   r   	importlibutil	find_specr   
accelerateZaccelerate.commands.configr'   r(   r#   ospathisfileto_dict
isinstancedictjoinitemsr
   torchcudaZis_availabler   r   r   r	   Z
tensorflowtestZis_gpu_availableAttributeErrorboolconfigZlist_physical_devicesr   
contextlibredirect_stdoutioStringIO	deepspeedr   flaxjaxjaxliblibZ
xla_bridgeget_backendplatformversionpython_versionhuggingface_hubZget_device_nameZxpuZhpuZnpuZcannprintformat_dict)r$   Zsafetensors_versionr&   Zaccelerate_versionZaccelerate_configZaccelerate_config_strr8   r'   r(   Z
pt_versionZpt_cuda_availableZpt_acceleratorrA   Zpt_xpu_availableZpt_npu_availableZpt_hpu_availableZ
tf_versionZtf_cuda_availabletfZdeepspeed_versionrK   Zflax_versionZjax_versionZjaxlib_versionZjax_backendrL   rM   rN   infor   r   r   run?   s    
(zEnvironmentCommand.runc                 C   s   d dd |  D d S )Nr)   c                 S   s    g | ]\}}d | d| qS )z- r*   r   r+   r   r   r   r/      r0   z2EnvironmentCommand.format_dict.<locals>.<listcomp>)r?   r@   )dr   r   r   rV      s    zEnvironmentCommand.format_dict)	__name__
__module____qualname__staticmethodr   r!   r%   rY   rV   r   r   r   r   r   0   s   
wr   )rG   importlib.utilr5   rI   r9   rQ   argparser   rT    r   rR   Zintegrations.deepspeedr   utilsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   <module>   s   (
