
    +jP                       U d Z 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 ddlmZ ddlZddlZddlmZ dd	lmZ dd
lmZ dQdZdQdZdRdZdSdZdTdZ  G d d          Z! e	j"                    Z#de$d<   dZ% e            Z&de$d<    ej'                    Z(dUd&Z) G d' d(e*          Z+ ed)d*+          Z,d,e$d-<    ed.d+          Z-d/e$d0<    G d1 d2          Z. G d3 d4          Z/dVd6Z0dWd8Z1dXd=Z2dYd?Z3	 dZd*d@d[dFZ4d\dGZ5 e            	 dZddHdd*dId]dJ            Z6 edKdLdMdN           G dO dP                      Z7dS )^z'Caching utilities for Gradio functions.    )annotationsN)OrderedDict)Callable)
ContextVar)Any)document)Image)	BaseModelobjr   returnstrc                    t          j                    }|                    t          |                               d                     |                                S )Nzutf-8)hashlibsha256update
_hash_reprencode	hexdigest)r   hashers     R/home/wildlama/visual-decline/.venv/lib/python3.11/site-packages/gradio/caching.py
cache_hashr      sG    ^F
MM*S//((11222    c           	     \
   | dS t          | t          t          t          t          f          rt          |           S t          | t                    r&t          j        |           	                                S t          | t          t          f          r@d                    d | D                       }t          | t                    rdnd}| d| dS t          | t                    rSt          d |                                 D             d	 
          }d                    d |D                       }d| dS t          | t                     r2t          d | D                       }dd                    |           dS t          | t"          j                  rLd| j         d| j         dt          j        |                                           	                                 dS t          | t,          j                  rLd| j         d| j         dt          j        |                                           	                                 dS t          | t2          j                  rt7          t          | j                            }t          j        t2          j                            | d                                                                                    	                                }t          j        t2          j                            | j                                                                                             	                                }d| d| d| dS t          | tB                    r!t7          | "                                          S t          | t2          j#                  rt7          | j$                  }t          j        t2          j                            | d                                                                                    	                                }t          j        t2          j                            | j                                                                                             	                                }d| d| d| dS 	 t          tK          |                     S # tL          $ r Y nw xY wtO          | d          rt7          tQ          |                     S tM          dtS          |           j*         d          )NNone,c              3  4   K   | ]}t          |          V  d S Nr   .0xs     r   	<genexpr>z_hash_repr.<locals>.<genexpr>&   s(      441A444444r   LT[]c              3  X   K   | ]%\  }}t          |          t          |          fV  &d S r   )reprr   r    kvs      r   r"   z_hash_repr.<locals>.<genexpr>+   s7      >>$!Qd1ggz!}}%>>>>>>r   c                    | d         S Nr    )r!   s    r   <lambda>z_hash_repr.<locals>.<lambda>,   s
    !A$ r   )keyc              3  *   K   | ]\  }}| d | V  dS ):Nr.   r)   s      r   r"   z_hash_repr.<locals>.<genexpr>.   s0      661A666666r   zD{}c              3  4   K   | ]}t          |          V  d S r   r   r   s     r   r"   z_hash_repr.<locals>.<genexpr>1   s(      22z!}}222222r   zS{znp()zPIL(F)indexzDF(zSeries(__dict__z%gr.cache: cannot hash object of type zA. Preprocess your inputs into hashable types before passing them.)+
isinstanceboolintfloatr   r(   bytesr   r   r   listtuplejoindictsorteditemssetnpndarrayshapedtypetobytesr	   modesizepd	DataFramer   columnsutilhash_pandas_objectto_numpyr6   r
   
model_dumpSeriesnamehash	TypeErrorhasattrvarstype__name__)	r   innertagpairsrB   col_hashval_hashidx_hash	name_hashs	            r   r   r      s   
{v#c5#.// Cyy#u /~c"",,...#e}%% !4444444T**3cc      #t >>#))++>>>
 
 
 6666666U#s )22c22222(SXXe__((((#rz"" 
V#)VVciVV'.*G*G*Q*Q*S*SVVV	
 #u{## YXchXXXXGN3;;==,I,I,S,S,U,UXXXX#r|$$ 7d3;//00>G&&s%&88AACCKKMM
 

)++ 	 >G&&sy11::<<DDFF
 

)++ 	 7X666686666#y!! ,#..**+++#ry!! <sx((	>G&&s%&88AACCKKMM
 

)++ 	 >G&&sy11::<<DDFF
 

)++ 	 <;;X;;;;;;DII   sJ %$s))$$$
	KS		0B 	K 	K 	K  s   1S 
