U
    0-e?                  
   @   s   d dl Z ddlmZmZmZmZmZ ddlmZ dddd	d
dddddg
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G d d! d!e jZdS )#    N   )ComputeEnvironmentDistributedTypeDynamoBackendPrecisionTypeSageMakerDistributedType   )
BulletMenuZEAGERZ	AOT_EAGERZINDUCTORZNVFUSERZAOT_NVFUSERZAOT_CUDAGRAPHSZOFIZFX2TRTZONNXRTZIPEXc                 C   sl   d}|rht | }z0|d k	r,t|dkr,|W S |d k	r<||n|W S  tk
rd   |d k	r`t| Y qX qd S )NTr   )inputlen	Exceptionprint)
input_textconvert_valuedefaulterror_messageZ	ask_againresult r   h/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/accelerate/commands/config/config_utils.py
_ask_field+   s    r   c                 C   s*   t | |}|j|d}|d k	r&||S |S )N)Zdefault_choice)r	   run)r   optionsr   r   menur   r   r   r   _ask_options8   s    
r   c                 C   s   t | } tddg|  S )NZLOCAL_MACHINEZAMAZON_SAGEMAKER)intr   valuer   r   r   _convert_compute_environment>   s    r   c                 C   s    t | } tddddddg|  S )NNOZ	MULTI_CPUZ	MULTI_XPUZ	MULTI_GPUZ	MULTI_NPUZTPU)r   r   r   r   r   r   _convert_distributed_modeC   s    r   c                 C   s   t | } tt|  jS )N)r   r   DYNAMO_BACKENDSr   r   r   r   r   _convert_dynamo_backendH   s    r!   c                 C   s   t | } tddddg|  S )NnoZfp16Zbf16Zfp8)r   r   r   r   r   r   _convert_mixed_precisionM   s    r#   c                 C   s   t | } tdddg|  S )Nr   ZDATA_PARALLELZMODEL_PARALLEL)r   r   r   r   r   r   #_convert_sagemaker_distributed_modeR   s    r$   c                 C   s   ddd|    S )NTF)yesr"   )lowerr   r   r   r   _convert_yes_no_to_boolW   s    r'   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   r+   `   s    z%SubcommandHelpFormatter._format_usage)__name__
__module____qualname____doc__r+   __classcell__r   r   r2   r   r(   [   s   r(   )NNN)argparseZutils.dataclassesr   r   r   r   r   r   r	   r    r   r   r   r   r!   r#   r$   r'   RawDescriptionHelpFormatterr(   r   r   r   r   <module>   s,   
