a
    hb                     @   s   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mZmZmZmZ ddlmZ eeZG dd dZG dd	 d	eZG d
d deZG dd deZG dd deZdd eeeefD ZedddZdS )    )Optional   )is_optuna_availableis_ray_tune_availableis_sigopt_availableis_wandb_availablerun_hp_search_optunarun_hp_search_rayrun_hp_search_sigoptrun_hp_search_wandb)HPSearchBackenddefault_hp_space_optunadefault_hp_space_raydefault_hp_space_sigoptdefault_hp_space_wandb)loggingc                   @   s^   e Zd ZU eed< dZee ed< edd Ze	edddZ
d	d
 Zdd Zedd ZdS )HyperParamSearchBackendBasenameNpip_packagec                   C   s   t d S NNotImplementedError r   r   ^/var/www/html/assistant/venv/lib/python3.9/site-packages/transformers/hyperparameter_search.pyis_available+   s    z(HyperParamSearchBackendBase.is_availablen_trials	directionc                 K   s   t d S r   r   selfZtrainerr   r   kwargsr   r   r   run/   s    zHyperParamSearchBackendBase.runc                 C   s   t d S r   r   r   Ztrialr   r   r   default_hp_space2   s    z,HyperParamSearchBackendBase.default_hp_spacec                 C   s(   |   s$td| j d|   dd S )NzYou picked the z' backend, but it is not installed. Run .)r   RuntimeErrorr   pip_install)r   r   r   r   ensure_available5   s    z,HyperParamSearchBackendBase.ensure_availablec                 C   s   d| j p| j dS )Nz`pip install `)r   r   )clsr   r   r   r&   ;   s    z'HyperParamSearchBackendBase.pip_install)__name__
__module____qualname__str__annotations__r   r   staticmethodr   intr!   r#   r'   classmethodr&   r   r   r   r   r   '   s   

r   c                   @   s4   e Zd ZdZedd ZeedddZdd Z	d	S )
OptunaBackendZoptunac                   C   s   t  S r   )r   r   r   r   r   r   C   s    zOptunaBackend.is_availabler   c                 K   s   t |||fi |S r   )r   r   r   r   r   r!   G   s    zOptunaBackend.runc                 C   s   t |S r   )r   r"   r   r   r   r#   J   s    zOptunaBackend.default_hp_spaceN
r*   r+   r,   r   r/   r   r0   r-   r!   r#   r   r   r   r   r2   @   s
   
r2   c                   @   s8   e Zd ZdZdZedd ZeedddZ	dd	 Z
d
S )RayTuneBackendZrayz'ray[tune]'c                   C   s   t  S r   )r   r   r   r   r   r   R   s    zRayTuneBackend.is_availabler   c                 K   s   t |||fi |S r   )r	   r   r   r   r   r!   V   s    zRayTuneBackend.runc                 C   s   t |S r   )r   r"   r   r   r   r#   Y   s    zRayTuneBackend.default_hp_spaceN)r*   r+   r,   r   r   r/   r   r0   r-   r!   r#   r   r   r   r   r4   N   s   
r4   c                   @   s4   e Zd ZdZedd ZeedddZdd Z	d	S )
SigOptBackendZsigoptc                   C   s   t  S r   )r   r   r   r   r   r   `   s    zSigOptBackend.is_availabler   c                 K   s   t |||fi |S r   )r
   r   r   r   r   r!   d   s    zSigOptBackend.runc                 C   s   t |S r   )r   r"   r   r   r   r#   g   s    zSigOptBackend.default_hp_spaceNr3   r   r   r   r   r5   ]   s
   
r5   c                   @   s4   e Zd ZdZedd ZeedddZdd Z	d	S )
WandbBackendZwandbc                   C   s   t  S r   )r   r   r   r   r   r   n   s    zWandbBackend.is_availabler   c                 K   s   t |||fi |S r   )r   r   r   r   r   r!   r   s    zWandbBackend.runc                 C   s   t |S r   )r   r"   r   r   r   r#   u   s    zWandbBackend.default_hp_spaceNr3   r   r   r   r   r6   k   s
   
r6   c                 C   s   i | ]}t |j|qS r   )r   r   .0backendr   r   r   
<dictcomp>y   s   r:   )returnc                  C   sv   dd t  D } t| dkrR| d j}t| dkrNtt|  d| d |S tddd	d
 t  D  d S )Nc                 S   s   g | ]}|  r|qS r   )r   r7   r   r   r   
<listcomp>       z-default_hp_search_backend.<locals>.<listcomp>r   r   z1 hyperparameter search backends available. Using z as the default.z,No hyperparameter search backend available.

c                 s   s$   | ]}d |j  d|  V  qdS )z - To install z run N)r   r&   r7   r   r   r   	<genexpr>   s   z,default_hp_search_backend.<locals>.<genexpr>)"ALL_HYPERPARAMETER_SEARCH_BACKENDSvalueslenr   loggerinfor%   join)Zavailable_backendsr   r   r   r   default_hp_search_backend~   s    

rF   N)typingr   Zintegrationsr   r   r   r   r   r	   r
   r   Ztrainer_utilsr   r   r   r   r   utilsr   Z
get_loggerr*   rC   r   r2   r4   r5   r6   r@   r-   rF   r   r   r   r   <module>   s   (


