
    +j\                     :    S SK Jr   " S S\5      r " S S\\S9rg)    )TypeVarc                   t   ^  \ rS rSr\" SS S9r0 rU 4S jrS\\   S\SS4S	 jr	S\\   S\4U 4S
 jjr
SrU =r$ )SingletonMetaclass   T)boundc                    > X R                   ;  a!  [        [        U ]  " U0 UD6U R                   U '   U R                   U    $ N)
_instancessuperr   __call__clsargskwargs	__class__s      </home/wildlama/comfy/ComfyUI/comfy_api/internal/singleton.pyr   SingletonMetaclass.__call__   sD    nn$"'(:C"I##CNN3 ~~c""    r   instancereturnNc                 `    U [         R                  ;  d   S5       eU[         R                  U '   g )Nz0Cannot inject instance after first instantiation)r   r   )r   r   s     r   inject_instance"SingletonMetaclass.inject_instance   s4    ,777 	
>	
7 .6%%c*r   c                    > U [         R                  ;  a&  [        [         U ]   " U0 UD6[         R                  U '   U R                  U    $ )zL
Gets the singleton instance of the class, creating it if it doesn't exist.
)r   r   r   r   r   s      r   get_instanceSingletonMetaclass.get_instance   sX     (33316"C222( &2())#. ~~c""r    )__name__
__module____qualname____firstlineno__r   r   r   r   typer   r   __static_attributes____classcell__r   s   @r   r   r      sT    /0AJ#6T!W 6 6d 6#$q' #q # #r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )ProxiedSingleton   c                 "   > [         TU ]  5         g r
   )r   __init__)selfr   s    r   r+   ProxiedSingleton.__init__    s    r   r   )r   r    r!   r"   r+   r$   r%   r&   s   @r   r(   r(      s     r   r(   )	metaclassN)typingr   r#   r   objectr(   r   r   r   <module>r1      s#    # #8v); r   