
     kh~                    d   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZmZm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mZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- erd dl.m/Z/m0Z0  G d d      Z1 G d d      Z2 G d d      Z3 G d d      Zy)    )annotationsN)defaultdict)Queue)TYPE_CHECKINGLiteralcast)route_utilsroutes
wasm_utils)PredictBodyInternal)Error)TrackedIterable)	EstimationMessageEventMessage
LogMessageProcessCompletedMessageProcessGeneratingMessageProcessStartsMessageProgressMessageProgressUnitServerMessage)LRUCacheerror_payloadrun_coro_in_backgroundsafe_aclose_iteratorsafe_get_lockset_task_name)BlockFunctionBlocksc                  D    e Zd Z	 	 	 	 	 	 	 	 ddZed        Zed        Zy)Eventc                F   t        j                         j                  | _        |xs | j                  | _        || _        || _        || _        |j                  | _        d | _	        d | _
        d| _        d| _        d| _        d| _        t        j                          | _        y )NFTr   )uuiduuid4hex_idsession_hashfnrequestusernameconcurrency_iddataprogressprogress_pendingaliven_callsrun_timeasyncior!   signal)selfr'   r(   r)   r*   s        K/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/gradio/queueing.py__init__zEvent.__init__/   s     ::<##!-!9  //04	04&+
 mmo    c                4    | j                   j                  dk(  S )Nstream)r(   
connectionr4   s    r5   	streamingzEvent.streamingD   s    ww!!X--r7   c                    | j                   st        d      | j                  j                  y| j                  | j                  j                  k\  S )Nz6Cannot access if_finished during a non-streaming eventF)r<   
ValueErrorr(   
time_limitr1   r;   s    r5   is_finishedzEvent.is_finishedH   sA    ~~UVV77%}} 2 222r7   N)r'   
str | Noner(   r   r)   fastapi.Requestr*   rA   )__name__
__module____qualname__r6   propertyr<   r@    r7   r5   r!   r!   .   sU    & & & !	&
 &* . . 3 3r7   r!   c                      e Zd ZddZy)
EventQueuec                d    g | _         || _        || _        d| _        t	        t
              | _        y Nr   )queuer+   concurrency_limitcurrent_concurrencyr   setstart_times_per_fn)r4   r+   rM   s      r5   r6   zEventQueue.__init__R   s2    "$
,!2#$ JUK
r7   N)r+   strrM   
int | None)rC   rD   rE   r6   rG   r7   r5   rI   rI   Q   s    
r7   rI   c                      e Zd Zd ZddZy)ProcessTimec                .    d| _         d| _        d| _        y rK   process_timecountavg_timer;   s    r5   r6   zProcessTime.__init__]   s    
r7   c                    | xj                   |z  c_         | xj                  dz  c_        | j                   | j                  z  | _        y )N   rV   )r4   times     r5   addzProcessTime.addb   s6    T!

a
))DJJ6r7   N)r\   float)rC   rD   rE   r6   r]   rG   r7   r5   rT   rT   \   s    
7r7   rT   c                     e Zd Z	 d	 	 	 	 	 	 	 	 	 	 	 ddZd ZddZd Z	 	 	 	 d dZ	 	 	 	 d!dZd Z		 	 	 	 	 	 	 	 d"dZ
d	 Zd#d
Zd$dZd%dZd&dZd&dZ	 	 	 	 d'dZ	 	 d(	 	 	 	 	 	 	 	 	 	 	 d)dZddd	 	 	 	 	 d*dZd&dZ	 d+	 	 	 	 	 d,dZd-dZed.d       Zed/d       Ze	 	 	 	 	 	 d0d       Ze	 	 	 	 	 	 d1d       Z	 	 	 	 	 	 	 	 d2dZd3dZy)4r   c                   t        d      | _        i | _        i | _        t	               | _        i | _        d| _        || _        || _	        g | _
        t	               | _        d | _        t        t              | _        || _        d| _        d| _        || _        || _        g | _        | j-                  |      | _        i | _        y )Ni  Fg?g?)r   pending_messages_per_sessionpending_event_ids_sessionevent_ids_to_eventsr   pending_message_lockevent_queue_per_concurrency_idstoppedmax_thread_countupdate_intervalsactive_jobsdelete_lock
