o
    i                     @   s  d 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dl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dlmZ ddlmZ ddlmZ ddgZzej Z W n e!y   ej"Z Y nw e	d Z#de#fddZ$G dd de
Z%dd Z&d d! Z'd"e(dB fd#d$Z)d%e*fd&d'Z+d(eedB  eedB  B fd)d*Z,d+d, Z-d-d. Z.ed/Z/ej0j1Z2d0ee/df d1e/j3d2e/j4fd3d4Z5G d5d6 d6ej6Z7d?d8e*d9e*d:e8fd;d<Z9d@d8e*d9e*de#fd>d=Z:dS )A
    N)wraps)version)Any)Callable)Literal)
NamedTuple)TYPE_CHECKING)Context)LocalContext)Progress)TrackedIterable)Queue)	ParamSpec   )SimpleQueue   )GeneratorResQueueResult)GradioQueueEvent)RegularResQueueResultset_progresslog_message)successinfowarninglevelc                 C   s,   | dkrt jS | dkrtS | dkrt jS d S )Nr   r   r   )grInfoSuccessWarning)r    r    F/home/ubuntu/.local/lib/python3.10/site-packages/spaces/zero/gradio.pymodal(   s   r"   c                   @   sH   e Zd ZU edB ed< eed< edB ed< edd Zed
dd	Z	dS )GradioPartialContextNevent_idin_event_listenerprogressc                   C   s,   t t_ttjd tjdtjd dS )NF)r$   r%   r&   )	tracked_iterable__reduce__r   
__reduce__r#   r   r$   getr%   r&   r    r    r    r!   r)   6   s   


zGradioPartialContext.getcontextc                 C   s.   t j| j t j| j t j| j d S N)r   r$   setr%   r&   )r*   r    r    r!   apply?   s   zGradioPartialContext.apply)r*   r#   )
__name__
__module____qualname__str__annotations__boolr   staticmethodr)   r-   r    r    r    r!   r#   1   s   
 
r#   c                  C   s   t jd } | d u rd S | jS r+   )r   blocksr)   _queue)r5   r    r    r!   get_queue_instanceF   s   r7   c                  C   sd   t  } tjd }| d u rd S |d u rd S | jD ]}|d u rq|D ]}|j|kr.|    S q!qd S r+   )r7   r   r$   r)   active_jobs_id)queuer$   jobeventr    r    r!   	get_eventM   s   

r=   returnc                  C   sn   d} t jd  }d u rd} tj }d u rd S t|dd  }d u r*| r(td dS tr3|j	 }s3J |j
jS )NTFserverz)Gradio: No blocks.server inside a request)r   r5   r)   r
   
root_blockgetattrwarningswarnr	   r?   configport)from_request_contextr5   r?   r    r    r!   get_server_port\   s   
rH   method_namec                 O   sF   t  }|d u rtd d S t|| d }t|sJ ||i | d S )Nz-ZeroGPU: Cannot get Gradio app Queue instance)r7   rC   rD   rB   callable)rI   argskwargsr:   methodr    r    r!   try_process_queue_eventk   s   
rN   	res_queuec                    sz   dt f fdd}tD ],}tt|d  }d u r!td| d qt|s/td| d qtt||| qtt	_
d S )NrI   c                    s    fdd}|S )Nc                     s4   | rt | d tr| dd  } t | | d S )Nr   r   )
isinstancer   putr   rK   rL   )rI   rO   r    r!   rM   z   s   z6patch_gradio_queue.<locals>.rpc_method.<locals>.methodr    )rI   rM   rO   )rI   r!   
rpc_methody   s   z&patch_gradio_queue.<locals>.rpc_methodzZeroGPU: Gradio Queue has no z
 attributezZeroGPU: Gradio Queue z is not callable)r1   QUEUE_RPC_METHODSrB   r   rC   rD   rJ   setattrr'   r   r(   )rO   rT   rI   rM   r    rS   r!   patch_gradio_queueu   s   
rW   c                 C   s2   t t|  }|^}}}}||i |d d dfS )N)iterable_tqdm)superr   r(   )selfresclsbasestate_r    r    r!   r'      s   

r'   c                   C   s   t tjt dkS )Nz4.27.0)r   parser   __version__Versionr    r    r    r!   supports_auth   s   rd   Paramtask	task_argstask_kwargsc                    s(   t tjj fdd}|tj_d S )Nc                     s(    i  t tj_tjj| i |S r+   )_orig_launchr   BlockslaunchrR   rf   rg   rh   r    r!   rk      s   zone_launch.<locals>.launch)r   r   rj   rk   )rf   rg   rh   rk   r    rl   r!   
one_launch   s   
rm   c                   @   s   e Zd Zdd ZdS )	HTMLErrorc                 C   s
   t | jS r+   )r1   message)r[   r    r    r!   __str__   s   
zHTMLError.__str__N)r.   r/   r0   rp   r    r    r    r!   rn      s    rn   Ftitlero   htmlc                 C   s`   t tjj}i }d|v ri |d| i}d|v r!i |ddi}|r%tntj}||fi |S )Nrq   print_exceptionF)inspect	signaturer   Error
parametersrn   )rq   ro   rr   paramsrL   	error_clsr    r    r!   error   s   rz   r   c                 C   sB   t tjj}i }d|v ri |d| i}t|}||fi |S )Nrq   )rt   ru   r   r   rw   r"   )rq   ro   r   rx   rL   info_clsr    r    r!   r      s   )F)r   );__doc__rt   	functoolsr   	packagingr   typingr   r   r   r   r	   rC   gradior   gradio.contextr
   r   gradio.helpersr   r   gradio.queueingr   typing_extensionsr   utilsr   typesr   r   r   rU   r   AttributeErrorr   Levelr"   r#   r7   r=   intrH   r1   rN   rW   r'   rd   re   rj   rk   ri   rK   rL   rm   rv   rn   r3   rz   r   r    r    r    r!   <module>   s^    

	

	"	