o
    ni                     @   sd   d Z ddlZddlmZmZ ddlmZ ddlmZ er(ddlm	Z	 dd	l
mZ G d
d deZdS )zSRouter - handle message router (queue).

Router to manage responses from a queue.

    N)TYPE_CHECKINGOptional   )Mailbox   )MessageRouter)Queue)wandb_internal_pb2c                	       sd   e Zd ZU ded< ded< 	ddddddee d	df fd
dZd	ed fddZdddZ  Z	S )MessageQueueRouterzQueue[pb.Record]_request_queuezQueue[pb.Result]_response_queueNrequest_queueresponse_queuemailboxreturnc                    s   || _ || _t j|d d S )N)r   )r   r   super__init__)selfr   r   r   	__class__ ^/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/interface/router_queue.pyr      s   zMessageQueueRouter.__init__z	pb.Resultc                 C   s,   z
| j jdd}W |S  tjy   Y d S w )Nr   )timeout)r   getqueueEmpty)r   msgr   r   r   _read_message!   s   z MessageQueueRouter._read_messagerecord	pb.Recordc                 C   s   | j | d S N)r   put)r   r   r   r   r   _send_message(   s   z MessageQueueRouter._send_messager    )r   r   r   N)
__name__
__module____qualname____annotations__r   r   r   r   r"   __classcell__r   r   r   r   r
      s   
 
r
   )__doc__r   typingr   r   lib.mailboxr   routerr   r   wandb.protor	   pbr
   r   r   r   r   <module>   s    