server_appr   rT   process_time_per_fnlive_updatessleep_when_freeprogress_update_sleep_when_freemax_sizeblocks_asyncio_tasks_resolve_concurrency_limitdefault_concurrency_limitevent_analytics)r4   rm   concurrency_countrh   rp   rq   rt   s          r5   r6   zQueue.__init__i   s     TN 	) ?A&57 $1O!EG+ 1 057(?LWM
  )#/2, 24)-)H)H%*
& JLr7   c                    d g| j                   z  | _        t        | j                         t        | j                         | j
                  st        | j                         y y N)rg   ri   r   start_processingstart_progress_updatesrm   notify_clientsr;   s    r5   startzQueue.start   sO     6D$9$99t445t::;  "4#6#67 !r7   c                &   |j                   }|j                  dk(  r| j                  }n|j                  }|| j                  vrt	        ||      | j                  |<   y |3| j                  |   }|j                  ||j                  k  r||_        y y y )Ndefault)r+   rM   rt   re   rI   )r4   block_fnr+   rM   existing_event_queues        r5   create_event_queue_for_fnzQueue.create_event_queue_for_fn   s    !00%%2 $ > > ( : :!D!DDBL 1CD//? )#'#F#F~#V $66>$';'M'MM9J$6 N *r7   c                    d| _         y )NT)rf   r;   s    r5   closezQueue.close   s	    r7   c                    |j                   sy |j                  |_        | j                  |j                     }|j                  |       y rx   )r/   r&   event_idra   r'   
put_nowait)r4   eventevent_messagemessagess       r5   send_messagezQueue.send_message   s>    
 {{!&44U5G5GHM*r7   c                    |dk7  r|S t         j                  j                  d      x}r|j                         dk(  ryt	        |      S y)a  
        Handles the logic of resolving the default_concurrency_limit as this can be specified via a combination
        of the `default_concurrency_limit` parameter of the `Blocks.queue()` or the `GRADIO_DEFAULT_CONCURRENCY_LIMIT`
        environment variable. The parameter in `Blocks.queue()` takes precedence over the environment variable.
        Parameters:
            default_concurrency_limit: The default concurrency limit, as specified by a user in `Blocks.queu()`.
        not_set GRADIO_DEFAULT_CONCURRENCY_LIMITnoneNr[   )osenvirongetlowerint)r4   rt   default_concurrency_limit_envs      r5   rs   z Queue._resolve_concurrency_limit   sW     %	1,,,.JJNN.-
 
( 
 -224>899r7   c                x    d}| j                   j                         D ]  }|t        |j                        z  } |S rK   )re   valueslenrL   )r4   	total_lenevent_queues      r5   __len__zQueue.__len__   s@    	>>EEG 	0K[..//I	0r7   c                  K   |j                   y| j                  6t        |       | j                  k\  rdd| j                   dt        |        dfS |j                  rG| j                  j
                  |j                     }|j                  j                  |j                      }n#| j                  j                  |j                      }t        j                  | j                  d |      }| j                  |       t        |j                  |||      }||_        |j                  |j                  |_        | j                  4 d {    |j                  | j                  vr!t               | j                  |j                  <   |j                  | j                   vr!t#               | j                   |j                  <   d d d       d {    | j                   |j                     j%                  |j&                         || j(                  |j&                  <   	 | j*                  |j,                     }|j0                  j3                  |       t5        j4                         dd |j6                  |j                  d| j8                  |j&                  <   | j;                  |j,                  t        |j0                        d	z
         d
|j&                  fS 7 7 # 1 d {  7  sw Y   xY w# t.        $ r}t/        d      |d }~ww xY ww)N)FzNo function index provided.FzQueue is full. Max size is z and size is .zEvent not found in queue. If you are deploying this Gradio app with multiple replicas, please enable stickiness to ensure that all requests from the same user are routed to the same instance.queued)r\   statusrW   functionr'   r[   T)fn_indexrp   r   r'   rq   state_holderblocks_configfnsr	   get_fnr   r!   r,   rd   ra   ThreadQueuerb   rO   r]   r&   rc   re   r+   KeyErrorrL   appendr\   api_nameru   broadcast_estimations)	r4   bodyr)   r*   session_stater(   r   r   es	            r5   pushz
Queue.push   s     == 7==$Tdmm)C-dmm_M#d)TUV 
  KK44T5F5FGM,,00?B/BT48&&r*	
 
