U
    ,-eA                     @   s   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 )   )is_optuna_availableis_ray_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                   @   sZ   e Zd ZU eed< dZ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   c/var/www/html/Darija-Ai-Train/env/lib/python3.8/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   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|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   r.   r+   r   r!   r   r   r   r   r0   @   s
   
r0   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|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   r.   r+   r   r!   r   r   r   r   r2   N   s   
r2   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|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_spaceNr1   r   r   r   r   r3   ]   s
   
r3   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|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_spaceNr1   r   r   r   r   r4   k   s
   
r4   c                 C   s   i | ]}t |j|qS r   )r
   r   .0backendr   r   r   
<dictcomp>y   s     r8   )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   r5   r   r   r   
<listcomp>   s      z-default_hp_search_backend.<locals>.<listcomp>    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$   r5   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    

rD   N)Zintegrationsr   r   r   r   r   r   r   r	   Ztrainer_utilsr
   r   r   r   r   utilsr   Z
get_loggerr(   rA   r   r0   r2   r3   r4   r>   r+   rD   r   r   r   r   <module>   s   (


