o
    [h                     @   sf   d dl Z d dlZd dlZddlmZ e eZeZ	ddddZ
dd	 Zdd
dZG dd deZdS )    N   )BaseCommandFis_devserverc                C   s   t | ||d d S )Nr   )run_uvicorn)addrportr    r	   /home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/otree/cli/prodserver1of2.pyrun_asgi_server   s   r   c             	   C   sH   ddl m}m} |d| t||rdndd ddd}||d	}|  d S )
Nr   )ConfigServerzotree.asgi:appwarninginfor   Z
websockets)hostr   Z	log_levelZ
log_configworkersws)config)Zuvicorn.mainr   r   intrun)r   r   r   r   r   r   serverr	   r	   r
   r      s   

r   c                 C   sN   |rdnd}t jdpd}| s||fS | d}t|dkr%||d fS |S )Nz	127.0.0.1z0.0.0.0ZPORTi@  :r   r   )osenvirongetsplitlen)Zcli_addrportr   Zdefault_addrdefault_portpartsr	   r	   r
   get_addr_port$   s   
r   c                   @   s$   e Zd Zdd ZdddddZdS )Commandc                 C   s   |j dddd d S )Naddrport?z$Optional port number, or ipaddr:port)nargshelp)add_argument)selfparserr	   r	   r
   add_arguments0   s   
zCommand.add_argumentsNr   )r!   	verbosityc                O   s@   t |\}}tjddt|gtj d td t|| d S )NZotreeZtimeoutsubprocess)envzRunning prodserver)	r   
subprocessPopenstrr   r   copyprint_functionr   )r&   r!   r)   argskwargsr   r   r	   r	   r
   handle5   s   zCommand.handle)__name__
__module____qualname__r(   r2   r	   r	   r	   r
   r    /   s    r    )F)loggingr   r+   baser   	getLoggerr3   loggerprintr/   r   r   r   r    r	   r	   r	   r
   <module>   s    