$ % 2 2D,, 	J 	J  (I(IIGR}11$2C2CD  (F(FFDGE..t/@/@A		J 	J
 	&&t'8'89==eiiH.3  +	==e>R>RSK
 	  'IIK  --+
UYY' 	""5#7#7[=N=N9ORS9STUYY/	J 	J 	J 	J 	J  	 R	so   ELKL
A3K=LK	ALK. 2B!LLK+K!K+&L.	L7LLLc                T    | j                   D ]  }|j                           g | _         y rx   )rr   cancel)r4   tasks     r5   _cancel_asyncio_taskszQueue._cancel_asyncio_tasks	  s(    '' 	DKKM	 r7   c                    || _         y rx   )rk   )r4   apps     r5   set_server_appzQueue.set_server_app  s	    r7   c                <    d}| j                   D ]
  }||dz  } |S Nr   r[   )ri   )r4   rX   workers      r5   get_active_worker_countzQueue.get_active_worker_count  s2    && 	F!
	 r7   c                \   t        | j                  j                               }t        j                  |       |D ]  }| j                  |   }t        |j                        s(|j                  |j                  |j                  k  sN|j                  d   }|j                  }|g}|j                  }|rI||j                  dd  D cg c]  }|j                  |j                  k(  r| c}d |j                  dz
   z  }|D ]  }|j                  j                  |        |||fc S  y c c}w r   )listre   keysrandomshuffler   rL   rM   rN   r(   batchmax_batch_sizeremove)	r4   concurrency_idsr+   r   first_eventr   eventsr   r   s	            r5   
get_eventszQueue.get_events  s-   tBBGGIJ'- 	5N==nMK;$$%--522[5R5RR)//2&>>% %0%6%6qr%:! 88{~~5  4//!3	5 5F $ 4E%%,,U34 un44)	5s   "D)c                  K   	 | j                   st        |       dk(  r(t        j                  | j                         d {    Cd | j
                  vr(t        j                  | j                         d {    y| j                  4 d {    | j                         }d d d       d {    rE|\  }}}|| j
                  | j
                  j                  d       <   | j                  |   }|xj                  dz  c_
        t        j                         }|j                  |d   j                     j                  |       |D ]  }d| j                  |j                      d<     t#        | j$                  |||      }t'        ||d   j(                  |d   j                  j                   |d   j                   |       | j*                  j-                  |       | j.                  r9| j1                  |       n't        j                  | j                         d {    | j                   sd| _         | j3                          y 7 7 7 7 # 1 d {  7  sw Y   xY w7 L# d| _         | j3                          w xY ww)Nr   r[   
