
    8P[i                       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	Z	d dl
Z
d dlmZ d dlmZ d dlmZmZmZmZ d dlZd dlZd dlmZ d dl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/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5 erd dl6m5Z5 d dl7m8Z8  G d d      Z9 G d d      Z: G d d      Z; G d d      Z	 d	 	 	 	 	 ddZ<y)    )annotationsN)defaultdict)Queue)TYPE_CHECKINGAnyLiteralcast)run_sync)route_utilsroutes)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                T   t        j                         j                  | _        |xs | j                  | _        || _        || _        || _        |j                  | _        d | _	        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closedn_callsrun_timeasyncior#   signal)selfr)   r*   r+   r,   s        ]/var/www/html/chatbot/Makanify-Chatbot-2/venv/lib/python3.12/site-packages/gradio/queueing.py__init__zEvent.__init__6   s     ::<##!-!9  //04	04&+
 mmo    c                4    | j                   j                  dk(  S )Nstream)r*   
connectionr7   s    r8   	streamingzEvent.streamingL   s    ww!!X--r:   c                    | j                   st        d      | j                  ry| j                  j                  y| j
                  | j                  j                  k\  S )Nz6Cannot access if_finished during a non-streaming eventTF)r?   
ValueErrorr2   r*   
time_limitr4   r>   s    r8   is_finishedzEvent.is_finishedP   sK    ~~UVV;;77%}} 2 222r:   N)r)   
str | Noner*   r    r+   fastapi.Requestr,   rD   )__name__
__module____qualname__r9   propertyr?   rC    r:   r8   r#   r#   5   sU    & & & !	&
 &, . . 3 3r:   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)r7   r-   rP   s      r8   r9   zEventQueue.__init__\   s2    "$
,!2#$ JUK
r:   N)r-   strrP   
int | None)rF   rG   rH   r9   rJ   r:   r8   rL   rL   [   s    
r:   rL   c                      e Zd Zd ZddZy)ProcessTimec                .    d| _         d| _        d| _        y rN   process_timecountavg_timer>   s    r8   r9   zProcessTime.__init__g   s    
r:   c                    | xj                   |z  c_         | xj                  dz  c_        | j                   | j                  z  | _        y )Nr   rY   )r7   times     r8   addzProcessTime.addl   s6    T!

a
))DJJ6r:   N)r^   float)rF   rG   rH   r9   r_   rJ   r:   r8   rW   rW   f   s    
7r:   rW   c                     e Zd Z	 d	 	 	 	 	 	 	 	 	 	 	 d dZed        Z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d0d       Zed1d       Ze	 	 	 	 	 	 d2d       Ze	 	 	 	 	 	 d3d       Z	 	 	 	 	 	 	 	 d4dZd5dZy)6r   c                R   t        d      | _        i | _        i | _        t	               | _        i | _        d| _        || _        || _	        g | _
        t	               | _        d | _        t        t              | _        || _        t#        j$                         dk(  rdnd| _        t#        j$                         dk(  rdnd| _        || _        || _        g | _        | j1                  |      | _        i | _        di i| _        d	| _        t;        t=        j>                  d
d            | _         y )Ni  FWindowsg?gMbP?g?g{Gz?	functionsr    GRADIO_ANALYTICS_CACHE_FREQUENCY1)!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   rW   process_time_per_fnlive_updatesplatformsystemsleep_when_freeprogress_update_sleep_when_freemax_sizeblocks_asyncio_tasks_resolve_concurrency_limitdefault_concurrency_limitevent_analyticscached_event_analytics_summaryevent_count_at_last_cacheintosgetenvANAYLTICS_CACHE_FREQUENCY)r7   rs   concurrency_countrn   rx   ry   r|   s          r8   r9   zQueue.__init__s   s!    TN 	) ?A&57 $1O!EG+ 1 057(?LWM
  )'/'8I'Et5??$	1Ct 	, !24)-)H)H%*
& JL/:B.?+)*&),II8#>*
&r:   c                    dd l }	 |j                  dd      5  |j                  t        | j	                                     j                  t        j                        j                  d      	 cd d d        S # 1 sw Y   y xY w# t        $ ro}dt        |      v r[|j                  t        | j	                                     j                  t        j                        j                  d      cY d }~S |d }~ww xY w)Nr   zfuture.no_silent_downcastingT)valueF)copyzNo such keys(s))pandasoption_context	DataFramelistvaluesfillnanpnaninfer_objects	ExceptionrT   )r}   pdes      r8   _get_dfzQueue._get_df   s    	""#A4H LLo&<&<&>!?@V"&&V)"]].    	 CF*LLo&<&<&>!?@V"&&V)"]].
 G	sB   B AA9/	B 9B>B B 	C=A"C80C=6C88C=c                (   t        |      | j                  z
  | j                  k\  r| j                  |      }t        |      | _        |j	                  d      }di i}|D ]  \  }}|d   j
                  }t        j                  |dk(        }t        j                  |dk(        }	||	z   }
