o
    ni                     @   s   d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
 dd	lmZ er4dd
lmZ ddlmZ edZG dd de
ZdS )zInterfaceQueue - Derived from InterfaceShared using queues to send to internal thread.

See interface.py for how interface classes relate to each other.

    N)BaseProcess)TYPE_CHECKINGOptional   )Mailbox   )InterfaceShared)MessageQueueRouter)Queue)wandb_internal_pb2wandbc                       s   e Zd ZU ed ed< ed ed< ee ed< 					dded ded dee d	ed
ee ddf fddZdddZ	ddddee ddfddZ
  ZS )InterfaceQueuezQueue[pb.Record]record_qzQueue[pb.Result]result_q_mailboxNTprocessprocess_checkmailboxreturnc                    s"   || _ || _t j|||d d S )N)r   r   r   )r   r   super__init__)selfr   r   r   r   r   	__class__ a/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/interface/interface_queue.pyr      s   zInterfaceQueue.__init__c                 C   s.   | j r| jrt| j | j| jd| _d S d S d S )N)r   )r   r   r	   r   _router)r   r   r   r   _init_router)   s
   zInterfaceQueue._init_routerrecordz	pb.Recordlocalc                 C   sD   | j r| jr| j std|r||j_| jr | j| d S d S )Nz&The wandb backend process has shutdown)_process_check_processis_alive	Exceptioncontrolr   r   put)r   r   r   r   r   r   _publish/   s   zInterfaceQueue._publish)NNNTN)r   N)N)__name__
__module____qualname__r   __annotations__r   r   boolr   r   r&   __classcell__r   r   r   r   r      s0   
 
$r   )__doc__loggingmultiprocessing.processr   typingr   r   lib.mailboxr   interface_sharedr   router_queuer	   queuer
   wandb.protor   pb	getLoggerloggerr   r   r   r   r   <module>   s    