processingr   T)rf   r   r2   sleeprn   ri   rj   r   indexre   rN   r\   rP   r(   r]   ru   r&   r   process_eventsr   r'   rr   r   rm   r   r   )	r4   event_batchr   r   r+   r   
start_timer   process_event_tasks	            r5   ry   zQueue.start_processing1  s0    )	)llt9>!--(<(<===t///!--(<(<===  ++ 4 4"&//"3K4 4 4?1FE>EKD$$T%5%5%;%;D%AB"&"E"En"UK33q83!%J226!9<<@DDZP!' QDP,,UYY7AQ)?++VUJ*& "*q	..q	((q	 ''../AB((22>B!--(<(<===K llN  DL&&(M > >4 4 4 4 46 >DL&&(s   J=I+ I5I+ 7I
8I+ II+ I"I+ -I.E.I+ I)I+ /JI+ 
I+ I+ I+ I&II&!	I+ +JJc                  K   | j                   s| j                  D cg c]  }||D ]  }|  }}}t        |      dk(  r(t        j                  | j
                         d{    g|D ]?  }|j                  s|j                  sd|_        | j                  ||j                         A t        j                  | j
                         d{    | j                   syyc c}}w 7 7 w)ah  
        Because progress updates can be very frequent, we do not necessarily want to send a message per update.
        Rather, we check for progress updates at regular intervals, and send a message if there is a pending update.
        Consecutive progress updates between sends will overwrite each other so only the most recent update will be sent.
        Nr   F)	rf   ri   r   r2   r   ro   r.   r-   r   )r4   jobevtr   r   s        r5   rz   zQueue.start_progress_updates]  s      ,,%)%5%5XcTWXScXcXFX6{ammD$H$HIII =))enn-2E*%%eU^^<=
 -- D DEEE ,,X J FsE   C.C$C$3C.$C*%C.<C.	AC.C,C."	C.,C.c           
     H   |y | j                   D ]  }||D ]  }|j                  |k(  sg }|D ]U  }t        |j                  |j                  |j
                  |j                  |j                        }|j                  |       W t        |      |_        d|_
          y )N)r   lengthunitr-   desc)progress_dataT)ri   r&   r   r   r   r   r-   r   r   r   r.   )r4   r   	iterablesr   r   r   iterableprogress_units           r5   set_progresszQueue.set_progressq  s    
 ## 	0C{ 077h&8:M$- <(4"*..#+??!)%-%6%6!)) &,,];< $3#OCL+/C(0	0r7   c                    | j                   D cg c]  }||D ]  }|  }	}}|	D ]4  }
|
j                  |k(  st        |||||      }| j                  |
|       6 y c c}}w )N)logleveldurationvisibletitle)ri   r&   r   r   )r4   r   r   r   r   r   r   r   r   r   r   log_messages               r5   r   zQueue.log_message  sz     "&!1!1T#S_PST#T#TT 		6EyyH$(%# !!%5		6 Us
   A A N)r'   r   c               @  K   | j                   D ]2  }|s|D ](  }|j                  |k(  s|j                  |k(  s"d|_        * 4 | j                  4 d {    g }| j
                  j                         D ]C  }|j                  D ]2  }|j                  |k(  s|j                  |k(  s"|j                  |       4 E |D ]4  }| j
                  |j                     j                  j                  |       6 d d d       d {    y 7 7 # 1 d {  7  sw Y   y xY ww)NF)ri   r'   r&   r/   rj   re   r   rL   r   r+   r   )r4   r'   r   job_setr   events_to_remover   r   s           r5   clean_eventszQueue.clean_events  s"     '' 	*G" *C''<7377h;N$)	*	* ## 
	 
	,.#BBIIK 7(.. 7E))\9UYY(=R(//677
 * 33E4H4HIOOVV
	 
	 
	 
	 
	 
	 
	sY   D#DDDDAD	&AD	4D?D DD	DDDDc                   K   | j                   set        j                  | j                         d{    t	        |       dkD  r"| j
                  D ]  }| j                  |        | j                   sdyy7 Cw)zQ
        Notify clients about events statuses in the queue periodically.
        Nr   )rf   r2   r   rh   r   re   r   )r4   r+   s     r5   r{   zQueue.notify_clients  sa      ,,-- 5 56664y1}&*&I&I ?N..~>? ,,6s   /A7A5A A73A7c                   d}| j                   |   }d}|j                  |j                  k(  rg }|j                  j	                         D ]f  \  }}|| j
                  vrd } nQ|j                  dk(  r|j                  xs d}	n| j
                  |   j                  }	||D 
cg c]  }
|
|	z   	 c}
z  }h |:t        |      dkD  r,t        |      }t        |t        j                         z
  d      }t        |j                        D ]  \  }}|j                  | j
                  v r#| j
                  |j                     j                  nd }||