SSfnr   tuple[Callable, list | None]c                     t          j                   rg  fd}|fS t          j                   rg  fd}|fS  dfS )zWrap a generator to capture all yields and return the final value.

    Returns (wrapped_fn, generated_values) or (fn, None) for non-generators.
    c                 t    d }                                   | i |D ]}                    |           |S r   clearappendargskwargsr!   ra   generated_valuess      r   wrapperz"resolve_generator.<locals>.wrappera   sT    A""$$$R((( + + ''****Hr   c                    K   d }                                   | i |2 3 d {V }                    |           6 |S r   re   rh   s      r   rl   z"resolve_generator.<locals>.wrapperl   sv      A""$$$2t.v.. + + + + + + +a ''**** /Hs   ?N)inspectisgeneratorfunctionisasyncgenfunction)ra   rl   rk   s   ` @r   resolve_generatorrq   Y   s    
 "2&& )!#	 	 	 	 	 	 (((		#B	'	' 
)	 	 	 	 	 	 (((t8Or   r:   c                8   t          | t          j                  r| j        S t          | t          j                  r=| j        d         | j        d         z  t          |                                           z  S t          | t          j	                  r(| 
                    d                                          S t          | t          j                  r| 
                    d          S t          | t          t          f          rt          |           S t          | t                    rt!          j        |           S 	 dd l}t          | |j                  r)|                                 |                                 z  S n# t,          $ r Y nw xY wt          | t.                    r+t          d |                                 D                       S t          | t2          t4          f          rt          d | D                       S t!          j        |           S )Nr      T)deepc              3  4   K   | ]}t          |          V  d S r   _estimate_sizer    r+   s     r   r"   z!_estimate_size.<locals>.<genexpr>   s*      ;;>!$$;;;;;;r   c              3  4   K   | ]}t          |          V  d S r   rv   rx   s     r   r"   z!_estimate_size.<locals>.<genexpr>   s*      22>!$$222222r   )r8   rD   rE   nbytesr	   rJ   lengetbandsrK   rL   memory_usagesumrR   r<   	bytearrayr   sys	getsizeoftorchTensornelementelement_sizeImportErrorr@   valuesr=   r>   )r   r   s     r   rw   rw   w   s   #rz"" z#u{## ?x{SXa[(3s||~~+>+>>>#r|$$ 1T**..000#ry!! +T***#y)** 3xx#s "}S!!!c5<(( 	7<<>>C$4$4$6$666	7   #t <;;cjjll;;;;;;#e}%% 322c222222=s    AF 
FF
str | Nonec                 |    	 ddl m}  | j                            d           }||j        S n# t
          $ r Y nw xY wd S )Nr   )LocalContext)gradio.contextr   requestgetsession_hash	Exception)r   reqs     r   _get_session_hashr      sg    //////"&&t,,?##    4s   (, 
99c                  j    e Zd Z	 	 	 ddd
Zd d!dZd"dZd#dZd$dZd%dZd%dZ	d d&dZ
d'dZd(dZdS ))_CacheStore   NFmax_sizer:   
max_memory
int | Noneper_sessionr9   c                    || _         || _        || _        t                      | _        i | _        d| _        t          j                    | _	        | j        rt                              |            d S d S r-   )	_max_size_max_memory_per_sessionr   _exact_entry_sizes_total_memory	threadingLock_lock_per_session_storesaddselfr   r   r   s       r   __init__z_CacheStore.__init__   st     "%'.9mm,."#^%%
 	*##D)))))	* 	*r   r   r   r   r   c                0    |pt                      pd}| dS )N_globalr2   )r   )r   r   sessions      r   _session_prefixz_CacheStore._session_prefix   s$    B"3"5"5B}}}r   key_hashc                D    | j         s|S |                                  | S r   )r   r   )r   r   s     r   _session_keyz_CacheStore._session_key   s/      	O&&((4(444r   dict | Nonec                    |                      |          }| j        5  || j        v r3| j                            |           | j        |         cd d d            S 	 d d d            d S # 1 swxY w Y   d S r   )r   r   r   move_to_end)r   r   full_keys      r   r   z_CacheStore.get   s    $$X..Z 	 	4;&&''111{8,	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   0A(A((A,/A,entryr   r   c                   |                      |          }| j        rt          |          nd}| j        5  || j        v rh| xj        | j                            |d          z  c_        | j                            |           || j        |<   || j        |<   | xj        |z  c_        n$|| j        |<   || j        |<   | xj        |z  c_        | 	                                 d d d            d S # 1 swxY w Y   d S r-   )
r   r   rw   r   r   r   r   r   r   _evict)r   r   r   r   
entry_sizes        r   putz_CacheStore.put   sO   $$X...2.>E^E***A
Z 	 	4;&&""d&7&;&;Ha&H&HH""''111(-H%.8!(+""j0"""(-H%.8!(+""j0""KKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B*C,,C03C0c                r   | j         r| j        dk    ot          | j                   | j        k    }| j        d uo'| j        | j        k    ot          | j                   dk    }|s|sd S | j                             d          \  }}| xj        | j                            |d          z  c_        | j         d S d S )Nr   rs   Flast)r   r   r{   r   r   popitemr   pop)r   
over_countover_memoryr0   _s        r   r   z_CacheStore._evict   s    k 
	@!+QDK0@0@4>0QJ , )&)99)$$q( 
  k [((e(44FC$"3"7"7Q"?"?? k 
	@ 
	@ 
	@ 
	@ 
	@r   c                    | j         5  | j                                         | j                                         d| _        d d d            d S # 1 swxY w Y   d S r-   )r   r   rf   r   r   r   s    r   rf   z_CacheStore.clear   s    Z 	# 	#K##%%%!"D	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   :AAAc                >   | j         sd S |                     |          | j        5  fd| j        D             }|D ]F}| j                            |d            | xj        | j                            |d          z  c_        G	 d d d            d S # 1 swxY w Y   d S )Nc                >    g | ]}|                               |S r.   )
startswith)r    r0   session_prefixs     r   
<listcomp>z-_CacheStore.clear_session.<locals>.<listcomp>   s:       cnn^.L.L  r   r   )r   r   r   r   r   r   r   )r   r   keys_to_deleter0   r   s       @r   clear_sessionz_CacheStore.clear_session   s)     	F--l;;Z 	D 	D   #{  N & D DT***""d&7&;&;C&C&CC"""D		D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   ABBB	list[Any]c                $   | j         5  | j        s/d | j                                        D             cd d d            S |                                 fd| j                                        D             cd d d            S # 1 swxY w Y   d S )Nc                8    g | ]}|                     d           S _key)r   )r    r   s     r   r   z$_CacheStore.keys.<locals>.<listcomp>   s$    LLLe		&))LLLr   c                j    g | ]/\  }}|                               |                    d           0S r   )r   r   )r    r0   r   r   s      r   r   z$_CacheStore.keys.<locals>.<listcomp>   sK       C>>.11		&!!  r   )r   r   r   r   r   rB   )r   r   s    @r   keysz_CacheStore.keys   s	   Z 		 		$ MLLt{7I7I7K7KLLL		 		 		 		 		 		 		 		 "1133N   "&+"3"3"5"5  		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   *B 8BB	B	c                l    | j         5  t          | j                  cd d d            S # 1 swxY w Y   d S r   )r   r{   r   r   s    r   __len__z_CacheStore.__len__   s{    Z 	$ 	$t{##	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   )--)r   NF)r   r:   r   r   r   r9   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   )rY   
__module____qualname__r   r   r   r   r   r   rf   r   r   r   r.   r   r   r   r      s         !%!	* * * * *     5 5 5 5
       @ @ @ @# # # #
D 
D 
D 
D 
D
 
 
 
$ $ $ $ $ $r   r   zweakref.WeakSet[_CacheStore]r   i   z&OrderedDict[tuple[Any, ...], Callable]_cache_wrappers	signatureinspect.Signatureri   r>   rj   r@   c                l     | j         |i |}|                                 t          |j                  S r   )bindapply_defaultsr@   	arguments)r   ri   rj   bounds       r   _normalize_kwargsr     s:    IND+F++E	   r   c                      e Zd ZdS )CacheMissErrorN)rY   r   r   r.   r   r   r   r     s        Dr   r   gradio_probe_cache_activeF)defaultzContextVar[bool]_probe_mode_activegradio_manual_cache_usedz"ContextVar[dict[str, bool] | None]_manual_cache_usedc                      e Zd ZdZd Zd ZdS )
ProbeCachezContext manager for probe mode. Wrappers raise CacheMiss instead of
    running the function on a miss. Used by the queue for cache bypass.c                D    t                               d          | _        | S )NT)r   rC   _tokenr   s    r   	__enter__zProbeCache.__enter__$  s    (,,T22r   c                D    t                               | j                   dS NF)r   resetr   r   excs     r   __exit__zProbeCache.__exit__(        ---ur   NrY   r   r   __doc__r   r   r.   r   r   r   r      s>        K K      r   r   c                      e Zd ZdZd Zd ZdS )TrackManualCacheUsagezLContext manager for tracking whether gr.Cache.get() had a hit during a call.c                `    ddi| _         t                              | j                   | _        | S NusedF)_holderr   rC   r   r   s    r   r   zTrackManualCacheUsage.__enter__0  s)    (,,T\::r   c                D    t                               | j                   dS r   )r   r   r   r   s     r   r   zTrackManualCacheUsage.__exit__5  r   r   Nr   r.   r   r   r   r   -  s8        VV  
    r   r   r   c                 J    t                                           } | d| d<   d S d S )NTr   r   r   holders    r   mark_manual_cache_hitr  :  s.    ##%%Fv r   r9   c                 L    t                                           } | | d         ndS r   r   r   s    r   used_manual_cacher  @  s&    ##%%F#/6&>>U:r   r   r   str | int | Noner   c                D    ddl m} t          |  ||          |          S )Nr   _parse_file_sizer   r   r   )gradio.utilsr  r   )r   r   r   r  s       r   _make_storer
  E  sA    
 .-----##J//   r   r   c                ^    t          t                    D ]}|                    |            d S r   )r=   r   r   )r   stores     r   clear_session_cachesr  S  s;    )** * *L))))* *r   track_cache_hitsfuncr  r0   Callable | Noner  c                  	
 t          j                   dfdd 
