
    FgD}                    v   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
  S SKJr  S SKJrJrJr  S SKrS SKJrJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  S SK)J*r*J+r+J,r,J-r-J.r.  \(       a  S SK/J0r0J1r1   " S S5      r2 " S S5      r3 " S S5      r4 " S S5      rg)    )annotationsN)defaultdict)Queue)TYPE_CHECKINGLiteralcast)route_utilsroutes
wasm_utils)PredictBodyInternal)Error)TrackedIterable)
API_PREFIX)	EstimationMessageEventMessage
LogMessageProcessCompletedMessageProcessGeneratingMessageProcessStartsMessageProgressMessageProgressUnitServerMessage)LRUCacheerror_payloadrun_coro_in_backgroundsafe_get_lockset_task_name)BlockFunctionBlocksc                  N    \ rS rSr        SS jr\S 5       r\S 5       rSrg)Event.   c                N   [         R                  " 5       R                  U l        U=(       d    U R                  U l        X l        X0l        X@l        UR                  U l        S U l	        S U l
        SU l        SU l        SU l        SU l        [        R                   " 5       U l        g )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        `/Users/admin/workspace/ai/PDFMathTranslate/myenv/lib/python3.13/site-packages/gradio/queueing.py__init__Event.__init__/   s}     ::<##!-!9  //04	04&+
 mmo    c                4    U R                   R                  S:H  $ )Nstream)r)   
connectionr5   s    r6   	streamingEvent.streamingD   s    ww!!X--r9   c                    U R                   (       d  [        S5      eU R                  R                  c  gU R                  U R                  R                  :  $ )Nz6Cannot access if_finished during a non-streaming eventF)r>   
ValueErrorr)   
time_limitr2   r=   s    r6   is_finishedEvent.is_finishedH   sA    ~~UVV77%}} 2 222r9   )r'   r0   r,   r-   r)   r1   r.   r/   r*   r2   r(   r4   r+   N)r(   
str | Noner)   r   r*   fastapi.Requestr+   rE   )	__name__
__module____qualname____firstlineno__r7   propertyr>   rC   __static_attributes__ r9   r6   r!   r!   .   sU    & & & !	&
 &* . . 3 3r9   r!   c                      \ rS rSrSS jrSrg)
EventQueueQ   c                `    / U l         Xl        X l        SU l        [	        [
        5      U l        g Nr   )queuer,   concurrency_limitcurrent_concurrencyr   setstart_times_per_fn)r5   r,   rT   s      r6   r7   EventQueue.__init__R   s.    "$
,!2#$ JUK
r9   )r,   rT   rU   rS   rW   N)r,   strrT   
int | None)rG   rH   rI   rJ   r7   rL   rM   r9   r6   rO   rO   Q   s    
r9   rO   c                  $    \ rS rSrS rSS jrSrg)ProcessTime\   c                .    SU l         SU l        SU l        g rR   process_timecountavg_timer=   s    r6   r7   ProcessTime.__init__]   s    
r9   c                    U =R                   U-  sl         U =R                  S-  sl        U R                   U R                  -  U l        g )N   r_   )r5   times     r6   addProcessTime.addb   s6    T!

a
))DJJ6r9   )rb   ra   r`   N)rf   float)rG   rH   rI   rJ   r7   rg   rL   rM   r9   r6   r\   r\   \   s    
7r9   r\   c                     \ rS rSr S           S S jjrS rS!S jrS r    S"S jr    S#S jr	S r
        S$S	 jrS
 rS%S jrS&S jrS'S jrS(S jrS(S jr    S)S jr  S*           S+S jjrSSS.     S,S jjrS(S jr S-     S.S jjrS/S jr\S0S j5       r\S1S j5       r\      S2S j5       r\      S3S j5       r        S4S jrS5S jrSrg)6r   h   c                |   [        S5      U l        0 U l        0 U l        [	        5       U l        0 U l        SU l        X l        X0l	        / U l
        [	        5       U l        S U l        [        [        5      U l        Xl        SU l        SU l        X@l        XPl        / U l        U R-                  U5      U l        0 U l        g )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   r\   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)r5   ry   concurrency_countrt   r|   r}   r   s          r6   r7   Queue.__init__i   s     TN 	) ?A&57 $1O!EG+ 1 057(?LWM
  )#/2, 24)-)H)H%*