|||z   |z   nd }|||k\  r1| j!                  |t#        ||t        |j                                     |j                  d}|6|4||j                  z  }|j$                  r|xs d|j                  z  }||z  }d } y c c}
w )Nr   r9   )rankrank_eta
queue_size)re   rN   rM   rP   itemsrl   r:   r?   rY   r   minmaxr\   	enumeraterL   r(   r   r   r<   )r4   r+   afterwait_so_farr   time_till_available_workerexpected_end_timesr(   start_timesrW   r   time_of_first_completionr   r   process_time_for_fnr   deltas                    r5   r   zQueue.broadcast_estimations  s#    99.I12"**k.K.KK!##.#A#A#G#G#I 
KT55515.==H,#%==#5AL#'#;#;B#?#H#HL"@K'2<J-' "
 *5#>P:QTU:U+./A+B(-0,tyy{:A.* %[%6%67 &	#KD% 88t777 ((2;;   '2+.: $k14NN   }!!%!H[EVEVAW ,,4(-@-L+k.K.KK??27a#556E u$"M&	#'s   Gc                ,    t        t        |             S )N)r   )r   r   r;   s    r5   
get_statuszQueue.get_status   s     4y
 	
r7   c                T   K   | j                   j                          d {    y7 w)Nr3   )r3   wait)r   s    r5   wait_for_eventzQueue.wait_for_event  s$     ll!!! 	"s   (&(c                J   K   t        j                  |        d {    y7 w)Ntimeout)r2   r   )r   s    r5   r   zQueue.timeout
  s      mmG$$$ 	%s   #!#c                  K   t        j                  t        j                  |             }t        j                  t        j	                  |            }t        j
                  ||gt         j                         d {   \  }}|D cg c]  }|j                          }}| j                  j                          t        t        d   |d         S 7 Tc c}w w)Nreturn_when)r3   r   r   )r2   create_taskr   r   r   r   FIRST_COMPLETEDresultr3   clearr   r   )r   r   t1t2done_ds          r5   wait_for_event_or_timeoutzQueue.wait_for_event_or_timeout  s        !5!5e!<=  w!78H//
 
a %))q
))G/0$q'::
 *s$   A;C=C>C	C 3CCc           	       K   g }t        | |d      D ]=  \  }}|j                  t        j                  t        j                  ||                   ? t        j                  |t        j                         d {   \  }}|D cg c]  }|j                          }}g }g }	t        || d      D ]-  \  }
}|
dk(  r|j                  |       |	j                  |       / ||	fS 7 jc c}w w)NF)strictr   r3   )	zipr   r2   r   r   r  r   ALL_COMPLETEDr  )r   timeoutstasksr   r   r  r  r  awake_eventsclosed_eventsr  s              r5   wait_for_batchzQueue.wait_for_batch  s      !&(5A 	NE7LL##E$C$CE7$ST	  --
 
a %))q
)) ve< 	,MFE!##E*$$U+		,
 ]**
 *s%   A9C-;C&<C-C(A	C-(C-c                B  K   g }|d   j                   }d}	 |D ]c  }|j                  s| j                  |t        || j                  v r| j                  |   j
                  nd              |j                  |       e |s	 | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   |D ]f  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   Kd| j"                  |j                      d<   h y |}|d   j$                  }
|
t        d	      |d   j&                  }|s|d   j                   nd |
_        	 |d   j*                  |
_        |rct-        t/        |D cg c]%  }|j$                  s|j$                  j$                  ' c}d
di      |
_        |d   j*                  |
_        d|
_        | j2                  }|t5        d      t7        j8                  |
||d       }|
j*                  J t7        j:                  |
j*                        }t7        j<                  |
j*                  ||j>                        }d}	 tA        jB                         }t7        jD                  ||
|||       d {   }tA        jB                         }||z
  }d }|D ]7  }|xjF                  ||z
  z  c_#        |jH                  s(|jJ                   |d<   9 	 |r|jc                  dd      r|}|}|rD|jc                  dd      r1tA        jB                         }|}|}|D ]  }| j                  |te        |jH                  stf        jh                  ntf        jj                  ||d u|jl                  sd n*|jH                  rto        tp        |jl                        |z
  nd               |D cg c]  }|j                  s| }}|s	 | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   |D ]f  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   Kd| j"                  |j                      d<   h y 	 tA        jB                         }|d   jH                  rqtr        ju                  |to        tv        |jl                  xs d      |z
  gty        |      z         d {   \  }}|D ]  }| j                  |ta        |d             ! |snto        tz        |d   j$                        }
