o
    i                     @   s   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 ddlmZ dd	lmZ dd
lmZ dZedZedZG dd dee Zdeg ef dedef fddZdd ZeedZdeeef dejdejde
fddZdS )
    )partialN)SimpleQueue)PicklingErrorThread)Any)Callable)TypeVar)	ParamSpecz)Make sure Gradio version is at least 3.46TPc                       s6   e Zd Z fddZdef fddZdd Z  ZS )r   c                    s   t  j|dtdi d S )Nctxfork)super__init__multiprocessingget_context)selfargs	__class__ @/home/ubuntu/.local/lib/python3.10/site-packages/spaces/utils.pyr      s   zSimpleQueue.__init__objc              
      sT   z	t  | W d S  ty     ty) } zt|}d|vr! t|d }~ww )Npickle)r   putr   	Exceptionstr)r   r   emessager   r   r   r      s   zSimpleQueue.putc                 C   s<   t | dd  }d u rd S z|  W d S  ty   Y d S w )N_wlock)getattrrelease
ValueError)r   lockr   r   r   wlock_release%   s   zSimpleQueue.wlock_release)__name__
__module____qualname__r   r   r   r&   __classcell__r   r   r   r   r      s    r   fnreturn.c                    s    fdd}|S )Nc                     s     S )Nr   )r   r+   r   r   drop/   s   zdrop_params.<locals>.dropr   )r+   r.   r   r-   r   drop_params.   s   r/   c                  C   s,   z
ddl m}  W | jS  ty   ttw )Nr   LocalContext)gradio.contextr1   ImportErrorRuntimeErrorGRADIO_VERSION_ERROR_MESSAGErequestr0   r   r   r   gradio_request_var4   s   r7   SPACES_ZERO_GPU_DEBUGr   kwargsc                 O   s   t | ||dS )N)targetr   r9   r   )r+   r   r9   r   r   r   create_thread@   s   r;   )__doc__	functoolsr   r   multiprocessing.queuesr   _SimpleQueuer   r   	threadingr   typingr   r	   r
   typing_extensionsr   r5   r   r   r/   r7   printdebugr   r9   r;   r   r   r   r   <module>   s$    "
*