& JLr9   c                    S /U R                   -  U l        [        U R                  5        [        U R                  5        U R
                  (       d  [        U R                  5        g g N)rs   ru   r   start_processingstart_progress_updatesry   notify_clientsr=   s    r6   startQueue.start   sO     6D$9$99t445t::;  "4#6#67 !r9   c                *   UR                   nUR                  S:X  a  U R                  nOUR                  nX R                  ;  a  [	        X#5      U R                  U'   g Ub3  U R                  U   nUR                  b  X4R                  :  a  X4l        g g g )Ndefault)r,   rT   r   rq   rO   )r5   block_fnr,   rT   existing_event_queues        r6   create_event_queue_for_fnQueue.create_event_queue_for_fn   s    !00%%2 $ > > ( : :!D!DDBLCD//? )#'#F#F~#V $66>$'M'MM9J6 N *r9   c                    SU l         g )NT)rr   r=   s    r6   closeQueue.close   s	    r9   c                    UR                   (       d  g UR                  Ul        U R                  UR                     nUR                  U5        g r   )r0   r'   event_idrm   r(   
put_nowait)r5   eventevent_messagemessagess       r6   send_messageQueue.send_message   s>    
 {{!&44U5G5GHM*r9   c                    US:w  a  U$ [         R                  R                  S5      =n(       a   UR                  5       S:X  a  g[	        U5      $ g)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noneNre   )osenvirongetlowerint)r5   r   default_concurrency_limit_envs      r6   r    Queue._resolve_concurrency_limit   sW     %	1,,,.JJNN.-
 
( 
 -224>899r9   c                |    SnU R                   R                  5        H  nU[        UR                  5      -  nM     U$ rR   )rq   valueslenrS   )r5   	total_lenevent_queues      r6   __len__Queue.__len__   s<    	>>EEGK[..//I Hr9   c                @  #    UR                   c  gU R                  b7  [        U 5      U R                  :  a  SSU R                   S[        U 5       S34$ UR                  (       aG  U R                  R
                  UR                     nUR                  R                  UR                      nO#U R                  R                  UR                      n[        R                  " U R                  S U5      nU R                  U5        [        UR                  UUU5      nXl        UR                  c  UR                  Ul        U R                   IS h  vN   UR                  U R                  ;  a!  [        5       U R                  UR                  '   UR                  U R                   ;  a!  [#        5       U R                   UR                  '   S S S 5      IS h  vN   U R                   UR                     R%                  UR&                  5        X`R(                  UR&                  '    U R*                  UR,                     nUR0                  R3                  U5        [4        R4                  " 5       SS UR6                  UR                  S.U R8                  UR&                  '   U R;                  UR,                  [        UR0                  5      S	-
  5        S
UR&                  4$  GN GN! , IS h  vN  (       d  f       GN#= f! [.         a  n[/        S5      UeS nAff = f7f)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)rf   statusr`   functionr(   re   T)fn_indexr|   r   r(   r}   state_holderblocks_configfnsr	   get_fnr   r!   r-   rp   rm   ThreadQueuern   rV   rg   r'   ro   rq   r,   KeyErrorrS   appendrf   api_namer   broadcast_estimations)	r5   bodyr*   r+   session_stater)   r   r   es	            r6   push
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,,,  (I(IIGR}11$2C2CD  (F(FFDGE..t/@/@A	 -,
 	&&t'8'89==eiiH.3  +	==e>R>RSK
 	  'IIK  --+
UYY' 	""5#7#7[=N=N9ORS9STUYY/ -,,,  	 R	so   ELKLA7K%
LK"AL%L  >B"L"L%K=+K.,K=8L 
L
LLLc                X    U R                    H  nUR                  5         M     / U l         g r   )r~   cancel)r5   tasks     r6   _cancel_asyncio_tasksQueue._cancel_asyncio_tasks	  s#    ''DKKM ( r9   c                    Xl         g r   )rw   )r5   apps     r6   set_server_appQueue.set_server_app  s    r9   c                D    SnU R                    H  nUc  M  US-  nM     U$ Nr   re   )ru   )r5   ra   workers      r6   get_active_worker_countQueue.get_active_worker_count  s-    &&F!
 ' r9   c                   [        U R                  R                  5       5      n[        R                  " U5        U H  nU R                  U   n[        UR                  5      (       d  M.  UR                  b  UR                  UR                  :  d  MW  UR                  S   nUR                  nU/nUR                  nU(       aO  UUR                  SS   Vs/ s H!  nUR                  UR                  :X  d  M  UPM#     snS UR                  S-
   -  nU H  nUR                  R                  U5        M      XgU4s  $    g s  snf r   )listrq   keysrandomshuffler   rS   rT   rU   r)   batchmax_batch_sizeremove)	r5   concurrency_idsr,   r   first_eventr   eventsr   r   s	            r6   
get_eventsQueue.get_events  s)   tBBGGIJ'-N==nMK;$$%%--522[5R5RR)//2&>>% %0%6%6qr%:%:E 88{~~5 %: 4//!3	5 5F $E%%,,U3 $ n44) .s   E 8E c                V  #     U R                   (       Gd6  [        U 5      S:X  a*  [        R                  " U R                  5      I S h  vN   MK  S U R
                  ;  a*  [        R                  " U R                  5      I S h  vN   M  U R                   IS h  vN   U R                  5       nS S S 5      IS h  vN   W(       GaJ  Uu  p#nX R
                  U R
                  R                  S 5      '   U R                  U   nU=R                  S-  sl
        [        R                  " 5       nUR                  US   R                     R                  U5        U H  nSU R                  UR                      S'   M!     [#        U R$                  X#U5      n['        UUS   R(                  US   R                  R                   US   R                   U5        U R*                  R-                  U5        U R.                  (       a  U R1                  U5        O([        R                  " U R                  5      I S h  vN   U R                   (       d  GM6  SU l         U R3                  5         g  GN GN GN GN! , IS h  vN  (       d  f       GN= f NW! SU l         U R3                  5         f = f7f)Nr   re   
processingr   T)rr   r   r3   sleeprz   ru   rv   r   indexrq   rU   rf   rW   r)   rg   r   r'   r   process_eventsr   r(   r~   r   ry   r   r   )	r5   event_batchr   r   r,   r   
start_timer   process_event_tasks	            r6   r   Queue.start_processing1  s    )	)lllt9>!--(<(<===t///!--(<(<===  +++"&//"3K ,+ 4?1F>EK$$T%5%5%;%;D%AB"&"E"En"UK33q83!%J226!9<<@DDZP!'DP,,UYY7A "()?++VJ*& "*q	..q	((q	 ''../AB((22>B!--(<(<===K lllN  DL&&(M > > ,+++6 >DL&&(s   J)AJ I$	9J I'J I*J I0.J 9I-:E9J 3J4J J)$J 'J *J -J 0J6I97J	J J&&J)c                $  #    U R                   (       d  U R                   VVs/ s H  oc  M  U  H  o"PM     M     nnn[        U5      S:X  a*  [        R                  " U R
                  5      I Sh  vN   Mu  U HK  nUR                  (       d  M  UR                  (       d  M)  SUl        U R                  XDR                  5        MM     [        R                  " U R
                  5      I Sh  vN   U R                   (       d  M  ggs  snnf  N N!7f)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)	rr   ru   r   r3   r   r{   r/   r.   r   )r5   jobevtr   r   s        r6   r   Queue.start_progress_updates]  s      ,,%)%5%5X%5ccTWScTWc%5FX6{ammD$H$HIII)))ennn-2E*%%e^^<  
 -- D DEEE ,,,X J FsE   !DDD5D1D2DD#A	D,D-D	DDc                R   Uc  g U R                    H  nUc  M  U H  nUR                  U:X  d  M  / nU HS  n[        UR                  UR                  UR
                  UR                  UR                  S9nUR                  U5        MU     [        US9Ul        SUl
        M     M     g )N)r   lengthunitr.   desc)progress_dataT)ru   r'   r   r   r   r   r.   r   r   r   r/   )r5   r   	iterablesr   r   r   iterableprogress_units           r6   set_progressQueue.set_progressq  s    
 ##C{77h&8:M$-(4"*..#+??!)%-%6%6!)) &,,]; %. $3#OCL+/C(  $r9   c           	         U R                    VVs/ s H  owc  M  U  H  oPM     M     n	nnU	 H3  n