|rGt-        t/        |D cg c]$  }|j$                  r|j$                  j$                  & c}d
di      |
_        t7        jD                  ||
|||       d {   }tA        jB                         }|D ]7  }|xjF                  ||z
  z  c_#        |jH                  s(|jJ                   |d<   9 	 |r|jc                  dd      r1|rd}|}nAd}|xs |}tW        ||jY                         jZ                        }t]        j^                  |       |D ]  }| j                  |ta        ||             ! nz|rxt}        j~                  |      }t        |      D ]U  \  }}|r-d|v r)t-        t/        |jc                  d      d
di      |   |d<   |d u}| j                  |ta        ||             W tA        j@                         }|d|d   jH                  s||z
  n|}| j                  |d   j                      j                  |       |D ]  }|| j"                  |j                      d<     | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   |D ]f  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   Kd| j"                  |j                      d<   h y # t        $ r Y  w xY w7 # t        $ r Y Mw xY wc c}w 7 1# t4        $ r}tM        |tN              r|jP                  rtS        jT                          d }|}|D ]i  }tW        ||jY                         jZ                        }t]        j^                  |       | j                  |ta        ||jc                  dd      d             k Y d }~d }~ww xY wc c}w # t        $ r Y 3w xY w7 7 ec c}w 7 # t4        $ r?}tM        |tN              r|jP                  rtS        jT                          d }|}Y d }~d }~ww xY w# t4        $ r;}tM        |tN              r|jP                  rtS        jT                          Y d }~{d }~ww xY w# t        $ r Y w xY w7 # | j                  |d   j                     }|xj                  dz  c_	        |j                  |   }	||	v r|	j                  |       	 d | j                  | j                  j                  |      <   n# t        $ r Y nw xY w|D ]g  }| j                  |j                          d {  7   ||v r!|rdnd| j"                  |j                      d<   Ld| j"                  |j                      d<   i w xY ww)Nr   F)etar[   successfailedr   	cancelledzNo event datar
  TServer app has not been set.)r   r(   r*   r)   )r)   )r)   
