o
    -wi                     @  sl   d Z 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r,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.

    )annotationsN)TYPE_CHECKING)wandb_internal_pb2)Mailbox   )MessageRouter)Queuec                      sH   e Zd ZU ded< ded< 	dd fddZdddZdddZ  ZS )MessageQueueRouterQueue[pb.Record]_request_queueQueue[pb.Result]_response_queueNrequest_queueresponse_queuemailboxMailbox | NonereturnNonec                   s   || _ || _t j|d d S )N)r   )r   r   super__init__)selfr   r   r   	__class__ ]/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/interface/router_queue.pyr      s   zMessageQueueRouter.__init__pb.Result | Nonec                 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   r   r   r   r   r   )r   r   )r"   r#   r   r   )__name__
__module____qualname____annotations__r   r!   r&   __classcell__r   r   r   r   r	      s   
 

r	   )__doc__
__future__r   r   typingr   wandb.protor   pbwandb.sdk.mailboxr   routerr   r   r	   r   r   r   r   <module>   s    