|
dkD  r||
z  nd }t        j                  |d   j
                  g d      }||d   |d	   |d
   d|j                  d   d|d   |<    || _
        | j                  S )Nfunctionrd   statussuccessfailedr   rZ   )2   Z   c   r      )50th90th99th)success_rateprocess_time_percentilestotal_requests)lenr   r   r   groupbyr   r   sum
percentileshaper~   )r7   r}   dfgroupedmetricsfn_namefn_dfr   r   failuretotalr   percentiless                r8   compute_analytics_summaryzQueue.compute_analytics_summary   s'    4#A#AA--. o.B-0-AD*jj,G"B'G") x//&&9!45&&8!34')27!)w mmE.,A,H,H,W$0 +A +A +A1
 ',kk!n1$W-  3:D/222r:   c                    d g| j                   z  | _        t        | j                         t        | j                         | j
                  st        | j                         y y N)rm   ro   r   start_processingstart_progress_updatesrs   notify_clientsr>   s    r8   startzQueue.start   sO     6D$9$99t445t::;  "4#6#67 !r:   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-   rP   r|   rk   rL   )r7   block_fnr-   rP   existing_event_queues        r8   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 *r:   c                    d| _         y )NT)rl   r>   s    r8   closezQueue.close   s	    r:   c                    |j                   sy |j                  |_        | j                  |j                     }|j                  |       y r   )r1   r(   event_idrg   r)   
put_nowait)r7   eventevent_messagemessagess       r8   send_messagezQueue.send_message   s>    
 {{!&44U5G5GHM*r:   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   )r   environgetlowerr   )r7   r|   default_concurrency_limit_envs      r8   r{   z Queue._resolve_concurrency_limit   sW     %	1,,,.JJNN.-
 
( 
 -224>899r:   c                x    d}| j                   j                         D ]  }|t        |j                        z  } |S rN   )rk   r   r   rO   )r7   	total_lenevent_queues      r8   __len__zQueue.__len__  s@    	>>EEG 	0K[..//I	0r:   c                
  K   |j                   y| j                  7t        |       | j                  k\  rdd| j                   dt        |        ddfS |j                  rG| j                  j
                  |j                     }|j                  j                  |j                      }n#| j                  j                  |j                      }t        j                  | j                  d |      }| j                  |       |j                  t        j                  |||d       }|j                  J t        j                  |j                        }t        j                  |j                  || j                  j                   j"                  	      }t%        d+i d
|j                  dd ddd|j&                  dd dd d|j(                  d|j(                  d|j*                  ddd|j,                  dg ddd|j.                  d|j0                  dd ddd|j2                  d|j4                  d |j6                  }	t9        |j                  |	||      }
	 t        j:                  | j                  j                   |||	|!       d {   }|j=                  d"      }|t?        ||      \  }}|du rd|d#fS t9        |j                  |||      }
||
_#        |j                  |
j                  |_        | jH                  4 d {    |j                  | jJ                  vr!tM               | jJ                  |j                  <   |j                  | jN                  vr!tQ               | jN                  |j                  <   d d d       d {    | jN                  |j                     jS                  |
jT                         |
| jV                  |
jT                  <   	 | jX                  |
jZ                     }|j^                  ja                  |
       tc        jb                         d&d |jd                  |j                  d'| jf                  |
jT                  <   | ji                  |
jZ                  t        |j^                        d(z
         d)|
jT                  d*fS 7 	# t@        $ r,}tC        tE        |             dtE        |      d$fcY d }~S d }~ww xY w7 7 I# 1 d {  7  sw Y   ZxY w# t\        $ r}t]        d%      |d }~ww xY ww),N)FzNo function index provided.errorFzQueue is full. Max size is z and size is .
queue_fullbodyr*   r,   r+   r+   r+   
route_path	root_pathr*   api_nameapi_visibilityundocumentedbatchr-   rP   inputsoutputs
preprocesspostprocessinputs_as_dicttargetsr(   max_batch_sizetracks_progressjsshow_progresshiddenshow_progress_oncancelscollects_event_dataappr   
gr_requestr*   r   r.   validator_errorr   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^   r   rZ   r   r)   r   Tr   rJ   )5fn_indexrx   r   r)   ry   state_holderblocks_configfnsr   get_fnr   	validatorcompile_gr_requestr+   get_api_call_pathget_root_urlr   r   r    r   r   r   r   r   r   r   r   r   r#   call_process_apir   process_validation_responser   printrT   r.   rj   rg   ThreadQueuerh   rR   r_   r(   ri   rk   r-   KeyErrorrO   appendr^   r   r}   broadcast_estimations)r7   r   r+   r,   session_stater*   r   api_route_pathr   validator_fnr   responsevalidation_responseis_validvalidation_datar   r   s                    r8   pushz
Queue.push  s     == @==$Tdmm)C-dmm_M#d)TUV   KK44T5F5FGM,,00?B/BT48&&r*<<#$77!	J <<+++(::4<<PN#00)++//33I
 ) <<  . hh	
  $ #' yy 		 == "  "00    "00 !# 2 2  !" '#$ "$!4!4%& 

