o
    Zhb                     @   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def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de	defdd	Z
d
d Zdd Zedd ZdS )HyperParamSearchBackendBasenameNpip_packagec                   C      t NNotImplementedError r   r   Q/var/www/auris/lib/python3.10/site-packages/transformers/hyperparameter_search.pyis_available+   s   z(HyperParamSearchBackendBase.is_availablen_trials	directionc                 K   r   r   r   selfZtrainerr   r   kwargsr   r   r   run/      zHyperParamSearchBackendBase.runc                 C   r   r   r   r   Ztrialr   r   r   default_hp_space2   r"   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                   @   6   e Zd ZdZedd ZdedefddZdd	 Z	d
S )OptunaBackendZoptunac                   C      t  S r   )r   r   r   r   r   r   C      zOptunaBackend.is_availabler   r   c                 K      t |||fi |S r   )r   r   r   r   r   r!   G      zOptunaBackend.runc                 C      t |S r   )r   r#   r   r   r   r$   J      zOptunaBackend.default_hp_spaceN
r+   r,   r-   r   r0   r   r1   r.   r!   r$   r   r   r   r   r4   @       
r4   c                   @   s:   e Zd ZdZdZedd ZdedefddZ	d	d
 Z
dS )RayTuneBackendZrayz'ray[tune]'c                   C   r5   r   )r   r   r   r   r   r   R   r6   zRayTuneBackend.is_availabler   r   c                 K   r7   r   )r	   r   r   r   r   r!   V   r8   zRayTuneBackend.runc                 C   r9   r   )r   r#   r   r   r   r$   Y   r:   zRayTuneBackend.default_hp_spaceN)r+   r,   r-   r   r   r0   r   r1   r.   r!   r$   r   r   r   r   r=   N   s    
r=   c                   @   r3   )SigOptBackendZsigoptc                   C   r5   r   )r   r   r   r   r   r   `   r6   zSigOptBackend.is_availabler   r   c                 K   r7   r   )r
   r   r   r   r   r!   d   r8   zSigOptBackend.runc                 C   r9   r   )r   r#   r   r   r   r$   g   r:   zSigOptBackend.default_hp_spaceNr;   r   r   r   r   r>   ]   r<   r>   c                   @   r3   )WandbBackendZwandbc                   C   r5   r   )r   r   r   r   r   r   n   r6   zWandbBackend.is_availabler   r   c                 K   r7   r   )r   r   r   r   r   r!   r   r8   zWandbBackend.runc                 C   r9   r   )r   r#   r   r   r   r$   u   r:   zWandbBackend.default_hp_spaceNr;   r   r   r   r   r?   k   r<   r?   c                 C   s   i | ]}t |j|qS r   )r   r   .0backendr   r   r   
<dictcomp>y   s    rC   returnc                  C   sr   dd t  D } t| dkr)| d j}t| dkr'tt|  d| d |S tddd	d
 t  D  )Nc                 S   s   g | ]}|  r|qS r   )r   r@   r   r   r   
<listcomp>   s    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'   r@   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   

rN   N)typingr   Zintegrationsr   r   r   r   r   r	   r
   r   Ztrainer_utilsr   r   r   r   r   utilsr   Z
get_loggerr+   rK   r   r4   r=   r>   r?   rH   r.   rN   r   r   r   r   <module>   s   (


