o
    0 i                     @   s   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 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_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   e/home/app/PaddleOCR-VL-test/.venv_paddleocr/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   Z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__:   r   zEnvironmentCommand.__init__c                 C   s  dd l }|j}d}d }}t rGdd l}ddlm}m} |j}| jd us*tj	
|r1|| j }t|trBddd | D nd| }d}	d	}
d	}t rxdd l}|j}	|j }
t }t }t }|
rjd
}n|rod}n	|rtd}n|rxd}d}d	}t rdd l}|j}z|j }W n ty   t|jd}Y nw d}t rt !t"#  dd l$}W d    n1 sw   Y  |j}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}t r\|
r*d|d< |j0 |d< n2|r9d|d< |j10 |d< n#|rHd|d< |j20 |d< n|r\d|d< |j30 |d< |j-j4|d< t5d t5| 6| |S )Nr   znot installedz	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>	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.
)7safetensorsr   r   
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$   r5   Zsafetensors_versionZaccelerate_versionZaccelerate_configZaccelerate_config_strr6   r&   r'   Z
pt_versionZpt_cuda_availableZpt_acceleratorr?   Zpt_xpu_availableZpt_npu_availableZpt_hpu_availableZ
tf_versionZtf_cuda_availabletfZdeepspeed_versionrI   Zflax_versionZjax_versionZjaxlib_versionZjax_backendrJ   rK   rL   infor   r   r   run=   s   

zEnvironmentCommand.runc                 C   s   d dd |  D d S )Nr(   c                 S   r)   )z- r*   r   r+   r   r   r   r/      r0   z2EnvironmentCommand.format_dict.<locals>.<listcomp>)r=   r>   )dr   r   r   rT      s   zEnvironmentCommand.format_dict)r"   N)	__name__
__module____qualname__staticmethodr   r!   r%   rW   rT   r   r   r   r   r   .   s    

rr   )rE   rG   r7   rO   argparser   rR    r   rP   Zintegrations.deepspeedr   utilsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   <module>   s   $	