fd	t          j                   r&t          j                   	
 fd            }|S t          j                   r&t          j                   	
 fd	            }|S t          j                   r&t          j                   	
 fd
            }|S t          j                   	
 fd            }|S )N
normalizedr@   r   r   c                V    t           |                     S t          |           S r   )r   )r  r0   s    r   _compute_hashz$_make_wrapper.<locals>._compute_hasha  s,    ?cc*oo...*%%%r   c                 T    t                                           rt                      d S r   )r   r   r   r.   r   r   _on_missz_make_wrapper.<locals>._on_missf  s,    !!## 	# """	# 	#r   c                 b     r)t                                           st                       d S d S d S r   )r   r   r  r  s   r   _on_hitz_make_wrapper.<locals>._on_hitj  sE     	$$6$:$:$<$< 	$!#####	$ 	$ 	$ 	$r   c               ?  n  K   t          | |          } |          }                    |          }|%|d         D ]}              |V                d S  	             g } 
di |D ]-}|                    t          j        |                     |V  .                    ||           d S Nyields)r  r.   r   r   rg   copydeepcopyr   ri   rj   r  r   r   value
all_yieldsr  r  r  r  r   r  s          r   sync_gen_wrapperz'_make_wrapper.<locals>.sync_gen_wrapperp  s      *9dFCCJ$}Z00HIIh''E "8_    EGIIIKKKK			HJJJJ++
++  !!$-"6"6777IIhzI22222r   c                ~  K   t          | |          } |          }                    |          }|&|d         D ]}              |W V                d S  	             g } 
di |2 3 d {V }|                    t          j        |                     |W V  46                     ||           d S r  r  r   s          r   async_gen_wrapperz(_make_wrapper.<locals>.async_gen_wrapper  s     *9dFCCJ$}Z00HIIh''E "8_    EGIIIKKKKK			HJJJJ#t11j11       e!!$-"6"6777  2 IIhzI22222s   1B%c                    K   t          
| |          } |          }                    |          }|              |d         S                	di | d {V }                    ||           |S Nr!  )r!  r.   r   r   r   ri   rj   r  r   r   resultr  r  r  r  r   r  s         r   async_wrapperz$_make_wrapper.<locals>.async_wrapper  s      *9dFCCJ$}Z00HIIh''E 			W~%HJJJ4--*--------FIIhfI---Mr   c                     t          
| |          } |          }                    |          }|              |d         S                	di |}                    ||           |S r'  r(  r)  s         r   sync_wrapperz#_make_wrapper.<locals>.sync_wrapper  s    *9dFCCJ$}Z00HIIh''E 			W~%HJJJT''J''FIIhfI---Mr   )r  r@   r   r   )rn   r   ro   	functoolswrapsrp   iscoroutinefunction)r  r  r0   r  r#  r%  r+  r-  r  r  r  r   s   ````    @@@@r   _make_wrapperr1  X  s    !$''I& & & & & &
# # #$ $ $ $ $ "4(( L				3 	3 	3 	3 	3 	3 	3 	3 	3 
		3"  		#D	)	) 6				3 	3 	3 	3 	3 	3 	3 	3 	3 
		3" ! 		$T	*	*  			
	 
	 
	 
	 
	 
	 
	 
	 
	 
	
	  
		
	 
	 
	 
	 
	 
	 
	 
	 
	 
	
	 r   c               L   ddl m} t          |           |t          |          nd | ||          |f}t          5  t                              |          }|(t                              |           |cd d d            S t          |||          }t          | ||d          }||_	        |t          |<   t          t                    t          k    r8t                              d           t          t                    t          k    8|cd d d            S # 1 swxY w Y   d S )Nr   r  T)r0   r  Fr   )r	  r  id_runtime_cache_lockr   r   r   r
  r1  cacher{   _RUNTIME_WRAPPER_REGISTRY_MAXr   )	r  r0   r   r   r   r  registry_keyrl   r  s	            r   _get_cached_wrapperr8    s    .----- 	4?3$$L 
  !%%l33''555	       
 Hj+>>!	
 
 
 (/%/""%BBB###/// /""%BBB!                 s   8DBDD Dr   r0   r   r   r   c               v    dfd}| )t          |           st          d           ||           S |S )a  
    Decorator that auto-caches function results based on content-hashed inputs. Works with sync/async functions and sync/async generators. For generators, all yielded values are cached and replayed on hit. Cache hits bypass the Gradio queue. It can also be called at runtime as `gr.cache(fn)(*args)` to cache intermediate helper calls.
    Parameters:
        fn: The function to cache. When used as @gr.cache without parentheses, this is the decorated function. When used as @gr.cache(...), this is None. When used as `gr.cache(fn)(...)`, this must be a callable.
        key: Optional function that receives the kwargs dict and returns a hashable cache key, e.g. to only cache based on the prompt, pass in: lambda kw: kw["prompt"]
        max_size: Maximum number of cache entries. Least-recently-used entries are evicted when full. Set to 0 for unlimited. Default: 128.
        max_memory: Maximum total memory usage before eviction. Accepts strings like "512mb", "2gb" or integer bytes. When exceeded, least-recently-used entries are evicted. If None, no memory limit is applied. If both max_size and max_memory are set, the cache will evict entries when either limit is reached.
        per_session: When True, each user session gets an isolated cache namespace, preventing cached results from leaking between users. Per-session entries are cleared when the client session disconnects. The max_size and max_memory limits apply to the sum of all entries across all sessions.
    Example: (decorator)
        import gradio as gr
        @gr.cache
        def classify(image):
            return model.predict(image)

        @gr.cache(max_size=256, per_session=True)
        def generate(prompt):
            return llm(prompt)
    Example: (runtime)
        import gradio as gr
        def chat(message):
            cached_retrieve = gr.cache(retrieve_docs)
            docs = cached_retrieve(message)
            return llm(message, docs)
    r  r   r   c                ,    t          |           S )Nr9  )r8  )r  r0   r   r   r   s    r   	decoratorzcache.<locals>.decorator  s)    "!#
 
 
 	