'( %'$:$:)L. !!	E.!,!=!=)#'"  LL( $ '22M+R3/X  5(!+-   	
 
$ % 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	))u.  .c!fc!fg--.	J 	J 	J 	J 	J  	 R	s   IT	1R R.R ;AT	S	T	A3S?T	
SAT	S, 4B!T	R 	S!!SST	ST	T	S)SS)$T	,	T5TTT	c                T    | j                   D ]  }|j                           g | _         y r   )rz   cancel)r7   tasks     r8   _cancel_asyncio_taskszQueue._cancel_asyncio_tasks  s(    '' 	DKKM	 r:   c                    || _         y r   )rq   )r7   r   s     r8   set_server_appzQueue.set_server_app  s	    r:   c                <    d}| j                   D ]
  }||dz  } |S Nr   r   )ro   )r7   r[   workers      r8   get_active_worker_countzQueue.get_active_worker_count  s2    && 	F!
	 r:   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  )r   rk   keysrandomshuffler   rO   rP   rQ   r*   r   r   remove)	r7   concurrency_idsr-   r   first_eventr   eventsr   r   s	            r8   
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)rl   r   r5   sleeprv   ro   rp   r  indexrk   rQ   r^   rS   r*   r_   r}   r(   r   process_eventsr   r)   rz   r  rs   r  r  )	r7   event_batchr  r   r-   r   
start_timer   process_event_tasks	            r8   r   zQueue.start_processing  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)	rl   ro   r   r5   r!  rw   r0   r/   r   )r7   jobevtr  r   s        r8   r   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)ro   r(   r   r"  r+  r,  r/   r-  r  r   r0   )r7   r   	iterablesr(  r)  r.  iterableprogress_units           r8   set_progresszQueue.set_progress  s    
 ## 	0C{ 077h&8:M$- <(4"*..#+??!)%-%6%6!)) &,,];< $3#OCL+/C(0	0r:   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)ro   r(   r   r   )r7   r   r4  r8  r5  r6  r7  r(  r)  r  r   log_messages               r8   r9  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)ro   r)   r(   r1   rp   rk   r   rO   r  r-   r  )r7   r)   r   job_setr(  events_to_remover   r   s           r8   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   )rl   r5   r!  rn   r   rk   r  )r7   r-   s     r8   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   r<   )rankrank_eta
queue_size)rk   rQ   rP   rS   itemsrr   r=   rB   r\   r   minmaxr^   	enumeraterO   r*   r   r   r?   )r7   r-   afterwait_so_farr   time_till_available_workerexpected_end_timesr*   start_timesrZ   r%  time_of_first_completionr@  r   process_time_for_fnrA  deltas                    r8   r  zQueue.broadcast_estimationsJ  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)rB  )r   r   r>   s    r8   
get_statuszQueue.get_status  s     4y
 	