U
R                  U:X  d  M  [        UUUUUS9nU R                  X5        M5     g s  snnf )N)logleveldurationvisibletitle)ru   r'   r   r   )r5   r   r   r   r   r   r   r   r   r   r   log_messages               r6   r   Queue.log_message  sq     "&!1!1T!1##PS#PS#!1TEyyH$(%# !!%5  Us
   A&A&N)r(   r   c               v  #    U R                    H>  nU(       d  M  U H,  nUR                  U:X  d  UR                  U:X  d  M%  SUl        M.     M@     U R                   IS h  vN   / nU R
                  R                  5        HI  nUR                   H6  nUR                  U:X  d  UR                  U:X  d  M%  UR                  U5        M8     MK     U H5  nU R
                  UR                     R                  R                  U5        M7     S S S 5      IS h  vN   g  N N! , IS h  vN  (       d  f       g = f7f)NF)ru   r(   r'   r0   rv   rq   r   rS   r   r,   r   )r5   r(   r   job_setr   events_to_remover   r   s           r6   clean_eventsQueue.clean_events  s      ''Gw"C''<7377h;N$)	 # ( ###,.#BBIIK(..E))\9UYY(=R(//6 /  L
 *33E4H4HIOOVV * $#####sZ   D9#D9D9!D"D9%AD6AD
D9DD9D9D6%D(&D62D9c                  #    U R                   (       do  [        R                  " U R                  5      I Sh  vN   [	        U 5      S:  a$  U R
                   H  nU R                  U5        M     U R                   (       d  Mn  gg NL7f)zA
Notify clients about events statuses in the queue periodically.
Nr   )rr   r3   r   rt   r   rq   r   )r5   r,   s     r6   r   Queue.notify_clients  s^      ,,-- 5 56664y1}&*&I&IN..~> 'J ,,,6s   5BBABBc                   SnU R                   U   nSnUR                  UR                  :X  a  / nUR                  R	                  5        Ho  u  pxXpR
                  ;  a  S n  O[UR                  S:X  a  UR                  =(       d    Sn	OU R
                  U   R                  n	UU V
s/ s H  oU	-   PM	     sn
-  nMq     Ub<  [        U5      S:  a-  [        U5      n[        U[        R                  " 5       -
  S5      n[        UR                  5       H  u  pUR                  U R
                  ;   a#  U R
                  UR                     R                  OS nUb  Ub
  Ub  X-   U-   OS nUb  X:  a-  U R!                  U[#        X[        UR                  5      S95        UR                  c  SnM  UbA  Ub>  XR                  -  nUR$                  (       a  U=(       d    SUR                  -  nUU-  nM  S nM     g s  sn
f )Nr   r;   )rankrank_eta
queue_size)rq   rU   rT   rW   itemsrx   r<   rB   rb   r   minmaxrf   	enumeraterS   r)   r   r   r>   )r5   r,   afterwait_so_farr   time_till_available_workerexpected_end_timesr)   start_timesr`   r   time_of_first_completionr  r   process_time_for_fnr  deltas                    r6   r   Queue.broadcast_estimations  s    99.I12"**k.K.KK!##.#A#A#G#G#I55515.==H,#%==#5AL#'#;#;B#?#H#HL"@K'@K*-' " $J *5#>P:QTU:U+./A+B(-0,tyy{:A.* %[%6%67KD 88t777 ((2;;   '2+.: $14NN   }!!%![EVEVAW ,,4(-@-L+.K.KK??27a#556E u$"M 8's   &G8c                &    [        [        U 5      S9$ )N)r  )r   r   r=   s    r6   
get_statusQueue.get_status   s     4y
 	
r9   c                T   #    U R                   R                  5       I S h  vN   g N7f)Nr4   )r4   wait)r   s    r6   wait_for_eventQueue.wait_for_event  s#     ll!!! 	"s   (&(c                L   #    [         R                  " U 5      I S h  vN   g N7f)Ntimeout)r3   r   )r  s    r6   r  Queue.timeout
  s     mmG$$$ 	%s   $"$c                  #    [         R                  " [        R                  U 5      5      n[         R                  " [        R	                  U5      5      n[         R
                  " X#/[         R                  S9I S h  vN u  pEU Vs/ s H  ofR                  5       PM     nnU R                  R                  5         [        [        S   US   5      $  NUs  snf 7f)Nreturn_when)r4   r  r   )r3   create_taskr   r  r  r  FIRST_COMPLETEDresultr4   clearr   r   )r   r  t1t2done_ds          r6   wait_for_event_or_timeoutQueue.wait_for_event_or_timeout  s        !5!5e!<=  w!78H//
 
 %))Dq
D)G/0$q'::
 *s$   A:C<C=
CC 3CCc           	       #    / n[        XSS9 H=  u  p4UR                  [        R                  " [        R                  X45      5      5        M?     [        R                  " U[        R                  S9I S h  vN u  pVU Vs/ s H  owR                  5       PM     nn/ n/ n	[        XPSS9 H/  u  pU
S:X  a  UR                  U5        M  U	R                  U5        M1     X4$  Nis  snf 7f)NF)strictr  r4   )	zipr   r3   r!  r   r*  r  ALL_COMPLETEDr#  )r   timeoutstasksr   r  r'  r(  r)  awake_eventsclosed_eventsr#  s              r6   wait_for_batchQueue.wait_for_batch  s      !&5ANELL##E$C$CE$ST B  --
 
 %))Dq
D) e<MF!##E*$$U+	 =
 **
 *s%   A4C'6C 7
C'C"AC'"C'c                  #    / nUS   R                   nSn U Hh  nUR                  (       d  M  U R                  U[        XPR                  ;   a  U R                  U   R
                  OS S95        UR                  U5        Mj     U(       d   U R                  US   R                     nU=R                  S-  sl	        UR                  U   n	X9;   a  U	R                  U5         S U R                  U R                  R                  U5      '   U Hn  nU R                  UR                   5      I S h  vN   Xt;   a'  U(       a  SOSU R"                  UR                      S'   MR  SU R"                  UR                      S'   Mp     g UnUS   R$                  n
U
c  [        S	5      eUS   R&                  nU(       d  US   R                   OS U
l         US   R*                  U
l        U(       ak  [-        [/        U Vs/ s H+  owR$                  (       d  M  UR$                  R$                  PM-     snS
S065      U
l        US   R*                  U
l        SU
l        U R2                  nUc  [5        S5      e[6        R8                  " U
UUS S9nU
R*                  c   e[6        R:                  " U
R*                  [<         S3UR>                  S9nSn [@        RB                  " 5       n[6        RD                  " UU
UUUS9I S h  vN n[@        RB                  " 5       nUU-
  nS nU HB  nU=RF                  UU-
  -  sl#        URH                  (       d  M.  URJ                  (       + US'   MD     U(       Ga>  URc                  SS5      (       Ga&  UnUnU(       Ga  URc                  SS5      (       Ga  [@        RB                  " 5       nUnUnU H  nU R                  U[e        URH                  (       d  [f        Rh                  O[f        Rj                  UUS LURl                  (       d  S O/URH                  (       a  [o        [p        URl                  5      U-
  OS S95        M     U Vs/ s H  owR                  (       d  M  UPM     nnU(       d   U R                  US   R                     nU=R                  S-  sl	        UR                  U   n	X9;   a  U	R                  U5         S U R                  U R                  R                  U5      '   U Hn  nU R                  UR                   5      I S h  vN   Xt;   a'  U(       a  SOSU R"                  UR                      S'   MR  SU R"                  UR                      S'   Mp     g  [@        RB                  " 5       nUS   RH                  (       au  [r        Ru                  U[o        [v        URl                  =(       d    S5      U-
  /[y        U5      -  5      I S h  vN u  nnU H  nU R                  U[a        USS95        M     U(       d  GO[o        [z        US   R$                  5      n
U(       aQ  [-        [/        U Vs/ s H,  nUR$                  (       d  M  UR$                  R$                  PM.     snS
S065      U
l        [6        RD                  " UU
UUUS9I S h  vN n[@        RB                  " 5       nU HB  nU=RF                  UU-
  -  sl#        URH                  (       d  M.  URJ                  (       + US'   MD     U(       a  URc                  SS5      (       a  GM  U(       a  SnUnOGSnU=(       d    Un[W        UURY                  5       RZ                  5      n[\        R^                  " U5        U H  nU R                  U[a        UUS95        M     OU(       a  [|        R~                  " U5      n[        U5       HZ  u  nnU(       a/  SU;   a)  [-        [/        URc                  S5      S
S065      U   US'   US LnU R                  U[a        UUS95        M\     [@        R@                  " 5       nUbk  US   RH                  (       d  UU-
  OUnU R                  US   R                      R                  U5        U H  nUU R"                  UR                      S'   M!     U R                  US   R                     nU=R                  S-  sl	        UR                  U   n	X9;   a  U	R                  U5         S U R                  U R                  R                  U5      '   U Hn  nU R                  UR                   5      I S h  vN   Xt;   a'  U(       a  SOSU R"                  UR                      S'   MR  SU R"                  UR                      S'   Mp     g ! [         a     GNf = f GN! [         a     GNf = fs  snf  GN! [4         a  n[M        U[N        5      (       a  URP                  (       a  [R        RT                  " 5         S nUnU Hh  n[W        UURY                  5       RZ                  5      n[\        R^                  " U5        U R                  U[a        UURc                  SS5      SS95        Mj      S nAGN-S nAff = fs  snf ! [         a     GNf = f GN GNs  snf  GN
! [4         aJ  n[M        U[N        5      (       a  URP                  (       a  [R        RT                  " 5         S nUn S nAGNS nAff = f! [4         aF  n[M        U[N        5      (       a  URP                  (       a  [R        RT                  " 5          S nAGNS nAff = f! [         a     GNBf = f GN#! U R                  US   R                     nU=R                  S-  sl	        UR                  U   n	X9;   a  U	R                  U5         S U R                  U R                  R                  U5      '   O! [         a     Of = fU Ho  nU R                  UR                   5      I S h  vN    Xt;   a'  U(       a  SOSU R"                  UR                      S'   MS  SU R"                  UR                      S'   Mq     f = f7f)Nr   F)etare   successfailedr   	cancelledzNo event datar-  TServer app has not been set.)r   r)   r+   r*   z/queue/join)r*   
route_path	root_path)r   r   
gr_requestr)   r=  is_generatingr   r   )outputr   r8  )msgr@  r8  rB      )r@  r8  r-   r`   )Br)   r0   r   r   rx   rb   r   rq   r,   rU   rW   r   ru   r   rA   reset_iteratorsr'   r   r-   r+   r   r*   r   r.  batchedrw   	Exceptionr	   compile_gr_requestget_root_urlr   r=  rf   	monotoniccall_process_apir2   r>   rC   
isinstancer   print_exception	traceback	print_excr   
get_blocks
show_errorr   
send_errorr   r   r   r   process_generatingprocess_streamingrB   r   r   r   r4  ri   r   r   copydeepcopyr
  rg   )r5   r   r   
