o
    }oi                     @   s   d dl Z G dd deZdS )    Nc                       s,   e Zd ZdZi Ze Z fddZ  Z	S )	Singletonzx Implementation of a generic, tread-safe singleton meta-class.
        Can be used as meta-class, i.e. will create 
    c                    s`   | | j vr+| j | | j vrtt| j|i || j | < W d   n1 s&w   Y  | j |  S )z; Returns singleton instance. A thread safe implementation. N)_Singleton__instances_Singleton__locksuperr   __call__)clsargskwargs	__class__ J/home/ubuntu/.local/lib/python3.10/site-packages/nemo/utils/metaclasses.pyr      s   


zSingleton.__call__)
__name__
__module____qualname____doc__r   	threadingLockr   r   __classcell__r   r   r
   r   r      s
    r   )r   typer   r   r   r   r   <module>   s   