r   Nzogr.cache(...) expected a callable when used at runtime. Use gr.cache(fn)(*args) instead of gr.cache(fn(*args)).)r  r   r   r   )callablerU   )ra   r0   r   r   r   r<  s    ```` r   r5  r5    sw    D
 
 
 
 
 
 
 
 
 
~|| 	J   y}}r   r   rC   r   rf   c                  L    e Zd ZdZddddddZddZddZddZddZddZ	dS )Cachea  
    Thread-safe cache with manual get/set control, injected as a function parameter (add as a default parameter value and Gradio will inject it automatically). Supports per-session isolation so cached data doesn't leak between users, content-aware hashing for ML types (numpy, PIL, pandas), and LRU eviction with memory limits.
    Parameters:
        max_size: Maximum number of cache entries. Least-recently-used entries are evicted when full. Set to 0 for unlimited. Default: 128.
        max_memory: Maximum total memory usage before eviction. Accepts strings like "512mb", "2gb" or integer bytes.
        per_session: When True, each user session gets an isolated cache namespace, preventing cached data from leaking between users. Per-session entries are cleared when the client session disconnects. The max_size and max_memory limits still apply to the shared underlying cache store across all sessions. Default: False.
    Example:
        import gradio as gr
        def generate(prompt, c=gr.Cache(per_session=True)):
            hit = c.get(prompt)
            if hit is not None:
                return model(prompt, past=hit["kv"])
            output = model(prompt)
            c.set(prompt, kv=model.past_key_values)
            return output
    r   NFr  r   r:   r   r  r   r9   c               2    t          |||          | _        d S r   )r
  _storer   s       r   r   zCache.__init__)  s     "(JDDr   r0   r   r   r   c                    t          |          }| j                            |          }|dS t                       d |                                D             S )z
        Look up a cache entry by key. Returns a dict of stored data, or None on miss. Keys can be any type supported by gr.cache (strings, numbers, numpy arrays, PIL images, etc.).
        Parameters:
            key: The cache key to look up.
        Nc                &    i | ]\  }}|d k    ||S r   r.   r)   s      r   