begin_timer2  r)   r8  r   r   r  r   r+   r   r>  r=  first_iterationr   responseenderrr   contentold_responseold_errr3  closed_eventr@  errorend_timer   s                                 r6   r   Queue.process_events4  s8     %'AY\\f	L;;;%%,!%=%== !% 8 8 < E E!% !''.    @ ==fQi>V>VWK++q0+%88<K("":.CG  !1!1!7!7!?@  
 **599555(%,	( ((3H= ALD((3H=  W "F!9>>D| 11ay))H16F1IMMDDM%ay00  7=Lve/%**//vL$	  &ay00#//C{ >??$77!	J <<+++#00(\5--I
  O (!,!=!=)'"  nn&"%+)ENNcEk1N8=8I8I4I1 ** HLL%@@'8<<#G#G NN,E#+L!G!-))!4', %2$D$D%2%D%D'3(4D(@')}} ,0 $)?? &*#r}}%=%O%) ".  8D#S|e{{E|L#S'| ==fQi>V>VWK++q0+%88<K("":.CG  !1!1!7!7!?@  
 **599555(%,	( ((3H= ALD((3H=  U1  $ 0'?44@E@T@T ,
 "&eR]]-@b!AO!S T"%l"3!4A ;7L- 1> $ 1 1$0$;/7%&!" 1>  ,!#$7a9M9MN (, # 6<&&5;E+0:: )8

5;&&!" ,1!"	)DI *5)E)E #!%'1!&/* $ #nn.%1E!NNcEk9N$@E@Q@Q<Q 9 &2A 8<<#G#GT "G%F#GN7E*5#..2B2M2MNF))%0)E%%6fgV *
 x0 ), 7HAu6!1)-c8<<3G.VPU.V)W*v 'd2G%%/#)$+ !8 yy{H# "!9.. z)( 
 ((6::8D#EFND((3NC $ ==fQi>V>VWK++q0+%88<K("":.CG  !1!1!7!7!?@  
 **599555(%,	( ((3H= ALD((3H=    
  6Q   M4  !!U++q/@/@''))E+C1A1L1LMG))#.%%/#*")++gw"?$) *N $TN  
  6Y;,&&$ %  )!U33q7H7H%//1#'	 X  	&a''1+<+<##%	&  
  6% ==fQi>V>VWK++q0+%88<K("":.CG  !1!1!7!7!?@ 
   
 **599555(%,	( ((3H= ALD((3H=  s$  rl Al Ar$(f# #r/f40ArAl f7 !l 6gg(Bl 0g 7g8Ag g  C8l j0j6	l  Ar(j ?#r"j+#Ar5A3j9 (j.)1j9 l 2j9 j1'j1+j9 ,j6-Aj9 6j9 l /F l /Ar(m# .#rm4Ar#
f1-r0f11r7
gl gl g 
jB-jl jl 
j($r'j((r.j9 1j9 9
l?ll ll 
m ;mm7 m  m7 #
m1-r0m11r7Aq>(o87q>8
pq>p&q>+p.
,Aq>>rc                6  #    U R                   nUc  [        S5      eXR                  ;  a  g UR                   IS h  vN   UR                  U	 UR                  R                  U5        S S S 5      IS h  vN   g  N= N! , IS h  vN  (       d  f       g = f7f)Nr;  )rw   rE  	iteratorslockiterators_to_resetrg   )r5   r   r   s      r6   rC  Queue.reset_iterators"  sq     oo;:;;==(888h'""&&x0 8 	 888 	sE   ;BA;B)A?*B5A=6B=B?BBBB)r~   ru   r}   r   rv   r   ro   rq   ry   r|   rs   rn   rp   rm   rx   r{   rw   rz   rr   rt   )r   )ry   boolr   r   rt   ri   r|   rZ   r}   r   r   int | None | Literal['not_set'])r   r   )r   r!   r   r   )r   rg  returnrZ   )r   r   r*   rF   r+   rE   rh  ztuple[bool, str])r   z
routes.App)rh  r   )rh  z$tuple[list[Event], bool, str] | None)rh  None)r   rY   r   zlist[TrackedIterable] | None)
   T)r   rY   r   rY   r   rY   r   z%Literal['info', 'warning', 'success']r   zfloat | Noner   rf  )r(   rE   r   rE   rh  ri  r   )r,   rY   r  rZ   rh  ri  )rh  r   )r   r!   rh  rY   )r  ri   rh  rY   )r   r!   r  ri   rh  zLiteral['signal', 'timeout'])r   list[Event]r0  zlist[float]rh  ztuple[list[Event], list[Event]])r   rk  r   rf  rU  ri   rh  ri  )r   rY   ) rG   rH   rI   rJ   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  staticmethodr  r  r*  r4  r   rC  rL   rM   r9   r6   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+	(+ +,lL!lL*.lL<AlL	lL\r9   r   )5
__future__r   r3   rS  r   r   rf   rL  r$   collectionsr   rS   r   r   typingr   r   r   fastapigradior	   r
   r   gradio.data_classesr   gradio.exceptionsr   gradio.helpersr   gradio.route_utilsr   gradio.server_messagesr   r   r   r   r   r   r   r   r   gradio.utilsr   r   r   r   r   gradio.blocksr   r   r!   rO   r\   rM   r9   r6   <module>ry     s    "   	     # & / /  2 2 $ * )
 
 
  3 3  3F
 
	7 	7E Er9   