r:   c                T   K   | j                   j                          d {    y7 w)Nr6   )r6   wait)r   s    r8   wait_for_eventzQueue.wait_for_event  s$     ll!!! 	"s   (&(c                J   K   t        j                  |        d {    y7 w)Ntimeout)r5   r!  )rU  s    r8   rU  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)r6   rU  r   )r5   create_taskr   rS  rU  rR  FIRST_COMPLETEDresultr6   clearr	   r   )r   rU  t1t2done_ds          r8   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)strictrW  r6   )	zipr  r5   rY  r   rb  rR  ALL_COMPLETEDr[  )r  timeoutstasksr   rU  r_  r`  ra  awake_eventsclosed_eventsr[  s              r8   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                  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 ]  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   nd| j"                  |j                      d<   t%        | j&                  | j"                         d {     y |}|d   j(                  }
|
t        d	      |d   j*                  }|s|d   j                   nd |
_        	 |d   j.                  |
_        |rct1        t3        |D cg c]%  }|j(                  s|j(                  j(                  ' c}d
di      |
_        |d   j.                  |
_        d|
_        | j6                  }|t9        d      t;        j<                  |
||d       }|
j.                  J t;        j>                  |
j.                        }t;        j@                  |
j.                  ||jB                        }d}	 tE        jF                         }t;        jH                  ||
|||       d {   }tE        jF                         }||z
  }d }|D ]7  }|xjJ                  ||z
  z  c_%        |jL                  s(|jN                   |d<   9 	 |r|jc                  dd      r|}|}|rm|jc                  dd      rZtE        jF                         }|}|}|D ]  }| j                  |te        |jL                  stf        jh                  ntf        jj                  ||d u|jl                  sd n*|jL                  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 ]  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   nd| j"                  |j                      d<   t%        | j&                  | j"                         d {     y 	 tE        jF                         }|d   jL                  rqtr        ju                  |to        tv        |jl                  xs d      |z
  gty        |      z         d {   \  }}|D ]  }| j                  |ta        |d             ! |snto        tz        |d   j(                        }
|rGt1        t3        |D cg c]$  }|j(                  r|j(                  j(                  & c}d
di      |
_        t;        jH                  ||
|||       d {   }tE        jF                         }|D ]7  }|xjJ                  ||z
  z  c_%        |jL                  s(|jN                   |d<   9 	 |r|jc                  dd      rZ|rd}|}n,d}|xs |}t[        ||j]                         j^                        }|D ]  }| j                  |ta        ||             ! nz|rxt}        j~                  |      }t        |      D ]U  \  }}|r-d|v r)t1        t3        |jc                  d      d
di      |   |d<   |d u}| j                  |ta        ||             W tE        jD                         }|d|d   jL                  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 ]  }| j                  |j                          d {    ||v r!|rdnd| j"                  |j                      d<   nd| j"                  |j                      d<   t%        | j&                  | j"                         d {     y # t        $ r Y dw xY w7 E7 # t        $ r Y w xY wc c}w 7 p# t8        $ r}tQ        |tR              r|jT                  rtW        jX                          d }|}|D ]}  }t[        ||j]                         j^                        }| j                  |ta        ||jc                  dd      d             t%        | j&                  | j"                         d {  7    Y d }~d }~ww xY wc c}w # t        $ r Y w xY w7 f7  7 c c}w 7 # t8        $ r?}tQ        |tR              r|jT                  rtW        jX                          d }|}Y d }~d }~ww xY w# t8        $ r;}tQ        |tR              r|jT                  rtW        jX                          Y d }~d }~ww xY w# t        $ r Y Sw xY w7 47 # | 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 ]  }| j                  |j                          d {  7   ||v r!|rdnd| j"                  |j                      d<   nd| j"                  |j                      d<   t%        | j&                  | j"                         d {  7    w xY ww)Nr   F)etar   r   r   r   	cancelledzNo event datard  TServer app has not been set.r   r   r   r   is_generatingr8  r   )outputr8  r   )msgrq  r   rB      )rq  r   r.   rZ   )Br*   r1   r   r   rr   r\   r  rk   r-   rQ   rS   r  ro   r"  rA   reset_iteratorsr(   r}   r
   r   r.   r,   r   r+   r   re  batchedrq   r   r   r   r   r   r   r^   	monotonicr   r4   r?   rC   
