o
    xi                     @  s   d dl mZ d dlZd dlmZ d dlmZ d dlmZ ddl	m
Z
 er6d dlmZ d d	lmZ d d
lmZ edZG dd de
ZdS )    )annotationsN)BaseProcess)TYPE_CHECKING)override   )InterfaceShared)Queue)wandb_internal_pb2)MailboxHandlewandbc                      sZ   e Zd ZdZ			dd fddZedddddZedddZedddZ  Z	S )InterfaceQueuea  Legacy implementation of InterfaceShared.

    This was used by legacy-service to pass messages back to itself before
    the existence of wandb-core. It may be removed once legacy-service is
    completely removed (including its use in `wandb sync`).

    Since it was used by the internal service, it does not implement
    the "deliver" methods, which are only used in the client.
    Nrecord_qQueue[pb.Record] | Noneresult_qQueue[pb.Result] | NoneprocessBaseProcess | NonereturnNonec                   s    || _ || _|| _t   d S N)r   r   _processsuper__init__)selfr   r   r   	__class__ W/home/ubuntu/.local/lib/python3.10/site-packages/wandb/sdk/interface/interface_queue.pyr       s   zInterfaceQueue.__init__F)nowaitrecord	pb.Recordr   boolc                C  s2   | j r| j  std| jr| j| d S d S )Nz&The wandb backend process has shutdown)r   is_alive	Exceptionr   put)r   r   r   r   r   r   _publish+   s
   zInterfaceQueue._publishMailboxHandle[pb.Result]c                   s   t r   NotImplementedErrorr   r   r   r   r   deliver_async2   s   zInterfaceQueue.deliver_asyncc                 C  s   t r   r'   r)   r   r   r   _deliver9   s   zInterfaceQueue._deliver)NNN)r   r   r   r   r   r   r   r   )r   r    r   r!   r   r   )r   r    r   r&   )
__name__
__module____qualname____doc__r   r   r%   r*   r+   __classcell__r   r   r   r   r      s    r   )
__future__r   loggingmultiprocessing.processr   typingr   typing_extensionsr   interface_sharedr   queuer   wandb.protor	   pb wandb.sdk.mailbox.mailbox_handler
   	getLoggerloggerr   r   r   r   r   <module>   s    