route_path	root_path)r   r   
gr_requestr(   r  is_generatingr   r   )outputr   r  )msgr  r  r?      )r  r  r,   rW   )Br(   r/   r   r   rl   rY   r   re   r+   rN   rP   r   ri   r   r>   reset_iteratorsr&   ru   r,   r*   r   r)   r   r  batchedrk   	Exceptionr	   compile_gr_requestget_api_call_pathget_root_urlr  r\   	monotoniccall_process_apir1   r<   r@   
isinstancer   print_exception	traceback	print_excr   
get_blocks
show_errorr   
send_errorr   r   r   r   process_generatingprocess_streamingr?   r   r   r   r  r^   r   r   copydeepcopyr   r]   )r4   r   r   
begin_timer  r(   r  r   r   r   r   r*   r   r  api_route_pathr  first_iterationr|   responseenderrr   contentold_responseold_errr  closed_eventr  errorend_timer   s                                  r5   r   zQueue.process_events4  s     %'AY\\g	L 
/;;%%,!T%=%== !% 8 8 < E E!% !''.
/  B ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   L
 **599555L(%,	( ((3H= ALD((3H=LY "F!9>>D| 11ay))H16F1IMMDDM%ay00  7=Le%**//L$	  &ay00#//C{ >??$77!	J <<+++(::4<<PN#00)--I
  O (!,!=!=)'"  nn&"%+) JENNcEk1N8=8I8I4I1J* HLL%@'8<<#G NN,E#+L!G!- ))!4', %2$D$D%2%D%D'3(4D(@')}} ,0 $)?? &*#r}}%=%O%)  8D#Seu{{E#SL#S'| ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   L
 **599555L(%,	( ((3H= ALD((3H=LU1  $ 0'?44@E@T@T ,
 "&eR]]-@b!AO!S T"%l"3!4A ;7L- 1> " $ 1 1$0$;/7%&!""  ,!#$7a9M9MN (, # 6<&&,1+0:: ).

&&!" ,1!"	)DI *5)E)E #!%'1!&/* $ #nn.%1 RE!NNcEk9N$@E@Q@Q<Q 9RA 8<<#GT "G%F#GN7E*5#..2B2M2MNF))%0) E%%6fgV
 x0 ), 7 HAu6!1)-c8<<3G.VPU.V)W*v 'd2G%%/#)$+ yy{H# "!9.. z)( 
 ((6::8D# OEFND((3NCO ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   L
 **599555L(%,	( ((3H= ALD((3H=L  
  6S   M6  !!U+q/@/@'')) 
E+C1A1L1LMG))#.%%/#*")++gw"?$)
N $TN  
  6Y;,&&$ %  )!U3q7H7H%//1#'	 X  	&a'1+<+<##%	&  
  6% ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@ 
    L
 **599555L(%,	( ((3H= ALD((3H=Ls  ni Ai An(c4  #n#d$An,Ai 2d i d(d B9i :1d +d,Ad 5d Ci g/g3i 8An(g 6#ng-An#A(g; g0-g; 9i :-g; ')g3-g; =g8>Ag;  g; i )E!i 
An (j #n+j,An4	d=n dn	di di d 	g(B"g
i gi 	g*&n)g**n0g; 3g; ;	i4h>8i >ii 	j
0j?j  j

j  	jnjn An7(l n 	l,)n+l,,&nm
A	nnc                  K   | j                   }|t        d      ||j                  vry |j                  4 d {    	 t	        |j                  |          d {    |j                  |= |j
                  j                  |       d d d       d {    y 7 ^7 ?# t        $ r Y Hw xY w7 # 1 d {  7  sw Y   y xY ww)Nr  )rk   r!  	iteratorslockr   iterators_to_resetr]   )r4   r   r   s      r5   r  zQueue.reset_iterators#  s     oo;:;;3==(88 	1 	1*3==+BCCC h'""&&x0	1 	1 		1C 	1 	1 	1 	1 	sz   9CBCB/BBB!(B/	CB-CB	B*'B/)B**B/-C/C5B86C=C)r   )rm   boolrv   r   rh   r^   rp   rR   rq   r   rt   int | None | Literal['not_set'])r   r   )r   r!   r   r   )rt   rC  returnrR   )r   r   r)   rB   r*   rA   rD  ztuple[bool, str])r   z
routes.App)rD  r   )rD  z$tuple[list[Event], bool, str] | None)rD  None)r   rQ   r   zlist[TrackedIterable] | None)
   T)r   rQ   r   rQ   r   rQ   r   z%Literal['info', 'warning', 'success']r   zfloat | Noner   rB  )r'   rA   r   rA   rD  rE  rx   )r+   rQ   r   rR   rD  rE  )rD  r   )r   r!   rD  rQ   )r   r^   rD  rQ   )r   r!   r   r^   rD  zLiteral['signal', 'timeout'])r   list[Event]r  zlist[float]rD  ztuple[list[Event], list[Event]])r   rG  r   rB  r2  r^   rD  rE  )r   rQ   )rC   rD   rE   r6   r|   r   r   r   rs   r   r   r   r   r   r   ry   rz   r   r   r   r{   r   r   staticmethodr   r   r  r  r   r  rG   r7   r5   r   r   h   s@    FO"L"L "L  	"L
 "L "L $C"LH8K*	+	+ $	+)H	,3'32A3MW3	3j!
52*)XF(00 00> "$66 6 	6
 56 6 6, -1)<F	*? 8<@#!@#*4@#	@#D

     ;;$;	%; ; ++'2+	(+ +,mL!mL*.mL<AmL	mL^r7   r   )4
__future__r   r2   r0  r   r   r\   r)  r#   collectionsr   rL   r   r   typingr   r   r   fastapigradior	   r
   r   gradio.data_classesr   gradio.exceptionsr   gradio.helpersr   gradio.server_messagesr   r   r   r   r   r   r   r   r   gradio.utilsr   r   r   r   r   r   gradio.blocksr   r   r!   rI   rT   rG   r7   r5   <module>rT     s    "   	     # & / /  2 2 $ *
 
 
  3 3  3F
 
	7 	7J Jr7   