o
    ni                     @   s   d Z ddlZddlmZmZmZ ddlm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 ddlmZ edZG dd deZdS )zInterfaceSock - Derived from InterfaceShared using a socket to send to internal thread.

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

    N)TYPE_CHECKINGAnyOptional   )Mailbox)
SockClient   )InterfaceShared)MessageFuture)MessageSockRouter)wandb_internal_pb2)Runwandbc                       s   e Zd ZU ee ed< eed< eed< dededdf fdd	Zdd
dZ	d fddZ
deddfddZddddee ddfddZ	ddddee defddZ  ZS )InterfaceSock
_stream_id_sock_client_mailboxsock_clientmailboxreturnNc                    s$   || _ t j|d d| _d | _d S )Nr   F)r   super__init___process_checkr   )selfr   r   	__class__ `/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/interface/interface_sock.pyr      s   
zInterfaceSock.__init__c                 C   s   t | j| jd| _d S )Nr   )r   r   r   _router)r   r   r   r   _init_router%   s   zInterfaceSock._init_routerrunr   c                    s&   t  | |jjsJ |jj| _d S N)r   _hack_set_run	_settingsrun_idr   )r   r!   r   r   r   r#   (   s   zInterfaceSock._hack_set_runrecordc                 C   s   | j sJ | j |j_d S r"   )r   _info	stream_id)r   r&   r   r   r   _assign-   s   
zInterfaceSock._assignz	pb.Recordlocalc                 C   s   |  | | j| d S r"   )r)   r   send_record_publish)r   r&   r*   r   r   r   _publish1   s   
zInterfaceSock._publishrecc                 C   sF   |  | | js
J | jr| jr| j std| jj||d}|S )Nz&The wandb backend process has shutdown)r*   )r)   r   r   _processis_alive	Exceptionsend_and_receive)r   r-   r*   futurer   r   r   _communicate_async5   s   

z InterfaceSock._communicate_async)r   N)r!   r   r   Nr"   )__name__
__module____qualname__r   str__annotations__r   r   r   r    r#   r   r)   boolr,   r
   r3   __classcell__r   r   r   r   r      s"   
 
r   )__doc__loggingtypingr   r   r   lib.mailboxr   lib.sock_clientr   interface_sharedr	   message_futurer
   router_sockr   wandb.protor   pb	wandb_runr   	getLoggerloggerr   r   r   r   r   <module>   s    
