
    Fdn                     d    d Z ddlZ G d dej        e          Z G d dej        e          ZdS )zBThe singleton metaclass for ensuring only one instance of a class.    Nc                   &     e Zd ZdZi Z fdZ xZS )	SingletonzH
    Singleton metaclass for ensuring only one instance of a class.
    c                     | | j         vr( t          t          |           j        |i || j         | <   | j         |          S )z(Call method for the singleton metaclass.)
_instancessuperr   __call__)clsargskwargs	__class__s      EC:\Users\Administrator\Downloads\Auto-GPT-master\autogpt\singleton.pyr   zSingleton.__call__   sE    cn$$"@%	3"7"7"@$"Q&"Q"QCN3~c""    )__name__
__module____qualname____doc__r   r   __classcell__)r   s   @r   r   r      sI          J# # # # # # # # #r   r   c                       e Zd ZdZdS )AbstractSingletonzM
    Abstract singleton class for ensuring only one instance of a class.
    N)r   r   r   r    r   r   r   r      s           r   r   )	metaclass)r   abcABCMetatyper   ABCr   r   r   r   <module>r      s    H H 



# # # # #T # # #    9      r   