o
    0i                     @   s   d dl Z ddlmZmZmZmZmZmZ ddlm	Z	 g dZ
dddZg dd fd	d
Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZG dd de jZdS )    N   )ComputeEnvironmentDistributedTypeDynamoBackendFP8BackendTypePrecisionTypeSageMakerDistributedType   )
BulletMenu)EAGER	AOT_EAGERINDUCTORAOT_TS_NVFUSERNVPRIMS_NVFUSER
CUDAGRAPHSOFIFX2TRTONNXRTTENSORRTAOT_TORCHXLA_TRACE_ONCETORHCHXLA_TRACE_ONCEIPEXTVMc                 C   sr   d}|r7t | }z|d urt|dkr|W S |d ur||W S |W S  ty2   |d ur0t| Y nw |sd S d S )NTr   )inputlen	Exceptionprint)
input_textconvert_valuedefaulterror_message	ask_againresult r#   i/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/accelerate/commands/config/config_utils.py
_ask_field0   s   r%   c                 C   s*   t | |}|j|d}|d ur||S |S )N)default_choice)r
   run)r   optionsr   r   menur"   r#   r#   r$   _ask_options=   s   
r*   c                 C      t | } tddg|  S )NLOCAL_MACHINEAMAZON_SAGEMAKER)intr   valuer#   r#   r$   _convert_compute_environmentC      r1   c                 C      t | } tg d|  S )N)
NO	MULTI_CPU	MULTI_XPU	MULTI_HPU	MULTI_GPU	MULTI_NPU	MULTI_MLU
MULTI_SDAA
MULTI_MUSAXLA)r.   r   r/   r#   r#   r$   _convert_distributed_modeH   s   r>   c                 C   s   t | } tt|  jS )N)r.   r   DYNAMO_BACKENDSr0   r/   r#   r#   r$   _convert_dynamo_backendZ   s   r@   c                 C   r3   )N)nofp16bf16fp8)r.   r   r/   r#   r#   r$   _convert_mixed_precision_   r2   rE   c                 C   r3   )N)r4   DATA_PARALLELMODEL_PARALLEL)r.   r   r/   r#   r#   r$   #_convert_sagemaker_distributed_moded   r2   rH   c                 C   r+   )NTEMSAMP)r.   r   r/   r#   r#   r$   _convert_fp8_backendi   r2   rK   c                 C   s   ddd|    S )NTF)yesrA   )lowerr/   r#   r#   r$   _convert_yes_no_to_booln   s   rN   c                       s    e Zd ZdZ fddZ  ZS )SubcommandHelpFormatterzc
    A custom formatter that will remove the usage line from the help message for subcommands.
    c                    s"   t  ||||}|dd}|S )Nz<command> [<args>]  )super_format_usagereplace)selfusageactionsgroupsprefix	__class__r#   r$   rR   w   s   z%SubcommandHelpFormatter._format_usage)__name__
__module____qualname____doc__rR   __classcell__r#   r#   rY   r$   rO   r   s    rO   )NNN)argparseutils.dataclassesr   r   r   r   r   r   r)   r
   r?   r%   r*   r1   r>   r@   rE   rH   rK   rN   RawDescriptionHelpFormatterrO   r#   r#   r#   r$   <module>   s    
