o
    Ii                     @   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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"   [/home/ubuntu/.local/lib/python3.10/site-packages/accelerate/commands/config/config_utils.py
_ask_field/   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   s   t | } tddg|  S )NLOCAL_MACHINEAMAZON_SAGEMAKER)intr   valuer"   r"   r#   _convert_compute_environmentB      r/   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MULTI_NEURONXLA)r,   r   r-   r"   r"   r#   _convert_distributed_modeG   s   r=   c                 C   s   t | } tt|  jS )N)r,   r   DYNAMO_BACKENDSr.   r-   r"   r"   r#   _convert_dynamo_backendZ   s   r?   c                 C   r1   )N)nofp16bf16fp8)r,   r   r-   r"   r"   r#   _convert_mixed_precision_   r0   rD   c                 C   r1   )N)r2   DATA_PARALLELMODEL_PARALLEL)r,   r   r-   r"   r"   r#   #_convert_sagemaker_distributed_moded   r0   rG   c                 C   r1   )N)AOTEMSAMP)r,   r   r-   r"   r"   r#   _convert_fp8_backendi   r0   rK   c                 C   s   ddd|    S )NTF)yesr@   )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)   r/   r=   r?   rD   rG   rK   rN   RawDescriptionHelpFormatterrO   r"   r"   r"   r#   <module>   s    