isinstancer   print_exception	traceback	print_excr   
get_blocks
show_errorr   r   r   r   process_generatingprocess_streamingrB   r	   r   r   rk  r`   r   r   r   deepcopyrF  r_   )r7   r  r   
begin_timeri  r*   r   r   r   rK  r   r,   r   r   r  r   first_iterationr   r  enderrr   contentold_responseold_errrj  closed_eventrq  r   end_timer6  s                                  r8   r#  zQueue.process_events  s     %'AY\\g	U 
/;;%%,!T%=%== !% 8 8 < E E!% !''.
/  @ ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   U
 **599555L(%,	( ((3H= ALD((3H=t==t?S?STTTUW "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 Y(!,!=!=)'"  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'z ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@   U
 **599555L(%,	( ((3H= ALD((3H=t==t?S?STTTUS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) 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!?@   U
 **599555L(%,	( ((3H= ALD((3H=t==t?S?STTTU  
  6 Ua   M6  Y!!U+q/@/@'')) 
YE+C1A1L1LMG%%/#*")++gw"?$) #4#A#A4CWCWXXX
YYN $TL  
  6 Ug;,&&$ %  )!U3q7H7H%//1#'	 V  	&a'1+<+<##%	&  
  6 U5 ==fQi>V>VWK++q0+%88<K[("":.CG  !1!1!7!7!?@ 
    U
 **599555L(%,	( ((3H= ALD((3H=t==t?S?STTTUsl  q
k Ak Aq
(e #q
$e)%A(q
e,q
Ak e/ /k ?e?e?)B9k #1f fAf f 0Ck iik "Aq
8(i  #q
i)A(q
,i,-q
5A(i: i/-i: k -i: 9)i2"-i: i7Ai: i: $k ;Ek Aq
(l #q
(l)A(q
lq
	e&"q
%e&&q
,q
/	e<8k ;e<<k f 	iB.i>i?ik ik 	i&"q
%i&&q
,q
/i: 2i: :	k4j=7k =kk 	l	0l>l" l		l" 	lq
lq
q
"Aq9(n"!q"	n.+q-n..&qo
A)q>q
?qq
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)Nro  )rq   r   	iteratorslockr   iterators_to_resetr_   )r7   r   r   s      r8   rt  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   )rs   boolr   r   rn   r`   rx   rU   ry   r!   r|   int | None | Literal['not_set'])r   r    )r   r#   r   r   )r|   r  returnrU   )r   r   r+   rE   r,   rD   r  zetuple[bool, str | list[dict[str, Any]], Literal['success', 'error', 'queue_full', 'validator_error']])r   z
routes.App)r  r   )r  z$tuple[list[Event], bool, str] | None)r  None)r   rT   r/  zlist[TrackedIterable] | None)
   T)r   rT   r4  rT   r8  rT   r5  z%Literal['info', 'warning', 'success']r6  zfloat | Noner7  r  )r)   rD   r   rD   r  r  r   )r-   rT   rG  rU   r  r  )r  r   )r   r#   r  rT   )rU  r`   r  rT   )r   r#   rU  r`   r  zLiteral['signal', 'timeout'])r  list[Event]rg  zlist[float]r  ztuple[list[Event], list[Event]])r  r  r   r  r  r`   r  r  )r   rT   ) rF   rG   rH   r9   staticmethodr   r   r   r   r   r   r{   r   r  r  r  r  r  r   r   r2  r9  r=  r   r  rP  rS  rU  rb  rk  r#  rt  rJ   r:   r8   r   r   r   sY    FO)
)
 )
  	)

 )
 )
 $C)
V  &388K*	+	+ $	+)H	,~*'~*2A~*MW~*
~*@!
52*)XF(00 00> "$66 6 	6
 56 6 6, -1)<F	*? 8<@#!@#*4@#	@#D

     ;;$;	%; ; ++'2+	(+ +,mU!mU*.mU<AmU	mU^r:   r   c                   g }g }|rN|j                   rBt        j                  |j                         }t        |j                  j                               }t        | t              rt        |       D ]p  \  }}t        |t              rG|j                  dd       dk(  r2|t        |      k  r||   nd| }i |d|i}|j                  |       ]|j                  ddd       r nJt        |t              r&|j                  dd       d	u r|j                  |        n|j                  ddd       t        d
 |D              |fS )N__type__validate
parameter_parameter_nameT )r	  messager	  Fc              3  D   K   | ]  }|j                  d d      du   yw)r	  NT)r   ).0xs     r8   	<genexpr>z.process_validation_response.<locals>.<genexpr>  s%      ,-j$4's    )r*   inspect	signaturer   
parametersr  rw  rF  dictr   r   r  all)	r  r*   r
  param_namessigir.   
param_namedata_with_names	            r8   r   r     sD    -/OK	bee&3>>..01%t, !45 	JGAt$%$((:t*D
*R&'#k*:&:KN*QC@P  "HD!G*:J!G&&~6&&DR'HI	J 	?D)
D1U:	
 	DR@A 1@  r:   r   )r  z%list[dict[str, Any]] | dict[str, Any]r*   zBlockFunction | Noner  z!tuple[bool, list[dict[str, Any]]])=
__future__r   r5   r   r  r   rt   r  r^   ry  r%   collectionsr   rO   r   r   typingr   r   r   r	   fastapinumpyr   anyio.to_threadr
   gradior   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   block_functionr    gradio.block_functiongradio.blocksr!   r#   rL   rW   r   rJ   r:   r8   <module>r     s    "    	      # & 4 4   $ & $ *
 
 
  *3$#3 #3L
 
	7 	7L Lb  $">"" '"r:   