o
    ni                     @   sj   d Z ddlZddlZddlZddlmZ ddlZddlmZm	Z	 ddl
mZ ddlmZ G dd	 d	ZdS )
z2wandb server.

Start up socket transport servers.
    N)Optional   )_startup_debug	port_file)SocketServer)	StreamMuxc                   @   s   e Zd ZU ee ed< ee ed< eed< ee ed< eed< 					ddee d	ee d
ee dee deddfddZ	dee ddfddZ
dedefddZdddZdeddfddZdee ddfddZdddZdS ) WandbServer_pid
_sock_port_debug_sock_server_startup_debug_enabledNT	sock_port
port_fnameaddresspiddebugreturnc                 C   sL   || _ || _|| _|| _|| _d | _t | _|r$t	j
tjt	jd d S d S )N)streamlevel)r
   _port_fname_addressr	   r   r   r   
is_enabledr   loggingbasicConfigsysstdoutDEBUG)selfr   r   r   r   r    r   V/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/service/server.py__init__   s   
zWandbServer.__init__c                 C   s&   | j sd S tj|d}|| j  d S )Nr   )r   r   PortFilewrite)r   r   pfr   r   r    _inform_used_ports,   s   zWandbServer._inform_used_portsmuxc                 C   s   | j pd}| jp	d}t|||d| _z| j  | jj}| jr(|| j W |S W |S  ty6   |	    t
yA   |	   w )Nz	127.0.0.1r   )r'   r   port)r   r
   r   r   startr(   r	   set_pidKeyboardInterruptcleanup	Exception)r   r'   r   r(   r   r   r    _start_sock2   s$   


zWandbServer._start_sockc                 C   s   | j r
| j   d S d S N)r   stop)r   r   r   r    _stop_serversC   s   zWandbServer._stop_serversmessagec                 C   s   | j sd S t| d S r/   )r   r   print_message)r   r2   r   r   r    _startup_debug_printG   s   z WandbServer._startup_debug_printc           
      C   s   t jd}|r
d S tjd}|rId}t| jpd}|rdnd}|p$d}| d| d| d| }d| d	}	| d
 |	|	 | d d S d S )NWANDB_X_DISABLE_SETPROCTITLEsetproctitle   r   sg-zwandb-service()before_setproctitleafter_setproctitle)
osenvirongetwandbutilget_optional_modulestrr	   r4   r6   )
r   r   disable_setproctitler6   service_verr   	transportr(   
service_id
proc_titler   r   r    _setup_proctitleL   s   

zWandbServer._setup_proctitlec                 C   sf   t  }| d | j|d}| d | j|d | d | j|d | d |  |   d S )Nbefore_network)r'   after_networkr"   after_informbefore_loop)r   r4   r.   r&   rJ   loopr1   )r   r'   r   r   r   r    servea   s   



zWandbServer.serve)NNNNT)r   N)__name__
__module____qualname__r   int__annotations__boolr   rD   r!   r&   r   r.   r1   r4   rJ   rP   r   r   r   r    r      s<   
 

r   )__doc__r   r>   r   typingr   rA    r   r   server_sockr   streamsr   r   r   r   r   r    <module>   s    