<dictcomp>zCache.get.<locals>.<dictcomp>=  s#    >>>A!v++1+++r   )r   rA  r   r  rB   )r   r0   r   r   s       r   r   z	Cache.get2  sT     c??))=4>>>>>>r   datar   c                N    t          |          } | j        j        |fd|i| dS )z
        Store arbitrary keyword data under a key.
        Parameters:
            key: The cache key.
            data: Arbitrary keyword arguments to store.
        r   N)r   rA  r   )r   r0   rE  r   s       r   rC   z	Cache.set?  s6     c??33s3d33333r   r   c                4    | j                                         S )zV
        Return all stored raw keys. Useful for iteration or prefix matching.
        )rA  r   r   s    r   r   z
Cache.keysI  s     {!!!r   c                8    | j                                          dS )z3
        Clear all entries from the cache.
        N)rA  rf   r   s    r   rf   zCache.clearO  s     	r   c                *    t          | j                  S r   )r{   rA  r   s    r   r   zCache.__len__U  s    4;r   )r   r:   r   r  r   r9   )r0   r   r   r   )r0   r   rE  r   r   r   r   r   r   )
rY   r   r   r   r   r   rC   r   rf   r   r.   r   r   r?  r?    s         ( '+!E E E E E E? ? ? ?4 4 4 4" " " "              r   r?  )r   r   r   r   )ra   r   r   rb   )r   r   r   r:   )r   r   )r   r   ri   r>   rj   r@   r   r@   r   )r   r9   )r   r:   r   r  r   r9   r   r   r   r   )
r  r   r  r   r0   r  r  r9   r   r   )r  r   r0   r  r   r:   r   r  r   r9   r   r   )
ra   r  r0   r  r   r:   r   r  r   r9   )8r   
__future__r   r  r.  r   rn   r   r   weakrefcollectionsr   collections.abcr   contextvarsr   typingr   numpyrD   pandasrK   gradio_client.documentationr   PILr	   pydanticr
   r   r   rq   rw   r   r   WeakSetr   __annotations__r6  r   r   r4  r   r   r   r   r   r   r   r  r  r
  r  r1  r8  r5  r?  r.   r   r   <module>rW     s   - - - " " " " " "        



      # # # # # # $ $ $ $ $ $ " " " " " "               0 0 0 0 0 0               8 8 8 8v   <   6	 	 	 	_$ _$ _$ _$ _$ _$ _$ _$D 5DGO4E4E  E E E E !% :E+-- G G G G %in&& ! ! ! !	 	 	 	 	Y 	 	 	 (2z( ( (      :D: : :     

 
 
 
 
 
 
 

 
 
 
 
 
 
 
   ; ; ; ;
   * * * *  b
 #b b b b b bJ! ! ! !H 
1  #'1 1 1 1 1 1h 
%((?  ?  ?  ?  ?  ?  ?  )(?  ?  ? r   