o
    qoi,                     @   sJ   d dl mZmZ d dlmZ d dlmZ d dlmZ G dd dedZ	dS )	    )AnyOptional)Hydra)ConfigLoader)	Singletonc                   @   sj   e Zd ZdddZdddZdd
dZdefddZdddZe	de
de
dd fddZe	dddZdS )GlobalHydrareturnNc                 C   
   d | _ d S Nhydraself r   K/home/ubuntu/.local/lib/python3.10/site-packages/hydra/core/global_hydra.py__init__
      
zGlobalHydra.__init__r   r   c                 C   s6   t |tsJ dt| |  rtd|| _d S )NzUnexpected Hydra type : zdGlobalHydra is already initialized, call GlobalHydra.instance().clear() if you want to re-initialize)
isinstancer   typeis_initialized
ValueErrorr   )r   r   r   r   r   
initialize   s   
zGlobalHydra.initializer   c                 C   s   | j d usJ | j jS r
   )r   config_loaderr   r   r   r   r      s   zGlobalHydra.config_loaderc                 C   s
   | j d uS r
   r   r   r   r   r   r      r   zGlobalHydra.is_initializedc                 C   r	   r
   r   r   r   r   r   clear   r   zGlobalHydra.clearargskwargsc                  O   s   t jtg| R i |S r
   )r   instancer   )r   r   r   r   r   r      s   zGlobalHydra.instancer   c                 C   s   t | tsJ | tjt< d S r
   )r   r   r   
_instances)r   r   r   r   set_instance#   s   zGlobalHydra.set_instance)r   N)r   r   r   N)r   r   )r   r   r   N)__name__
__module____qualname__r   r   r   boolr   r   staticmethodr   r   r   r   r   r   r   r   	   s    



r   )	metaclassN)
typingr   r   hydra._internal.hydrar   hydra.core.config_loaderr   hydra.core.singletonr   r   r   r   r   r   <module>   s
   