ó
    ‚¤j´G ã            
      ó`
  • % S r 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
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rSSKrSSKJr  SSKJr  SSKJrJrJrJrJr  SSKrSSK r SSK!J"r"J#r#  SSK!J$r%  SS	K&J'r'  SS
K&J(r)  SSK*r+SSK,J-r-  SSK.J/r/  SSK0J1r1  SSK2J3r4  SSK5J6r6J7r7  SSK8J9r9  SSK:J;r;J<r<J=r=J>r>  SSK?J@r@  \(       a  SSKAJBrB  \ RD                  " SSSS0\ R†                  " SSS9S9rD\" SSS9rESrFS rGS!rH\I" \7\6\915      rJSÃS" jrK " S# S$\5      rLS%SS&.rMS$\NS''   \Rž                  " 5       rPSÄS( jrQSÅS) jrRSÆS* jrSSÅS+ jrT\Rª                  " \V5      rW\XS,\YS,\ZS-0r[\R¸                  " S.5      r]      SÇS/ jr^  SÈ       SÉS0 jjr_SÊS1 jr`\RÂ                  " S25      rbS3rcS4rdSËS5 jreSÌS6 jrf\'" 5       rgSÍS7 jrh SÎ     SÏS8 jjri SÐ       SÑS9 jjrjSÒSÓS: jjrkSÔS; jrlSÄS< jrmSÄS= jrnSÄS> jroSÕS? jrpSÖS@ jrq   S×     SØSA jjr(   S×     SØSB jjrrSÐSÄSC jjrsSÙSD jrtSÐSÄSE jjruSFSGSH.rvSI\NSJ'   SÚSK jrwSÛSL jrxSÐSÄSM jjry SÎ     SØSN jjrz0 SOSPSQSRSS./STSUSVSSW./SX._SYSRSZSRSS./STS[S\SSW./SX._S]SPSQSRSS./STS^S_SSW./SX._S`SVSUSVSS.SPSQSRSS./STSUSVSSW./SX._SaSVSUSVSS.SPSQSRSS./STS^S_SSW./SX._SbSPSQSRSS./STSZScSSW./SX._SdSRSZSRSS./STSeSRSSW./SX._SfSRSZSRSS.SgShSRSS.SiSjSRSS./STSkSRSSW./SX._SlSRSZSRSS./STSmSnSSW./SX._SoSRSZSRSS./STSpSnSSW./SX._SqSRSZSRSS./STSrSnSSW./SX._SsSRSZSRSS.StSuSRSS./STSvSnSSW./SX._SwSxSySRSS.SzS{SRSS./STSvSnSSW./SX._S|S}S~SRSS.SS€SRSS./STS�SRSSW./SX._S‚SRSZSRSS./STSƒSnSSW./SX._S„SVSUSVSS./STSpSnSSW./SX._S…SVSUSVSS./STS†SnSSW./SX._SVSUSVSS./STS‡SnSSW./SX.S\S[S\SS./STSZSRSSW./SX.S\S[S\SS./STSpSnSSW./SX.SVSUSVSS.SRSQSRSS./STS�ScSSW./SX.Sˆ.Er{S‰\NSŠ'   S‹r|SŒSŒS�SŽSŽS�.r}SI\NS�'   0 S‘Sb_S’Sb_S“Sb_SdSd_SfSf_S”Sl_S•So_S–Sq_S—Ss_S˜Sw_S™S|_SšS‚_S›SO_SœSY_S�SY_SžS]_SŸS`_SaSaS„S…S S¡S¢S£S¤.Er~SI\NS¥'   StS¦0SzS§0S¨.rS©\NSª'    SÎ     SÜS« jjr€SÝS¬ jr�SÞS­ jr‚ SÎ     SØS® jjrƒ SÎ     SØS¯ jjr„SßS° jr…SßS± jr† Sà           SáS² jjr‡ SÎ     SÜS³ jjrˆ SÎ     SÜS´ jjr‰SÎSâSµ jjrŠSÐSâS¶ jjr‹SÐSâS· jjrŒ0 r�S¸\NS¹'   SºrŽ  SÎ     SãS» jjr�\R¸                  " S¼5      r�SäS½ jr‘  SÎ     SãS¾ jjr’ SÎ     SØS¿ jjr“ SÎ     SØSÀ jjr” " SÁ SÂ\-5      r•g)åuG   gr.Workflow â€” high-level API for building and launching AI pipelines.é    )ÚannotationsN)ÚCallable)ÚThreadPoolExecutor)ÚTYPE_CHECKINGÚOptionalÚ	TypedDictÚUnionÚget_type_hints)ÚClientÚhandle_file)Úutils)ÚHfApi)Ú	get_token)ÚBlocks)ÚWorkflowCanvas)ÚContext)Úspecial_args)ÚOAuthProfileÚ
OAuthToken)ÚRequest)Úcolab_checkÚ	get_spaceÚget_upload_folderÚis_in_or_equal)Úcall_with_recovery)ÚWorkflowEndpointManagerzhttps://huggingface.coé   z
User-Agentzgradio-workflowé   é   )Úmax_keepalive_connectionsÚmax_connections)Úbase_urlÚtimeoutÚheadersÚlimitsé   z	hf-search)Úmax_workersÚthread_name_prefixzgradio/workflow-curatedzcurated.jsong      ¬@c                óÈ  • U [         ;   a  g[        U SS 5      [        L aN  U R                  nU Vs/ s H  o"[	        S 5      Ld  M  UPM     nn[        U5      S:H  =(       a    US   [         ;   $ [        U [        R                  5      (       aL  U R                   Vs/ s H  o"[	        S 5      Ld  M  UPM     nn[        U5      S:H  =(       a    US   [         ;   $ gs  snf s  snf )NTÚ
__origin__é   r   F)	Ú_INJECTED_TYPESÚgetattrr	   Ú__args__ÚtypeÚlenÚ
isinstanceÚtypesÚ	UnionType)ÚhintÚargsÚaÚnon_nones       Ú�C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\gradio/workflow.pyÚ_is_injected_paramr9   B   s¾   € ØŒÓØÜˆt�\ 4Ó(¬EÒ1Ø�}‰}ˆÙ#Ó;št˜!´°T³
Ð':—A™tˆÐ;Ü�8‹} Ñ!×D h¨q¡k´_Ñ&DÐDÜ�$œŸ™×(Ñ(Ø#Ÿ}š}ÓDš}˜!¼¸d»Ð0C—A™}ˆÐDÜ�8‹} Ñ!×D h¨q¡k´_Ñ&DÐDØùò <ùò Es   °CÁCÂCÂ0Cc                  ó*   • \ rS rSr% S\S'   S\S'   Srg)Ú_CuratedCacheéO   ÚfloatÚ
fetched_atúOptional[list[dict]]Úitems© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__rA   ó    r8   r;   r;   O   s   ‡ ØÓØÖrH   r;   g        )r>   r@   Ú_CURATED_CACHEc                 ó„   • [         R                  R                  [         R                  R                  [        5      S5      $ )Nz_workflow_curated_snapshot.json)ÚosÚpathÚjoinÚdirnameÚ__file__rA   rH   r8   Ú_bundled_snapshot_pathrP   X   s%   € Ü�7‰7�<‰<œŸ™Ÿ™¬Ó1Ð3TÓUÐUrH   c                 óh  •  [        [        5       SS9 n [        R                  " U 5      nS S S 5        [	        W[
        5      (       a  UR                  S5      OUn[	        U[        5      (       a  U$ / $ ! , (       d  f       NO= f! [         a"  n[        R                  SU5        / s S nA$ S nAff = f)Núutf-8©Úencodingr@   z(workflow curated snapshot unreadable: %s)ÚopenrP   ÚjsonÚloadr1   ÚdictÚgetÚlistÚ	ExceptionÚloggerÚwarning)ÚfÚpayloadr@   Úes       r8   Ú_load_bundled_snapshotra   \   sŠ   € ðÜÔ(Ó*°WÒ=ÀÜ—i’i “lˆG÷ >ä(2°7¼D×(AÑ(A�—‘˜GÔ$ÀwˆÜ" 5¬$×/Ñ/ˆuÐ7°RÐ7÷ >Õ=ûô ó Ü�‰ÐAÀ1ÔEØ�	ûðús:   ‚B ”A4«AB Á2B Á4
BÁ>B Â
B1ÂB,Â&B1Â,B1c                 ó~  •  SSK Jn   U " [        [        SS9n[	        USS9 n[
        R                  " U5      nS S S 5        [        W[        5      (       a  UR                  S5      OUn[        U[        5      (       a  U$ g ! , (       d  f       NN= f! [         a   n[        R                  SU5         S nAg S nAff = f)	Nr   )Úhf_hub_downloadÚdataset)Úrepo_idÚfilenameÚ	repo_typerR   rS   r@   z curated dataset fetch failed: %s)Úhuggingface_hubrc   Ú_CURATED_DATASET_REPOÚ_CURATED_DATASET_FILErU   rV   rW   r1   rX   rY   rZ   r[   r\   Úinfo)rc   Úlocalr^   r_   r@   r`   s         r8   Ú_fetch_curated_from_hubrm   g   sš   € ðÝ3áÜ)Ü*Øñ
ˆô
 �% 'Ò*¨aÜ—i’i “lˆG÷ +ä(2°7¼D×(AÑ(A�—‘˜GÔ$ÀwˆÜ�eœT×"Ñ"ØˆLØ÷ +Õ*ûô ó Ü�‰Ð6¸Ô:Üûðús.   ‚ B ¢B¹AB Â
BÂB Â
B<ÂB7Â7B<c                 ó¦  • SS K n U R                  5       n[           [        S   n[        S   nUb  X-
  [        :  a  UsS S S 5        $ S S S 5        [        5       nUb  UO	[        5       n[           [        S   nX-
  [        :¼  a  U[        S'   U[        S'   O[        S   nUb  UnS S S 5        U$ ! , (       d  f       Nn= f! , (       d  f       U$ = f)Nr   r>   r@   )ÚtimeÚ	monotonicÚ_CURATED_LOCKrI   Ú_CURATED_TTL_SECONDSrm   ra   )ro   ÚnowÚ	cached_atÚcached_itemsÚliver@   Ú
cached_at2Úcacheds           r8   Ú_load_curatedry   {   sÃ   € Ûà
�.‰.Ó
€CÞ	Ü" <Ñ0ˆ	Ü% gÑ.ˆØÑ#¨©Ô<PÓ(PØ÷	 
�‰ô #Ó$€DØ $Ñ 0™Ô6LÓ6N€Eæ	Ü# LÑ1ˆ
ØÑÔ!5Ó5Ø+.ŒN˜<Ñ(Ø&+ŒN˜7Ò#ä# GÑ,ˆFØÑ!Ø�÷ 
ð €L÷% 
�ú÷ 
Œð €Lús   ›#B0Á/7CÂ0
B>Ã
CÚnumberÚbooleanz[^a-zA-Z0-9_-]c           
     ó°   ^• SU4S jjn/ n[        U 5       H;  u  nu  pVU" US5      u  pxn	U" US5      u  p«nUR                  SU 3UUU
UU	S.5        M=     U$ )Nc                óR  >^^	• U R                  S5      u  mnm	TR                  5       mT	R                  5       =(       d    S m	[        U4S jT
 5       S 5      nUc$  [        ST ST
 Vs/ s H  oDS   PM	     sn 35      eX1   nU(       d  [        ST SU 35      eT	c   US   nUS	   US	   UR	                  S
S5      4$ [        U	4S jU 5       S 5      nUc-  [        SUS S  ST	 ST SU Vs/ s H  owS   PM	     sn 35      eUS	   US	   UR	                  S
S5      4$ s  snf s  snf )NÚ.c              3  óT   >#   • U  H  oR                  S 5      T:X  d  M  Uv •  M     g7f)ÚfnN©rY   )Ú.0ÚnÚfn_names     €r8   Ú	<genexpr>Ú0_build_edges.<locals>.resolve.<locals>.<genexpr>¥   s    øé € Ð@¢˜1¯©¨t«¸Ñ)?—Q‘Q¢ùs   ƒ(Ÿ	(zedges: no function 'z' in bind dict. Available: r€   zedges: node 'z	' has no r   Úidr/   Útextc              3  óN   >#   • U  H  oS    T:X  d  US   T:X  d  M  Uv •  M     g7f)Úlabelr‡   NrA   )r‚   ÚpÚ	port_hints     €r8   r…   r†   µ   s'   øé € ÐQš�1 7¡¨yÓ!8¸A¸d¹GÀyÑ<P�Q‰Qšùs   ƒ%œ	%z
edges: no éÿÿÿÿz port 'z' on 'z'. Available: rŠ   )Ú	partitionÚstripÚnextÚ
ValueErrorrY   )ÚspecÚ	ports_keyÚ_Únoderƒ   ÚportsÚportr‹   r„   rŒ   Únodess           @@€r8   ÚresolveÚ_build_edges.<locals>.resolve    sd  ú€ Ø $§¡¨sÓ 3Ñˆ��IØ—-‘-“/ˆØ—O‘OÓ%×-¨ˆ	äÔ@¡Ó@À$ÓGˆØ‰<ÜØ& w ið 0Ù05Ó6²¨1 œw±Ñ6Ð7ð9óð ð
 ‘ˆÞÜ˜}¨W¨I°Y¸y¸kÐJÓKÐKàÑØ˜‘8ˆDØ˜‘:˜t D™z¨4¯8©8°F¸FÓ+CÐCÐCäÜQ™ÓQØó
ˆð ‰<ÜØ˜Y s¨˜^Ð,¨G°I°;¸fÀWÀIð NÙ38Ó9²5¨a œz±5Ñ9Ð:ð<óð ð �D‰z˜4 ™: t§x¡x°¸Ó'?Ð?Ð?ùò) 7ùò$ :s   Á(DÃ-D$ÚoutputsÚinputsÚedge_)r‡   Úfrom_node_idÚfrom_port_idÚ
to_node_idÚ
to_port_idr/   )r’   Ústrr“   r¢   Úreturnztuple[str, str, str])Ú	enumerateÚappend)Ú
edges_specr˜   r™   ÚresultÚiÚ	from_specÚto_specrž   rŸ   Ú	edge_typer    r¡   r”   s    `           r8   Ú_build_edgesr¬   œ   sy   ø€ ÷@ð> €FÜ#,¨ZÖ#8ÑˆÑˆIÙ07¸	À9Ó0MÑ-ˆ IÙ$+¨G°XÓ$>Ñ!ˆ
 Ø�‰à˜a˜S�kØ ,Ø ,Ø(Ø(Ø!ñö		
ñ $9ð €MrH   c                ó  • / nU R                  5        Hõ  u  pE [        R                  " U5      n [        U5      nUR                  R                  5        VV	s/ s HU  u  p‰US:w  d  M  [        UR                  U5      5      (       a  M.  SU 3U[        R                  U	R                  S5      S.PMW     n
nn	SS[        R                  UR                  S5      S./nU
(       d  SS	SS./n
UR                  S
U 3SUSUSU
U0 S.	5        M÷     [!        U=(       d    / U5      n["        R$                  " SX#US.5      $ ! [        [        4 a    [        R
                  " 5       n GN4f = f! [         a    [        US0 5      n GNFf = fs  sn	nf )NrF   ÚselfÚin_rˆ   ©r‡   rŠ   r/   Úout_0ÚoutputÚin_0ÚinputÚfn_r€   Ú	transforméÜ   )	r‡   Úsourcer€   ÚkindrŠ   Úwidthrœ   r›   ÚdataÚ1)ÚversionÚnamer˜   Úedges)r@   ÚinspectÚ	signaturer‘   Ú	TypeErrorÚ	Signaturer
   r[   r-   Ú
parametersr9   rY   Ú_PY_TO_PORTÚ
annotationÚreturn_annotationr¥   r¬   rV   Údumps)Úboundr¿   r¾   r˜   r„   r€   ÚsigÚ_hintsr‹   Úparamrœ   r›   Ú
edge_dictss                r8   Ú_workflow_from_bindrÎ   Ð   s›  € ð €EØ—{‘{–}‰ˆð	&Ü×#Ò# BÓ'ˆCð	8Ü# BÓ'ˆFð  ŸN™N×0Ñ0Ô2ô
ò 3‘�Ø�F‰{óô $6°f·j±jÀ³m×#DóØ˜A˜3�iØÜ#Ÿ™¨×(8Ñ(8¸&ÓAôñ
 3ð 	ñ 
ð Ø!Ü#Ÿ™¨×(=Ñ(=¸vÓFñð
ˆö Ø#¨g¸vÑFÐGˆFà�‰à˜G˜9�oØØØ#Ø ØØ Ø"Øñ
ö	
ñ= %ôX ˜eŸk r¨5Ó1€JÜ�:Š:Ø À
ÑKóð øôU œIÐ&ó 	&Ü×#Ò#Ó%‹Cð	&ûô
 ó 	8Ü˜RÐ!2°BÓ7‹Fð	8üó
s4   ™D;°E'ÁFÁ(FÂ	+FÄ;%E$Å#E$Å'FÆFc                 ó.   • [        5       b  g[        5       $ )zõReturn the local Hugging Face token when running outside Spaces.

Avoid reading a Space's token/secret here: `get_token` is exposed to the
browser so the workflow canvas can authenticate local apps with the user's
`huggingface_hub login` token.
N)r   Úhf_get_tokenrA   rH   r8   Ú_get_locally_saved_hf_tokenrÑ     s   € ô ƒ{ÑØÜ‹>ÐrH   é    Úgradio_workflow_write_tokenzx-gradio-workflow-write-tokenc                óB  • U c  g [        U R                  =(       d    0 5      R                  5        VVs0 s H  u  pUR                  5       U_M     nnnUR                  [        5      nU(       a  [        R                  " U[        5      $ UR                  SS5      R                  S5       H‰  nUR                  5       R                  S5      u  pgnUR                  [        5      (       d  MA  U(       d  MJ  [        R                  " [        R                   R#                  U5      [        5      (       d  M‰    g    U R$                  R                  S5      n	U	(       a  [        R                  " U	[        5      $ gs  snnf ! [         a     gf = f! [         a    Sn	 NGf = f)	uF  True when the request carries the per-process write token, checked in
header â†’ cookie â†’ query-param order (mirrors trackio's scheme). The cookie
name is prefix-matched because the frontend suffixes it with the port â€”
cookies are shared across ports on the same host, so two local apps would
otherwise clobber each other.NFÚcookieÚ Ú;Ú=TÚwrite_token)rX   r$   r@   Úlowerr[   rY   Ú_WRITE_TOKEN_HEADERÚsecretsÚcompare_digestÚWRITE_TOKENÚsplitr�   rŽ   Ú
startswithÚ_WRITE_TOKEN_COOKIE_PREFIXÚurllibÚparseÚunquoteÚquery_params)
ÚrequestÚkÚvr$   Úheader_valuerÕ   r¾   r”   ÚvalueÚquery_values
             r8   Ú_request_has_write_tokenrì   "  sH  € ð �ØðÜ,0°·±×1FÀBÓ,G×,MÑ,MÔ,OÔPÒ,O¡D A�1—7‘7“9˜a’<Ñ,OˆÑPð —;‘;Ô2Ó3€LÞÜ×%Ò% l´KÓ@Ð@Ø—+‘+˜h¨Ó+×1Ñ1°#Ö6ˆØŸ™›×1Ñ1°#Ó6‰ˆ�à�O‰OÔ6×7Ó7ß�Ü×&Ò&¤v§|¡|×';Ñ';¸EÓ'BÄK×PÓPáñ 7ðØ×*Ñ*×.Ñ.¨}Ó=ˆö Ü×%Ò% k´;Ó?Ð?Øùó) QøÜó Ùðûô ó ØŠðús4   †/E? µE9ÁE? Ä;F Å9E? Å?
FÆFÆFÆFc                 óP  • [         R                  " SS5      R                  5       R                  5       n U S;   a  gU S;   a  g[	        5       b  gS[         R
                  ;   d)  [         R                  " SS5      R                  5       S	;   a  g[        5       (       a  g[         R
                  R                  S
5      (       a  g[         R
                  R                  S5      (       d$  [         R
                  R                  S5      (       a  g[        R                  R                  S5      (       aI  [         R
                  R                  S5      (       d%  [         R
                  R                  S5      (       d  g [        R                  " 5         g! [        R                   a     gf = f)a«  Whether `launch()` should open a browser tab on the write-access link
without being asked, the way `jupyter notebook` opens its token URL.

Only done when a browser on this machine is plausibly the right place to
open it, so headless servers, containers, CI and remote kernels keep the
old print-the-link-only behavior. Set `GRADIO_WORKFLOW_INBROWSER=false` to
opt out, or pass `inbrowser=` explicitly to bypass this entirely.
ÚGRADIO_WORKFLOW_INBROWSERrÖ   )Ú0ÚfalseÚnoÚoffF)r¼   ÚtrueÚyesÚonTÚPYTEST_CURRENT_TESTÚCI)r¼   ró   ÚBROWSERÚSSH_CONNECTIONÚSSH_TTYÚlinuxÚDISPLAYÚWAYLAND_DISPLAY)rK   Úgetenvr�   rÚ   r   Úenvironr   rY   ÚsysÚplatformrà   Ú
webbrowserÚError)Úenvs    r8   Ú_should_auto_open_browserr  B  s5  € ô �)Š)Ð/°Ó
4×
:Ñ
:Ó
<×
BÑ
BÓ
D€CØ
Ð)Ó)ØØ
Ð(Ó(ØÜƒ{ÑàØ¤§
¡
Ó*¬b¯iªi¸¸bÓ.A×.GÑ.GÓ.Ið Nó /ð Ü‡}�}àÜ	‡z�z‡~�~�i× Ñ ð Ü	‡z�z‡~�~Ð&×'Ñ'¬2¯:©:¯>©>¸)×+DÑ+DØÜ
‡|�|×Ñ˜w×'Ñ'Ü
�
‰
�‰�y×!Ñ!¤R§Z¡Z§^¡^Ð4E×%FÑ%Fð ðÜ�ŠÔð øô ×Ñó Ùðús   Å8F ÆF%Æ$F%c                óX  ^• [        5       nU(       a  U (       d  g [        R                  U SS9n[        R
                  " S5      =(       d    UR                  S5      S   mUR                  S5      T:X  a  g[        U4S jUR                  S	/ 5       5       5      $ ! [         a     gf = f)
z‡On Spaces, write access belongs to the Space owner: the OAuth user must
be the owning user, or an admin/write member of the owning org.FT)ÚtokenÚcacheÚSPACE_AUTHOR_NAMEÚ/r   r¾   c              3  ó‚   >#   • U  H4  nUR                  S 5      T:H  =(       a    UR                  S5      S;   v •  M6     g7f)r¾   Ú	roleInOrg)ÚadminÚwriteNr�   )r‚   ÚorgÚowners     €r8   r…   Ú6_oauth_token_has_space_write_access.<locals>.<genexpr>€  s<   øé € ð â&ˆCð 	�‰�‹˜5Ñ ×O S§W¡W¨[Ó%9Ð=OÑ%OÔOÚ&ùs   ƒ<?Úorgs)	r   Ú_hf_apiÚwhoamir[   rK   rþ   rß   rY   Úany)Úoauth_tokenÚspace_idÚwhor  s      @r8   Ú#_oauth_token_has_space_write_accessr  s  s›   ø€ ô ‹{€HÞž;ØðÜ�n‰n ;°dˆnÐ;ˆô �IŠIÐ)Ó*×D¨h¯n©n¸SÓ.AÀ!Ñ.D€EØ
‡w�wˆvƒ˜%ÓØÜô à—7‘7˜6 2Ô&óó ð øô ó Ùðús   œB Â
B)Â(B)c                ór   • [        5       b"  [        U(       a  UR                  5      $ S5      $ [        U 5      $ )zÓWhether this request may modify the workflow (and, locally, use the
host's saved HF token). Locally: requires the launch-time write token.
On Spaces: requires the OAuth user to own the Space (or have org write).N)r   r  r  rì   )ræ   r  s     r8   Úhas_write_accessr  †  s0   € ô ƒ{ÑÜ2Æ%°5·;±;ÓRÐRÈTÓRÐRÜ# GÓ,Ð,rH   c                óš   • [        U 5      U:”  a  X   OS nU(       a  U$ U(       a  UR                  $ [        U5      (       a
  [        5       $ g ©N)r0   r  rì   rÑ   )r»   Úidxr  ræ   Úmanuals        r8   Ú_resolve_tokenr   ‘  sC   € ô ˜d›) c›/ˆTŠY¨t€FÞØˆÞØ�{‰{ÐÜ ×(Ñ(Ü*Ó,Ð,ØrH   c                ó‚   • U(       a  SSU 30O0 n[         R                  XUS9nUR                  5         UR                  $ )NÚAuthorizationúBearer )r$   r#   )Ú
_HF_CLIENTrY   Úraise_for_statusrˆ   )ÚurlÚhf_tokenr#   r$   Úresps        r8   Ú_hf_requestr)  ž  s?   € Þ9Aˆ '¨(¨Ð 4Ñ5Àr€GÜ�>‰>˜#¸ˆ>Ð@€DØ×ÑÔØ�9‰9ÐrH   c                óÀ  • [        5       n[        R                  " USS9  [        R                  R	                  US[        R
                  " S5      R                  5        SU 35      n[        U S5      (       a  U R                  U5        O&[        US5       nUR                  U 5        S S S 5        S[        R                  " U5       3nX5SS	.$ ! , (       d  f       N,= f)
NT)Úexist_okÚ	workflow_r   r~   ÚsaveÚwbú/gradio_api/file=©rL   r&  Úis_file)r   rK   ÚmakedirsrL   rM   ÚurandomÚhexÚhasattrr-  rU   r  Úclient_utilsÚencode_file_path)r§   ÚextÚ	directoryrL   r^   r&  s         r8   Ú	_save_tmpr:  ¥  s¬   € Ü!Ó#€IÜ‡K‚K�	 DÒ)Ü�7‰7�<‰<˜	 Y¬r¯zªz¸!«}×/@Ñ/@Ó/BÐ.CÀ1ÀSÀEÐ#JÓK€DÜˆv�v×ÑØ�‰�DÕä�$˜Ô Ø�G‰G�FŒO÷ àœl×;Ò;¸DÓAÐBÐ
C€CØ°Ñ6Ð6÷ Õús   ÂCÃ
Cc                óŠ  • [        U [        5      (       a2  U R                  S5      =(       d    U R                  S5      =(       d    SOU n[        U[        5      (       a  U(       d  gUR	                  S5      (       a  U$ UR	                  S5      (       a.  [
        R                  R                  UR                  S5      5      $ U$ )aT  Normalize a file-shaped argument down to one reference string.

`path` wins over `url` so a file that names both is chained by the local
copy rather than by a `/gradio_api/file=` URL only this app can serve. A
canvas file value carries no `path` at all (`FileValue` in
`js/workflowcanvas/workflow/workflow-types.ts`), so the prefix comes off
here and callers get the local path either way.

The URL branch is percent-encoded, so it is unquoted on the way out. That
unquoting stays inside the branch: a `path` that wins can itself hold a
literal `%20`, which must survive as part of the filename.
rL   r&  rÖ   ©údata:zhttp://zhttps://r/  )	r1   rX   rY   r¢   rà   râ   rã   rä   Úremoveprefix©r6   Úsrcs     r8   Ú	_file_refrA  ²  s�   € ô 4>¸aÄ×3FÑ3Fˆ1�5‰5�‹=×.˜AŸE™E %›L×.¨BøÈA€CÜ�cœ3×Ñ¦sØØ
‡~�~Ð6×7Ñ7Øˆ
Ø
‡~�~Ð)×*Ñ*Ü�|‰|×#Ñ# C×$4Ñ$4Ð5HÓ$IÓJÐJØ€JrH   c                ó�   • [        U 5      nUR                  S5      (       a  U$ U(       a  [        U[        5       5      (       a  U$ S$ )aÉ  Return the reference for `a` only if it is this app's to send, else "".

The arguments to an operator arrive as the caller's own JSON, so a
file-shaped one names whatever path they choose. Two references are safe to
forward: a `data:` or absolute http(s) URL, which this process never reads
off disk, and a path under the upload folder, which holds only what the app
itself wrote. Every other path is someone else's file, so it is refused
rather than read.
r<  rÖ   )rA  rà   r   r   r?  s     r8   Ú_sendable_refrC  É  s?   € ô �A‹,€CØ
‡~�~Ð6×7Ñ7Øˆ
Þœ.¨Ô.?Ó.A×BÑBˆ3ÐJÈÐJrH   c                óÖ  • [        U 5      nU(       a  UR                  S5      (       a  U$ [        R                  R	                  U5      (       a  [        U[        5       5      (       d  U$ [        R                  " U5      S   =(       d    Sn[        US5       nSU S[        R                  " UR                  5       5      R                  5        3sSSS5        $ ! , (       d  f       g= f)u€  Return an image reference a provider can actually resolve.

Chat completions send images by reference, and the provider â€” not this
process â€” is what dereferences them. A local path or a relative
`/gradio_api/file=` URL is meaningless there, so those are inlined as a
data URI. Absolute http(s) URLs are passed through, though note the
provider still has to be able to fetch them.
r<  r   z	image/pngÚrbr=  z;base64,N)rA  rà   rK   rL   Úisfiler   r   Ú	mimetypesÚ
guess_typerU   Úbase64Ú	b64encodeÚreadÚdecode)r6   r@  Úmimer^   s       r8   Ú_chat_image_urlrN  Ù  s¦   € ô �A‹,€CÞ�#—.‘.Ð!A×BÑBØˆ
Ü�7‰7�>‰>˜#×Ñ¤n°SÔ:KÓ:M×&NÑ&NØˆ
Ü×Ò Ó$ QÑ'×6¨;€DÜ	ˆc�4Œ˜AØ�t�f˜H¤V×%5Ò%5°a·f±f³hÓ%?×%FÑ%FÓ%HÐ$IÐJ÷ 
��ús   Â8CÃ
C(c                óÆ  • S n[        U SS 5      nUb  [        USS 5      nUc  [        U SS 5      nUS;   a  SSS.$ US:X  a  SS	S.$ US
:X  a  SS0$ [        U 5      R                  nUS;   a  SS	S.$ US:X  a  SSS.$ [        U SS 5      =(       d    Sn[        U SS 5      =(       d    [        U 5      nU SU 3R	                  5       nSU;   d  SU;   a
  SU;   a  SS0$ SU;   d  SU;   d  SU;   a  SS0$ SU;   d  SU;   a  SSS.$ SU;   d  SU;   d  SU;   d  SU;   d  SU;   a  SSS.$ S U;   d  S!U;   a  SS	S.$ S"U;   d  S#U;   a  S"S$S.$ S%U;   d  S&U;   d  S'U;   a  S'S(S.$ S)SS.$ )*NÚresponseÚstatus_code)i‘  i“  Úauthz.Sign in with your HF account to use this model)Ú
error_typeÚ
suggestioni”  Ú	not_foundu7   Space not found â€” it may have been deleted or renamedi­  rS  Úquota)ÚRepositoryNotFoundErrorÚEntryNotFoundErrorÚRevisionNotFoundErrorÚGatedRepoErrorÚtitlerÖ   ÚmessageÚ ÚzerogpuÚgpuÚworkerz
rate limitÚ
rate_limitÚsleepingÚpausedu5   Space is sleeping or paused â€” try again in a minuteÚunauthorizedÚauthenticationzlog inÚapi_keyzapi keyz	not foundzrepository not foundÚbuild_errorzbuild erroru3   Space has a build error â€” contact the Space ownerz	timed outr#   Ú
connectionu1   Could not connect to the Space â€” it may be downÚunknown)r-   r/   rB   r¢   rÚ   )r`   Úhttp_statusrP  Ú	type_namer[  r\  Úfulls          r8   Ú_classify_errorrm  ì  s%  € Ø"€KÜ�q˜* dÓ+€HØÑÜ˜h¨°tÓ<ˆØÑÜ˜a °Ó5ˆà�jÓ à ØJñ
ð 	
ð �cÓà%ØSñ
ð 	
ð �cÓØ˜gÐ&Ð&ä�Q“× Ñ €IØð ó ð &ØSñ
ð 	
ð Ð$Ó$à ØJñ
ð 	
ô
 �A�w Ó%×+¨€EÜ�a˜ DÓ)×3¬S°«V€GØˆW�A�g�YÐ×%Ñ%Ó'€Dà�DÓ˜U d›]¨x¸4Ó/?Ø˜eÐ$Ð$Ø�$ƒ˜,¨$Ó.°,À$Ó2FØ˜gÐ&Ð&Ø�TÓ˜X¨Ó-à$ØQñ
ð 	
ð
 	˜$ÓØ˜tÓ#Ø�tÓØ˜ÓØ˜Óð !ØJñ
ð 	
ð �dÓÐ4¸Ó<à%ØSñ
ð 	
ð ˜Ó °Ó 5à'ØOñ
ð 	
ð �dÓ˜i¨4Ó/°<À4Ó3Gà&ØMñ
ð 	
ð $°2Ñ6Ð6rH   c                óð   • [        U SS 5      n[        U SS 5      =(       d    [        U 5      n[        U 5      nUR                  S5      S:X  a  SnS nSU0UEnU(       a  XS'   [        R
                  " U5      $ )Nr[  r\  rS  rR  zAuthentication requiredÚerror)r-   r¢   rm  rY   rV   rÈ   )r`   r[  r\  Ú
classifiedÚerrs        r8   Ú_format_errorrr  ;  ss   € Ü�A�w Ó%€EÜ�a˜ DÓ)×3¬S°«V€GÜ  Ó#€JØ‡~�~�lÓ# vÓ-Ø+ˆØˆØ�GÐ
*˜zÐ
*€CÞØˆG‰Ü�:Š:�c‹?ÐrH   c                óp   • U(       a  UR                   $ [        U5      (       a  [        5       =(       d    S$ g)uÒ   Return the HF token for this browser session. The host's locally saved
token is only revealed to sessions holding the write token â€” share-link
visitors and other remote clients get "" (logged-out experience).rÖ   )r  rì   rÑ   ©Ú_dataræ   r  s      r8   r   r   H  s-   € ö Ø�{‰{ÐÜ ×(Ñ(Ü*Ó,×2°Ð2ØrH   c                ó*   • [        X5      (       a  S$ S$ )Nró   rð   )r  rt  s      r8   Úget_write_accessrw  W  s   € ô
 & g×5Ñ5ˆ6ÐB¸7ÐBrH   c                ó@   • [         R                  " S5      =(       d    S$ )u   Return this Space's repo id (`owner/name`) for the "Save to Space" button.
Empty locally â€” the button is hidden there anyway.ÚSPACE_IDrÖ   )rK   rþ   ©ru  s    r8   Úget_space_idr{  _  s   € ô �9Š9�ZÓ ×& BÐ&rH   c                óö   • [         R                  " S5      nU(       a  SU 3$ [        R                  " [         R                  R                  U 5      R                  S5      5      R                  5       nSUSS  3$ )u€  A stable identity for this workflow, used by the canvas to key the
per-viewer layout and viewport it keeps in localStorage.

The workflow's *name* can't do that job: it is editable from the canvas, and
two unrelated workflows served from the same origin (same host and port, one
after the other) can share it â€” so one workflow's arrangement would be
applied to the other's nodes. What is needed is something stable across
restarts and across edits to the graph: on a Space the repo id, and locally
the graph file's path. The path is hashed rather than sent as-is so a
viewer's browser storage doesn't carry the author's directory layout.
ry  zspace:rR   zfile:Nr   )rK   rþ   ÚhashlibÚsha256rL   ÚabspathÚencodeÚ	hexdigest)Úworkflow_fileÚspaceÚdigests      r8   Ú_workflow_keyr…  e  sd   € ô �IŠI�jÓ!€EÞØ˜�wÐÐÜ�^Š^œBŸG™GŸO™O¨MÓ:×AÑAÀ'ÓJÓK×UÑUÓW€FØ�6˜#˜2�;�-Ð Ð rH   c                óh   • [        5       b&  [        [        R                  " S5      5      (       a  S$ S$ )zDTrue on a Space with `hf_oauth: true` (i.e. OAUTH_CLIENT_ID is set).ÚOAUTH_CLIENT_IDró   rð   )r   ÚboolrK   rþ   rz  s    r8   Úget_oauth_availabler‰  x  s4   € ô ‹;Ñ"¤t¬B¯IªIÐ6GÓ,H×'IÑ'Ið 	ðð ðrH   z5run nodes on the signed-in user's own inference quotaz$save the workflow back to this Space)zinference-apizwrite-reposúdict[str, str]ÚWORKFLOW_OAUTH_SCOPESc                 óÚ   • [        [        R                  " S5      =(       d    SR                  5       5      n [        R                  5        VVs0 s H  u  pX;  d  M  X_M     snn$ s  snnf )NÚOAUTH_SCOPESrÖ   )ÚsetrK   rþ   rß   r‹  r@   )ÚgrantedÚscopeÚwhys      r8   Ú_missing_workflow_oauth_scopesr’  ‡  s_   € Ü”2—9’9˜^Ó,×2°×9Ñ9Ó;Ó<€Gô 0×5Ñ5Ô7ôâ7‰JˆEØÑó 	ˆŠ
Ù7òð ùó s   ÁA'ÁA'c                 ój  • [        5       c  g [        R                  " S5      (       d  [        R                  " S[
        SS9  g [        5       n U (       d  g SR                  S U R                  5        5       5      nSR                  S U  5       5      n[        R                  " S	U S
U S3[
        SS9  g )Nr‡  z’Workflow OAuth is not enabled for this Space. Add `hf_oauth: true` to the README metadata so users can run workflows on their own inference quota.é   )Ú
stacklevelú, c              3  ó8   #   • U  H  u  pS U SU S3v •  M     g7f)Ú`z` (to Ú)NrA   )r‚   r�  r‘  s      r8   r…   Ú5_warn_workflow_oauth_configuration.<locals>.<genexpr>   s!   é € ÐQÂ±:°5˜˜5˜' ¨ u¨AÕ.Âùs   ‚z and c              3  ó.   #   • U  H  nS U S 3v •  M     g7f)r˜  NrA   )r‚   r�  s     r8   r…   rš  ¡  s   é € Ð<²G¨5˜A˜e˜W A�,²Gùs   ‚zWorkflow OAuth is missing z. Add z= under `hf_oauth_scopes` in the README metadata and redeploy.)	r   rK   rþ   ÚwarningsÚwarnÚUserWarningr’  rM   r@   )ÚmissingÚdetailÚscopess      r8   Ú"_warn_workflow_oauth_configurationr¢  �  s¢   € Üƒ{ÑØÜ�9Š9Ð&×'Ñ'Ü�Šðô Øò	
ð 	ä,Ó.€GÞØØ�Y‰YÑQÀÇÁÄÓQÓQ€FØ�\‰\Ñ<±GÓ<Ó<€FÜ‡M‚MØ
$ V H¨F°6°(ð ;Að 	AäØó	rH   c                ó  • [        5       b  [        R                  " S5      (       d  [        R                  " / 0 S.5      $ [        R                  " S5      =(       d    SR                  5       n[        R                  " U[        5       S.5      $ )z‡Which of `WORKFLOW_OAUTH_SCOPES` the Space's OAuth app was granted, and
which are missing. Empty off-Spaces and when OAuth is disabled.r‡  )r�  rŸ  r�  rÖ   )r   rK   rþ   rV   rÈ   rß   r’  )ru  r�  s     r8   Úget_oauth_scopesr¤  ª  sj   € ô ƒ{Ñ¤"§)¢)Ð,=×">Ñ">Ü�zŠz b°RÑ8Ó9Ð9Ü�yŠy˜Ó(×.¨B×5Ñ5Ó7€GÜ�:Š:àÜ5Ó7ñ	
óð rH   c                óp  ^^• U (       a  U S   OSn [        U 5      S:”  a  U S   OS n[        U 5      S:”  a  U S   OSn[        U SX!5      n[        R                  " SU=(       d    S5      (       d  [        R
                  " SS	S
S.5      $ [        X6S9n[        R                  " U5      nU(       a  US:X  ad  UR                  SS9n	[        [        U	[        5      (       a  U	R                  S0 5      O0 R                  5       5      n
XJ;   a  UOU
(       a  U
S   OSn/ nU He  n[        U[        5      (       a<  SU;   d  SU;   a0  [        U5      nUR                  U(       a  [!        U5      OS 5        MT  UR                  U5        Mg     ["        R$                  " US ["        R&                  5      nU(       a%  US   c  UR)                  5         U(       a  US   c  M  UR*                  " USU06n[        U[        [,        45      (       a  [        U5      OU/n[.        R0                  R3                  [4        R6                  " 5       5      mUU4S jm[        R
                  " U Vs/ s H  nT" U5      PM     sn5      $ s  snf ! [8         a+  n[:        R=                  SUUSS9  [?        U5      s S nA$ S nAff = f)Nr   rÖ   r+   é   ú[]r”  ú[a-zA-Z0-9_.-]+/[a-zA-Z0-9_.-]+zInvalid Space IDrU  z%Space ID must be in owner/repo format©ro  rS  rT  ©r  z/predictrX   )Úreturn_formatÚnamed_endpointsr&  rL   c                ó*   • [        U 5      (       a  U $ S $ r  )rC  )r^   s    r8   Ú<lambda>Úcall_space.<locals>.<lambda>ä  s   € œ=¨×+Ñ+�aÐ5°Ð5rH   r�   Úapi_namec                ó  >• [        U [        5      (       a´  U R                  S5      =(       d    U R                  S5      n[        U[        5      (       at  [        R
                  R                  U5      R                  T5      (       aA  [        R
                  R                  U5      (       a  US[        R                  " U5       3SS.$ U $ [        U [        5      (       at  [        R
                  R                  U 5      R                  T5      (       aA  [        R
                  R                  U 5      (       a  U S[        R                  " U 5       3SS.$ [        U [        [        45      (       a  U  Vs/ s H  nT" U5      PM     sn$ U $ s  snf )NrL   rê   r/  Tr0  )r1   rX   rY   r¢   rK   rL   Úrealpathrà   Úexistsr6  r7  rZ   Útuple)ÚitemrL   ÚsÚ_tmpdirÚprocess_items      €€r8   r¸  Ú call_space.<locals>.process_itemî  s:  ø€ Ü˜$¤×%Ñ%Ø—x‘x Ó'×<¨4¯8©8°GÓ+<�ä˜t¤S×)Ñ)ÜŸ™×(Ñ(¨Ó.×9Ñ9¸'×BÑBÜŸ™Ÿ™ t×,Ñ,ð !%Ø!2´<×3PÒ3PÐQUÓ3VÐ2WÐXØ#'ñð ð
 �ä˜4¤×%Ñ%Ü—G‘G×$Ñ$ TÓ*×5Ñ5°g×>Ñ>Ü—G‘G—N‘N 4×(Ñ(ð !Ø.¬|×/LÒ/LÈTÓ/RÐ.SÐTØ#ñð ô
 ˜$¤¤u ×.Ñ.Ù15Ó6²¨A™ Qž±Ñ6Ð6ØˆKùò 7s   Å3F
zcall_space failed for %s: %sT©Úexc_info) r0   r   ÚreÚ	fullmatchrV   rÈ   r   ÚloadsÚview_apirZ   r1   rX   rY   ÚkeysrC  r¥   r   r6  ÚtraverseÚis_file_obj_with_metaÚpopÚpredictr´  rK   rL   r²  ÚtempfileÚ
gettempdirr[   r\   ro  rr  )r»   ræ   r  r  ÚendpointÚ	args_jsonr'  Úclientr5   Úapi_infoÚnamedÚ	processedÚargr@  r§   r¨   r`   r·  r¸  s                    @@r8   Ú
call_spacerÎ  ¸  sN  ù€ ö ˆt�AŠw B€HðQ Ü! $›i¨!›m�4˜’7°ˆÜ" 4›y¨1›}�D˜’G°$ˆ	Ü! $¨¨5Ó:ˆÜ�|Š|Ð>ÀÇÈB×OÑOÜ—:’:à/Ø"-Ø"Iñóð ô ˜Ñ1ˆÜ�zŠz˜)Ó$ˆÞ˜8 zÓ1Ø—‘°V�Ð<ˆHÜô " (¬D×1Ñ1ð —L‘LÐ!2°BÔ7àß‘$“&óˆEð %Ó-‘Æ°E¸!²HÈ:ð ð ˆ	ÛˆCÜ˜#œt×$Ñ$¨%°3«,¸&ÀC»-Ü# CÓ(�Ø× Ñ ¶S¤¨SÔ!1¸dÖCà× Ñ  Ö%ñ ô !×)Ò)ØÙ5Ü×.Ñ.ó
ˆ	ö
 ˜I b™MÑ1Ø�M‰MŒOö ˜I b™MÓ1à—’ Ð>°XÑ>ˆÜ!+¨F´T¼5°M×!BÑ!B”�f”ÈÈˆä—'‘'×"Ñ"¤8×#6Ò#6Ó#8Ó9ˆö	ô8 �zŠz±FÓ;²F¨q™<¨ž?±FÑ;Ó<Ð<ùÒ;øÜó  Ü�‰Ð3°X¸qÈ4ˆÑPÜ˜QÓÕûð ús>   ’A7J  Â
EJ  ÇBJ  É"I;É4J  É;J  Ê 
J5Ê
 J0Ê*J5Ê0J5Útext_to_imageÚpromptÚPromptrˆ   r°   r±   ÚImageÚimage)r‡   rŠ   r/   Úoutput_index)rœ   r›   Útext_to_speechÚTextÚAudioÚaudioÚtext_to_videoÚVideoÚvideoÚimage_to_imageÚimage_to_videoÚtext_generationÚmarkdownÚsummarizationÚSummaryÚtranslationÚsrc_langzSource LanguageÚtgt_langzTarget LanguageÚTranslationÚ	fill_maskÚResultrV   Útext_classificationÚLabelsÚtoken_classificationÚEntitiesÚzero_shot_classificationÚcandidate_labelszCandidate LabelsÚScoresÚsentence_similarityÚsentenceÚSentenceÚother_sentenceszOther SentencesÚquestion_answeringÚquestionÚQuestionÚcontextr   ÚAnswerÚfeature_extractionÚ
EmbeddingsÚimage_classificationÚobject_detectionÚ
DetectionsÚSegments)Úimage_segmentationÚautomatic_speech_recognitionÚaudio_classificationÚchat_completionzdict[str, dict]Ú_INFERENCE_ENDPOINT_SCHEMASi @  ÚpngÚwavÚmp4)rÏ  rÜ  rÕ  rÙ  rÝ  Ú_ENDPOINT_OUTPUT_EXTútext-generationztext2text-generationÚconversationalz	fill-maskztext-classificationztoken-classificationzzero-shot-classificationzsentence-similarityzquestion-answeringzfeature-extractionztext-to-imageztext-to-speechztext-to-audioztext-to-videozimage-to-imagerþ  rÿ  r   r  )zimage-to-videozimage-text-to-videozimage-classificationzobject-detectionzimage-segmentationzautomatic-speech-recognitionzaudio-classificationzimage-text-to-textÚ_PIPELINE_TAG_TO_ENDPOINTz[\n,]z\n)rì  rï  zdict[str, dict[str, str]]Ú_ENDPOINT_LIST_KWARGSc           	     ó¼   • SSK Jn  [        R                  5        VVs/ s H  u  pE[	        X4S 5      c  M  SU0UEPM     nnn[
        R                  " U5      $ s  snnf )Nr   ©ÚInferenceClientr¾   )rh   r  r  r@   r-   rV   rÈ   )ru  Ú_requestÚ_tokenr  r¾   ÚschemaÚ	endpointss          r8   Úget_model_endpointsr  ó  s`   € õ 0ô 8×=Ñ=Ô?ôâ?‰LˆDÜ�?¨$Ó/ó 	!ˆ�Ð ˜Ó Ù?ð ñ ô
 �:Š:�iÓ Ð ùós
   žAµ
Ac                ó(  •  [         R                  " U 5      n[        UR                  5      n[        S UR                  R                  5        5       5      n0 n0 nUR                  5        H  u  pxX‡U;   a  UOUU'   M     U(       d  U$ SU;   a#  0 UR                  S5      =(       d    0 EUEUS'   U$ U(       a  UR                  U5        U$ [        SSR                  [        U5      5       S35      e! [        [        4 a    [	        U5      s $ f = f)zBRoute *params* per fn's signature: extra_body / **kwargs / reject.c              3  ón   #   • U  H+  oR                   [        R                  R                  :H  v •  M-     g 7fr  )r¹   rÀ   Ú	ParameterÚVAR_KEYWORD)r‚   r‹   s     r8   r…   Ú$_partition_params.<locals>.<genexpr>	  s'   é € ð Ú9P°A�‰”'×#Ñ#×/Ñ/Ö/Ò9Pùs   ‚35Ú
extra_bodyz#Model doesn't accept parameter(s): r–  zE. Remove those from the node or switch to a model that supports them.)rÀ   rÁ   rÂ   r‘   rX   rŽ  rÄ   r  Úvaluesr@   rY   ÚupdaterM   Úsorted)	r€   ÚparamsrÊ   Úparam_namesÚaccepts_kwargsÚknownri  rç   rè   s	            r8   Ú_partition_paramsr     s  € ðÜ×Ò Ó#ˆô �c—n‘nÓ%€KÜñ Ø9<¿¹×9NÑ9NÔ9Póó €Nð €EØ€GØ—‘–‰ˆØ67�{Ó"‰¨°Ó3ñ æØˆØ�{Ó"ØL %§)¡)¨LÓ"9×"?¸RÐLÀGÐLˆˆlÑØˆÞØ�‰�WÔØˆÜ
Ø
-¨d¯i©i¼¸w»Ó.HÐ-Ið JNð 	Nóð øô% ”zÐ"ó Ü�F‹|Òðús   ‚C3 Ã3DÄDc           	     óô  • [        XS5      nUc   SSKn[        SU SUR                   S35      e[        R                  U0 5      R                  S/ 5       Vs/ s H  oUS   PM	     nn0 nUS:X  a  [        O[        nUR                  5        H¤  u  pšU
b  U
S	:X  a  M  [        R                  " S
U	5      nU(       aI  X–;  aD  [        UR                  S5      5      [        U5      :  a  U[        UR                  S5      5         n	[        U
[        5      (       a  SU
;   d  SU
;   a  U" U
5      OU
Xy'   M¦     [         R                  U0 5      R                  5        H{  u  pÍ[        UR                  U5      ["        5      (       d  M+  [        R$                  " X×U   5       Vs/ s H)  oîR'                  5       (       d  M  UR'                  5       PM+     snX|'   M}     US:X  a5  UR                  S5      (       d  [)        U SSUR                  SS	5      05      $ US:X  Ga  / nUR                  S5      (       a  UR+                  SUS   S.5        [        UR                  S5      5      nU(       a  UR+                  SSU0S.5        U(       d  [        S5      eUR                  5        V	V
s0 s H  u  pšU	S;  d  M  Xš_M     nn	n
UR-                  S[.        5        [1        U R2                  U5      n/ nSnSnU R2                  " SUS./4SS0UD6 H¢  nUR4                  (       d  M  UR4                  S   n[        USS5      nUbN  UR6                  (       a  UR+                  UR6                  5        U[        [        USS5      =(       d    S	5      -  nUR8                  (       d  M–  UR8                  nM¤     S	R;                  U5      R'                  5       nU(       dE  [        U SS5      =(       d    S nUS!:X  a  [        U S"[.         S#U S$35      e[        U S%U S&35      e[<        R>                  " U/5      $ [1        X75      nUS':X  a  UR-                  S(S)5         U" S40 UD6nO[G        XU5      n[H        R                  U5      nU(       a!  [<        R>                  " [K        UU5      /5      $ [        U[L        5      (       a   U(       a  [O        US   S.5      (       a  US   nS/ H7  n [O        UU 5      (       d  M  [<        R>                  " [        UU 5      /5      s  $    [        U[L        5      (       a1  S0 n![<        R>                  " U Vs/ s H  nU!" U5      PM     sn/S1 S29$ [O        US35      (       a%  [<        R>                  " URQ                  5       /5      $ [<        R>                  " [        U["        [        [R        [T        45      (       a  U/5      $ [#        U5      /5      $ s  snf s  snf s  sn
n	f ! [@         ax  n[#        U5      RC                  5       nS*U;   aS  S+U;   aM  U R3                  SUR                  S,S	5      S./S)S-9nUR4                  S   RD                  R6                  n SnAGNe SnAff = fs  snf )5z:Call client.<endpoint>(**kwargs) and serialize the result.Nr   zTask 'z=' is not supported by the installed huggingface_hub version (z4). Upgrade it with `pip install -U huggingface_hub`.rœ   r‡   r  rÖ   zin_(\d+)r+   r&  rL   rì  rí  rè  rˆ   )r/   rˆ   rÓ  Ú	image_url)r/   r"  z+Connect a prompt or an image to this model.)rˆ   rÓ  Ú
max_tokensÚuser)ÚroleÚcontentÚstreamTÚdeltaÚreasoning_contentÚmodelz	The modelÚlengthz	 hit the z-token limit (zŒ characters of reasoning) before producing an answer. Simplify the prompt or use a smaller image, or raise gradio.workflow._CHAT_MAX_TOKENS.z! returned no text (finish_reason=z).rÞ  Úmax_new_tokensi   znot supportedr  rÐ  )r#  Úanswer)Úsummary_textÚtranslation_textÚgenerated_textrˆ   r-  c                óÀ   • [        U S5      (       aF  [        U 5      R                  5        VVs0 s H  u  pUR                  S5      (       a  M  X_M!     snn$ U $ s  snnf )NÚ__dict__r”   )r5  Úvarsr@   rà   )Úrrç   rè   s      r8   Ú_itemÚ'_dispatch_model_endpoint.<locals>._item—  sJ   € Ü�q˜*×%Ñ%Ü)-¨a«¯©¬ÔRª¡ ÀÇÁÈS×@Q›˜š©ÒRÐRØˆHùó Ss   ®AÁAc                óP   • [        U S5      (       a  [        U 5      $ [        U 5      $ )Nr2  )r5  r3  r¢   )Úos    r8   r®  Ú*_dispatch_model_endpoint.<locals>.<lambda>ž  s    € ¬°°J×)?Ñ)?œd 1›gÐKÄSÈÃVÐKrH   )ÚdefaultÚtolistrA   )+r-   rh   r‘   Ú__version__r  rY   rN  rC  r@   r¼  r½  ÚintÚgroupr0   r1   rX   r
  r¢   rß   r�   Ú_dispatch_model_endpointr¥   Ú
setdefaultÚ_CHAT_MAX_TOKENSr   r  Úchoicesr&  Úfinish_reasonrM   rV   rÈ   r[   rÚ   r\  r   r  r:  rZ   r5  r;  r=   rˆ  )"rÉ  rÇ  Úkwargsr€   rh   r‹   Ú
schema_idsÚcleanÚto_urlrç   rè   ÚlegacyÚkeyÚsepr¶  r&  r"  ÚextrasÚchat_paramsÚpartsÚreasonedrC  ÚchunkÚchoicer(  rˆ   Ú
model_namer§   ÚinnerÚmsgr4  r8  Úattrr5  s"                                     r8   r?  r?    sñ  € ä	� 4Ó	(€BØ	�zÛäØ�X�Jð Ø'×3Ñ3Ð4ð 50ð0ó
ð 	
ô 5×8Ñ8¸À2ÓF×JÑJÈ8ÐUWÔXóÚX�Aˆ$ŒÑXð ð ð €Eð !)Ð,=Ó =�_Ä=€FØ—‘–‰ˆØ‰9˜˜R›ÙÜ—’˜k¨1Ó-ˆÞ�aÓ)¬c°&·,±,¸q³/Ó.BÄSÈÃ_Ó.Tàœ3˜vŸ|™|¨A›Ó/Ñ0ˆAä# A¤t×,Ñ,°%¸1³*ÀÈ!Ã‰F�1ŒIÐRSð 	‹ñ ô *×-Ñ-¨h¸Ó;×AÑAÖC‰ˆÜ�e—i‘i “n¤c×*Ó*Ü-/¯XªX°cÀ¹:Ô-FÓTÒ-F¨Ï'É'Ï)›)˜!Ÿ'™'ž)Ñ-FÑTˆE‹Jñ Dð Ð-Ó-°e·i±iÐ@R×6SÑ6Sä'ØÐ)¨F°E·I±I¸fÀbÓ4IÐ+Jó
ð 	
ð Ð$Ô$ØˆØ�9‰9�V×ÑØ�N‰N F°E¸&±MÑBÔCÜ# E§I¡I¨gÓ$6Ó7ˆ	ÞØ�N‰N K¸uÀiÐ>PÑQÔRÞÜÐJÓKÐKØ#(§;¡;¤=ÔO¢=™4˜1°AÐ=NÑ4N“$�!’$¡=ˆÑOØ×Ñ˜,Ô(8Ô9Ü'¨×(>Ñ(>ÀÓGˆð
 ˆØˆØˆØ×+Ò+Ø¨Ñ1Ð2ñ
àð
ð ô
ˆEð
 —=—=ÙØ—]‘] 1Ñ%ˆFÜ˜F G¨TÓ2ˆEØÑ Ø—=—=Ø—L‘L §¡Ô/ØœC¤¨Ð/BÀDÓ I× OÈRÓPÑP�Ø×#×#Ñ#Ø &× 4Ñ 4’ñ
ð �w‰w�u‹~×#Ñ#Ó%ˆÞÜ  ¨°$Ó7×F¸;ˆJØ Ó(ô !Ø!�l )Ô,<Ð+=ð >Ø �zð ">ð>óð ô Ø�,Ð?À¸ÈbÐQóð ô �zŠz˜4˜&Ó!Ð!Ü˜bÓ(€EØÐ$Ó$Ø×ÑÐ)¨3Ô/ð	Ù‘[˜%‘[‰Fô $ F°Ó6ˆÜ
×
"Ñ
" 8Ó
,€CÞ
Ü�zŠzœ9 V¨SÓ1Ð2Ó3Ð3Ü�&œ$×Ñ¦F¬w°v¸a±yÀ(×/KÑ/Kà˜‘ˆóˆô �6˜4× Ó Ü—:’:œw v¨tÓ4Ð5Ó6Ò6ñô �&œ$×Ñò	ô
 �zŠzÙ &Ó'¢˜1‰e�AŽh¡Ñ'Ð(ÙKñ
ð 	
ô ˆv�x× Ñ Ü�zŠz˜6Ÿ=™=›?Ð+Ó,Ð,Ü�:Š:Ü˜f¤s¬C´¼Ð&=×>Ñ>ˆÐPóð ÜDGÈÃKÐPóð ùòsùò( Uùó Pøô\ ó 		Ü�e“*×"Ñ"Ó$ˆCØ #Ó%Ð*:¸cÓ*AØ×*Ñ*Ø$°·±¸8ÀRÓ1HÑIÐJØ"ð +ð �ð Ÿ™ 1™×-Ñ-×5Ñ5–àûð		üòF (sC   ÁW ÆW%Æ:W%Ê$W*Ê4W*ÑW0 ÕY5×0
Y2×:A,Y-Ù,Y-Ù-Y2c           	     óŠ  • U (       a  U S   OSnSn SSK Jn  [        R                  " SU=(       d    S5      (       d  [        R
                  " SSSS.5      $ [        U 5      S	:”  a  U S	   OS n[        U 5      S
:”  a  U S
   OSn[        U SX!5      n[        U 5      S:”  a  U S   (       a  U S   OSn	U" X8U	S9n
[        R                  " U5      n[        U[        5      (       a<  [        R                  U=(       d    S5      =(       d    U=(       d    Sn[        X¬U5      $ U=(       d    SnU(       a  US   OSn[        U5      S	:”  a  US	   OSnUS:X  aš  U(       a  SSU 30O0 n[        R                  " SU 3US[!        U5      0SS9nUR#                  5         SS KnSSKJn  UR+                  UR-                  UR.                  5      5      n[        R
                  " [1        US5      /5      $ [        R                  U5      nU(       aK  [2        U   S   n[5        US [        U5       5       VVs0 s H  u  nnUU   S   U_M     nnn[        X¬U5      $ S nUS L =(       d    US:H  nU(       a  U" U5      OU" U5      U" U5      /nU(       a  SSU 30O0 n[        R                  " SU 3USU0SS9nUR#                  5          UR	                  5       n[        R
                  " U/5      $ s  snnf ! [6         a    UR8                  n N5f = f! [6         a,  n[:        R=                  SUUUSS9  [?        U5      s S nA$ S nAff = f)Nr   rÖ   r  r¨  zInvalid model IDrU  z%Model ID must be in owner/repo formatr©  r+   r¦  r§  r”  r&   Úauto)r*  r  Úproviderr  zdepth-estimationr"  r#  z,https://api-inference.huggingface.co/models/rœ   é<   )r$   rV   r#   )rÒ  r  r‡   c                ó^   • [        U [        5      (       a  SU ;   d  SU ;   a  [        U 5      $ U $ )Nr&  rL   )r1   rX   rC  )rè   s    r8   Ú_resolveÚcall_model.<locals>._resolveä  s6   € ô ˜a¤×&Ñ&¨E°Q«J¸&ÀA»+ô ˜aÓ ðð ðrH   z&call_model failed for %s (task=%s): %sTrº  ) rh   r  r¼  r½  rV   rÈ   r0   r   r¾  r1   rX   r	  rY   r?  ÚhttpxÚpostrC  r%  ÚioÚPILrÒ  rU   ÚBytesIOr&  r:  r  r¤   r[   rˆ   r\   ro  rr  )r»   ræ   r  Úmodel_idÚtaskr  Úpipeline_tagrÈ  r'  rW  rÉ  r5   rÇ  Úa0Úa1r$   r(  Ú_ioÚ_ImageÚ	depth_imgÚschema_inputsr¨   ÚvalrD  rZ  Ú
a1_missingr_   Úfallback_respÚparsedr`   s                                 r8   Ú
call_modelrn  §  s=  € ö ˆt�AŠw B€HØ€DðV Ý3ä�|Š|Ð>ÀÇÈB×OÑOÜ—:’:à/Ø"-Ø"Iñóð ô #& d£)¨a£-�t˜A’w°TˆÜ" 4›y¨1›}�D˜’G°$ˆ	Ü! $¨¨5Ó:ˆô " $›i¨!›m°°Q·�4˜’7¸VˆÙ  xÈ(ÑSˆÜ�zŠz˜)Ó$ˆÜ�dœD×!Ñ!ä)×-Ñ-¨l×.@¸bÓA×WÀ\×WÐUWð ô ,¨F¸dÓCÐCà×0Ð0ˆÞˆT�!ŠW "ˆÜ˜D›	 A›ˆT�!ŠW¨2ˆàÐ%Ó%ÞAI�¨'°(°Ð(<Ñ=ÈrˆGÜ—:’:Ø>¸x¸jÐIØØ¤¨bÓ 1Ð2Øñ	ˆDð ×!Ñ!Ô#Ûå+àŸ™ C§K¡K°·±Ó$=Ó>ˆIÜ—:’:œy¨°EÓ:Ð;Ó<Ð<ä,×0Ñ0°Ó6ˆÞô 8¸ÑAÀ(ÑKˆMô (¨Ð-A¬s°=Ó/AÐ(BÔCôâC‘F�A�sð ˜aÑ  Ñ&¨Ò+ÙCð ñ ô ,¨F¸fÓEÐEò	ð ˜4�Z×+ 2¨¡8ˆ
Þ",‘(˜2”,±8¸B³<ÁÈ"ÃÐ2NˆÞ=E�? g¨h¨ZÐ$8Ñ9È2ˆÜŸ
š
Ø:¸8¸*ÐEØØ˜GÐ$Øñ	
ˆð 	×&Ñ&Ô(ð	(Ø"×'Ñ'Ó)ˆFô �zŠz˜6˜(Ó#Ð#ùó7øô2 ó 	(Ø"×'Ñ'ŠFð	(ûô ó  Ü�‰Ø4ØØØØð 	ñ 	
ô ˜QÓÕûð úsp   ’AL ÁCL ÄCL Ç-AL È/K*ÉL ÉA.L ËK0 ËL Ë*L Ë0L	ÌL ÌL	Ì	L Ì
MÌ!L=Ì7MÌ=Mc           
     ó„  •  U S   n[        U 5      S:”  a  U S   (       a  U S   OSn[        U 5      S:”  a  U S   (       a  U S   OSn[        U 5      S:”  a  U S   (       a  [        U S   5      OSn[        U 5      S:”  a  U S   (       a  [        U S   5      OSn[        U S	X!5      n[        R                  R                  UUUU[        US
5      S.5      n	[        R                  " [        SU	 3USS95      n
[        R                  " U
R                  S/ 5      U
R                  S/ 5       Vs/ s H  o»R                  S0 5      PM     snU
R                  SS5      S.5      $ s  snf ! [         aO  n[        R                  SU (       a  U S   OSUSS9  [        R                  " [        U5      SSS.5      s S nA$ S nAff = f)Nr   r+   r:  r¦  Útrainr”  r&   é
   é   éd   )rd   Úconfigrß   Úoffsetr+  z,https://datasets-server.huggingface.co/rows?é   ©r#   ÚfeaturesÚrowsÚrowÚnum_rows_total)rx  ry  r{  zfetch_dataset failed for %s: %srÖ   Trº  ri  r©  )r0   r=  r   râ   rã   Ú	urlencodeÚminrV   r¾  r)  rÈ   rY   r[   r\   ro  r¢   )r»   ræ   r  Ú
dataset_idrt  rß   ru  r+  r'  r  r§   r4  r`   s                r8   Úfetch_datasetr    s£  € ð%XØ˜!‘Wˆ
Ü ›I¨›M¨d°1¯g��a’¸9ˆÜ˜t›9 q›=¨T°!¯W��Q’¸'ˆÜ!$ T£¨Q£°4¸·7”�T˜!‘W”ÀˆÜ!$ T£¨Q£°4¸·7”�T˜!‘W”ÀˆÜ! $¨¨5Ó:ˆÜ—‘×'Ñ'à%Ø ØØ Ü˜f cÓ*ñó
ˆô —’ÜØ>¸v¸hÐGØØñó
ˆô �zŠzà"ŸJ™J z°2Ó6Ø39·:±:¸fÀbÔ3IÓJÒ3I¨aŸ™˜u bÖ)Ñ3IÑJØ"(§*¡*Ð-=¸qÓ"Añó
ð 	
ùò Køô ó XÜ�‰Ø-ÞˆD�ŠG ØØð	 	ñ 	
ô �zŠz¤C¨£F¸)ÐSUÑVÓWÕWûðXús1   ‚D*E& Ä,E!
ÅE& Å!E& Å&
F?Å0AF:Æ4F?Æ:F?c                ó´  • U R                  S5      SU R                  S5      =(       d    0 R                  S5      =(       d    SSS0U R                  S5      U R                  S5      (       a  S	/O/ U R                  S
5      U R                  S5      U R                  S5      (       a  S	/O/ SS.S[        U R                  S5      5      U R                  S5      S.
$ )Nr‡   r   Ú
validationÚ
latency_msÚstageÚRUNNINGrb  Úzero_gpuzzero-gpur[  ÚdescriptionÚgradio)r[  Úshort_descriptionÚtagsÚsdkTÚfeaturedÚ	thumbnail)
r‡   ÚlikesÚtrendingScoreÚruntimerc  r‰  ÚcardDataÚ_curatedÚ	_featuredÚ
_thumbnail©rY   rˆ  ©Úentrys    r8   Ú_curated_entry_to_space_resultr—  0  s»   € à�i‰i˜‹oØØŸ)™) LÓ1×7°R×<Ñ<¸\ÓJ×OÈaØ˜YÐ'ØŸ	™	 &Ó)Ø %§	¡	¨*× 5Ñ 5�‘¸2à—Y‘Y˜wÓ'Ø!&§¡¨=Ó!9Ø$)§I¡I¨j×$9Ñ$9�Z‘L¸rØñ	
ð Ü˜%Ÿ)™) JÓ/Ó0Ø—i‘i Ó,ñð rH   c           
     ó    • U R                  S5      SSU R                  S5      S[        U R                  S5      5      U R                  S5      S.$ )Nr‡   r   rb  Tr‹  rŒ  )r‡   r�  Ú	downloadsrc  r‘  r’  r“  r”  r•  s    r8   Ú_curated_entry_to_model_resultrš  D  sI   € à�i‰i˜‹oØØØŸ	™	 &Ó)ØÜ˜%Ÿ)™) JÓ/Ó0Ø—i‘i Ó,ñð rH   c           
     óî  • / nUR                  5       R                  5       nU  GHM  nUR                  S5      U:w  a  M  UR                  S5      =(       d    0 nUR                  SS5      n	U	(       a  U	S:w  a  MV  U(       a-  UR                  S5      U:w  a  UR                  S5      U:w  a  M‰  OU(       a  UR                  S5      U:w  a  M¨  U(       a�  SR                  [	        UR                  S	5      =(       d    S
5      [	        UR                  S5      =(       d    S
5      [	        UR                  S5      =(       d    S
5      /5      R                  5       n
Xj;  a  GM<  UR                  U5        GMP     U$ )Nr¹   r�  ÚstatusÚokrb  Úspace_categoryÚmodalityr]  r[  rÖ   r†  r‡   )rÚ   r�   rY   rM   r¢   r¥   )r@   Úkind_filterrb  ÚqueryrŸ  ÚoutÚqr–  rè   rœ  Úhaystacks              r8   Ú_filter_curatedr¥  P  s*  € ð €CØ�‰‹×ÑÓ€AÜˆØ�9‰9�VÓ Ó+ÙØ�I‰I�lÓ#×) rˆØ—‘�x Ó&ˆÞ�f “nÙÞØ�y‰y˜Ó  DÓ(¨U¯Y©YÐ7GÓ-HÈDÓ-PÙøÞ˜%Ÿ)™) JÓ/°8Ó;ÙÞØ—x‘xä˜Ÿ	™	 'Ó*×0¨bÓ1Ü˜Ÿ	™	 -Ó0×6°BÓ7Ü˜Ÿ	™	 $›×-¨2Ó.ðó÷ ‰e‹gð ð Ó ÚØ�
‰
�5×ñ- ð. €JrH   c                ó4  • U (       a  U S   OSn [        U 5      S:”  a  U S   (       a  U S   OSn[        U 5      S:”  a  U S   (       a  U S   OSn[        U 5      S:”  a  [        U S   [        5      (       a  U S   OSn[        U 5      S:”  a  [        U S   5      OSn[	        [        5       S	XTU5      nU(       a)  U V	s/ s H  o™R                  S
5      (       d  M  U	PM     nn	US:X  a  UR                  S SS9  OSS jn
UR                  U
S9  US S  V	s/ s H  n	[        U	5      PM     nn	[        R                  " U5      $ s  sn	f s  sn	f ! [         a@  n	[        R                  SX9SS9  [        R                  " S[        U	5      05      s S n	A	$ S n	A	ff = f)Nr   Útrendingr+   rÖ   r¦  r”  r&   Frƒ  r…  Únewc                ó6   • U R                  S5      =(       d    S$ ©NÚadded_atrÖ   r�   ©r`   s    r8   r®  Úsearch_spaces.<locals>.<lambda>‚  ó   €  Q§U¡U¨:Ó%6×%<¸"Ð%<rH   T©rI  Úreversec                ó  • U R                  S5      =(       d    0 nU R                  S5      (       a  SOSU R                  S5      (       a  SOSUR                  S5      =(       d    SU R                  S5      =(       d    S	4$ )
Nr�  r…  r   r+   r‹  r‚  i?B r«  rÖ   r�   )r`   rè   s     r8   Ú_rankÚsearch_spaces.<locals>._rank…  sg   € Ø—E‘E˜,Ó'×-¨2�àŸ™˜z×*Ñ*‘A°ØŸ™˜z×*Ñ*‘A°Ø—E‘E˜,Ó'×2¨7Ø—E‘E˜*Ó%×+¨ð	ð rH   ©rI  é0   z"search_spaces failed (kind=%s): %srº  ro  )r`   rX   r£   r´  )r0   r1   r¢   rˆ  r¥  ry   rY   Úsortr—  rV   rÈ   r[   r\   ro  )r»   r  r  r¹   r¡  Ú	space_tagrŸ  Úzero_gpu_onlyr@   r`   r²  Ú
normalizeds               r8   Úsearch_spacesrº  s  s^  € ö ˆ4�Š7 
€Dð-Ü˜t›9 q›=¨T°!¯W��Q’¸"ˆÜ" 4›y¨1›}°°a·�D˜’G¸bˆ	Ü! $›i¨!›m´
¸4À¹7ÄC×0HÑ0H�4˜’7ÈbˆÜ),¨T«°Q«œ˜T !™Wœ¸Eˆä¤£°¸)ÈHÓUˆÞÙ %Ó;¢˜1¯©¨z×):—Q¡ˆEÐ;à�5‹=Ø�J‰JÑ<ÀdˆJÒKôð �J‰J˜5ˆJÑ!àAFÀsÈÁÓLÂ¸AÔ4°QÖ7Áˆ
ÐLÜ�zŠz˜*Ó%Ð%ùò% <ùò" Møäó -Ü�‰Ð9¸4ÈTˆÑRÜ�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-úsB   �B.E Â>EÃEÃ!5E ÄEÄ+E Å
E Å
FÅ5FÆFÆFc                ó„  • U (       a  U S   OSn [        U 5      S:”  a  U S   (       a  U S   OSn[        U 5      S:”  a  U S   (       a  U S   OSn[        U 5      S:”  a  [        U S   [        5      (       a  U S   OSn[        [	        5       SXTU5      nUS:X  a  UR                  S	 S
S9  OUR                  S S9  US S  Vs/ s H  n[        U5      PM     n	n[        R                  " U	5      $ s  snf ! [         a@  n[        R                  SX8S
S9  [        R                  " S[        U5      05      s S nA$ S nAff = f)Nr   r§  r+   rÖ   r¦  r”  r*  r¨  c                ó6   • U R                  S5      =(       d    S$ rª  r�   r¬  s    r8   r®  Úsearch_models.<locals>.<lambda>£  r®  rH   Tr¯  c                ój   • U R                  S5      (       a  SOSU R                  S5      =(       d    S4$ )Nr‹  r   r+   r«  rÖ   r�   r¬  s    r8   r®  r½  ¦  s(   €  A§E¡E¨*×$5Ñ$5™q¸1¸a¿e¹eÀJÓ>O×>UÐSUÑVrH   r´  rµ  z"search_models failed (kind=%s): %srº  ro  )r0   r1   r¢   r¥  ry   r¶  rš  rV   rÈ   r[   r\   ro  )
r»   r  r  r¹   r¡  rc  rŸ  r@   r`   r¹  s
             r8   Úsearch_modelsr¿  —  s#  € ö ˆ4�Š7 
€Dð-Ü˜t›9 q›=¨T°!¯W��Q’¸"ˆÜ"% d£)¨a£-°D¸·G�t˜A’wÀˆÜ! $›i¨!›m´
¸4À¹7ÄC×0HÑ0H�4˜’7Èbˆä¤£°¸,ÈxÓXˆà�5‹=Ø�J‰JÑ<ÀdˆJÒKà�J‰JÙVð ñ ð BGÀsÈÁÓLÂ¸AÔ4°QÖ7Áˆ
ÐLÜ�zŠz˜*Ó%Ð%ùò Møäó -Ü�‰Ð9¸4ÈTˆÑRÜ�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-ús0   �B3C5 ÃC0ÃC5 Ã0C5 Ã5
D?Ã?5D:Ä4D?Ä:D?c                óÐ  •  [        5       n[        5       nU H`  nUR                  S5      =(       d    0 nUR                  SS5      S:w  a  M5  UR                  S5      nU(       d  MO  UR                  U5        Mb     [        R
                  " [        U5      5      $ ! [         a@  n[        R                  SUSS9  [        R
                  " S[        U5      05      s S nA$ S nAff = f)	Nr�  rœ  r�  rŸ  zcurated_modalities failed: %sTrº  ro  ©ry   rŽ  rY   ÚaddrV   rÈ   r  r[   r\   ro  r¢   )ru  r  r@   Úmodsr–  rè   Úmr`   s           r8   Úcurated_modalitiesrÅ  °  s¶   € ð-Ü“ˆÜ›ˆÛˆEØ—	‘	˜,Ó'×-¨2ˆAØ�u‰u�X˜tÓ$¨Ó,ÙØ—	‘	˜*Ó%ˆAßˆqØ—‘˜–ñ ô �zŠzœ& ›,Ó'Ð'øÜó -Ü�‰Ð4°aÀ$ˆÑGÜ�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-ús$   ‚A!B Á'3B Â
C%Â%5C ÃC%Ã C%c                óŒ  •  U (       a  U S   OS=(       d    Sn[        5       n[        5       nU H§  nU(       a  UR                  S5      U:w  a  M!  UR                  S5      =(       d    0 nUR                  SS5      S:w  a  MS  UR                  S5      nUR                  S5      nU(       a  UR                  U5        U(       d  M–  UR                  U5        M©     [        R
                  " [        U5      5      $ ! [         a@  n	[        R                  S	U	S
S9  [        R
                  " S[        U	5      05      s S n	A	$ S n	A	ff = f)Nr   rÖ   rŸ  r�  rœ  r�  rb  rž  z!curated_modality_tasks failed: %sTrº  ro  rÁ  )
r»   r  rŸ  r@   Útasksr–  rè   ÚtÚscr`   s
             r8   Úcurated_modality_tasksrÊ  Á  sû   € ð-Þ#�D˜’G¨×2°ˆÜ“ˆÜ›%ˆÛˆEÞ˜EŸI™I jÓ1°XÓ=ÙØ—	‘	˜,Ó'×-¨2ˆAØ�u‰u�X˜tÓ$¨Ó,ÙØ—	‘	˜&Ó!ˆAØ—‘Ð+Ó,ˆBÞØ—	‘	˜!”ßˆrØ—	‘	˜"–ñ ô �zŠzœ& ›-Ó(Ð(øÜó -Ü�‰Ð8¸!ÀdˆÑKÜ�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-ús$   ‚B?C9 Ã3C9 Ã9
EÄ5D>Ä8EÄ>Ec           
     óÂ  •  U (       a  U S   OS=(       d    Sn[        U 5      S:”  a  U S   OS=(       d    Sn[        5       nU H´  nUR                  S5      U:w  a  M  U(       a  UR                  S5      U:w  a  M8  UR                  S5      =(       d    0 nUR                  SS5      S:w  a  [        R                  " S	S
05      s  $ [        R                  " SS[        UR                  S5      5      S.5      s  $    [        R                  " S	S
05      $ ! [         a@  n[        R                  SUSS9  [        R                  " S[        U5      05      s S nA$ S nAff = f)Nr   rÖ   r+   r‡   r¹   r�  rœ  r�  ÚcuratedFTr‹  )rÌ  rœ  r‹  zis_curated failed: %srº  ro  )
r0   ry   rY   rV   rÈ   rˆ  r[   r\   ro  r¢   )r»   r  re   r¹   r@   r–  rè   r`   s           r8   Ú
is_curatedrÍ  Ø  s%  € ð-Þ"�4˜’7¨×1¨rˆÜ˜t›9 q›=��Q’¨b×7°RˆÜ“ˆÛˆEØ�y‰y˜‹ 'Ó)ÙÞ˜Ÿ	™	 &Ó)¨TÓ1ÙØ—	‘	˜,Ó'×-¨2ˆAØ�u‰u�X˜tÓ$¨Ó,Ü—z’z 9¨eÐ"4Ó5Ò5Ü—:’:à#Ø"Ü $ U§Y¡Y¨zÓ%:Ó ;ñóò ñ ô �zŠz˜9 eÐ,Ó-Ð-øÜó -Ü�‰Ð,¨a¸$ˆÑ?Ü�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-ús*   ‚CD Ã3D Ã:D Ä
EÄ5EÅEÅEzdict[str, tuple[float, str]]Ú_QUICKSEARCH_CACHEg      >@c                ó¦  ^^• SS K nU (       a  U S   (       a  U S   OSmT(       a  [        T5      S:  a  [        R                  " / / S.5      $  [	        U SX!5      mTR                  5       R                  5       nUR                  5       n[        R                  U5      nU(       a  US   U:”  a  US   $ SUU4S jjn[        R                  US5      n[        R                  US5      n	UR                  5       n
U	R                  5       n[        R                  " X«S.5      nU[        -   U4[        U'   [        [        5      S	:”  a=  [        [        R                  5       5      S S
  H  n[        R!                  US 5        M     U$ ! ["         aA  n[$        R'                  STUSS9  [        R                  " S[)        U5      05      s S nA$ S nAff = f)Nr   rÖ   r¦  )ÚspacesÚmodelsr+   c                ó€  >• S[         R                  R                  T5       SU  S3n [        UT5      n[        R
                  " U5      n[        U[        5      (       a5  UR                  U  S35      =(       d    UR                  U 5      =(       d    / $ [        U[        5      (       a  U$ / $ ! [         a    / s $ f = f)Nz)https://huggingface.co/api/quicksearch?q=z&type=z&limit=8r¶  )râ   rã   Úquoter)  rV   r¾  r1   rX   rY   rZ   r[   )rg   r&  Úrawrm  r'  r¡  s       €€r8   Ú_oneÚsearch_quick.<locals>._one	  s¯   ø€ ðÜ—\‘\×'Ñ'¨Ó.Ð/¨v°i°[ÀðJð ð	Ü! # xÓ0�ÜŸš C›�Ü˜f¤d×+Ñ+Ø!Ÿ:™:¨¨°1 oÓ6×U¸&¿*¹*ÀYÓ:O×UÐSUÐUÜ˜f¤d×+Ñ+Ø!�MØ�	øÜó Ø’	ðús   ©A+B. ÂB. Â,B. Â.B=Â<B=rƒ  r*  é   é@   zsearch_quick failed (q=%s): %sTrº  ro  )rg   r¢   r£   rZ   )ro   r0   rV   rÈ   r   rÚ   r�   rp   rÎ  rY   Ú_SEARCH_POOLÚsubmitr§   Ú_QUICKSEARCH_TTLrZ   rÀ  rÃ  r[   r\   ro  r¢   )r»   ræ   r  ro   Ú	cache_keyrs   rx   rÕ  Úspace_futureÚmodel_futurerÐ  rÑ  r_   rç   r`   r'  r¡  s                  @@r8   Úsearch_quickrß  ö  s‰  ù€ ó
 æ  Q§ˆD�ŠG¨R€EÞ”C˜“J “NÜ�zŠz R°2Ñ6Ó7Ð7ð&-Ü! $¨¨5Ó:ˆà—K‘K“M×'Ñ'Ó)ˆ	Ø�n‰nÓˆÜ#×'Ñ'¨	Ó2ˆÞ�f˜Q‘i #“oØ˜!‘9Ð÷	ð 	ô  $×*Ñ*¨4°Ó9ˆÜ#×*Ñ*¨4°Ó9ˆØ×$Ñ$Ó&ˆØ×$Ñ$Ó&ˆä—*’*¨ÑAÓBˆØ),Ô/?Ñ)?ÀÐ(IÔ˜9Ñ%ÜÔ!Ó" SÓ(ÜÔ,×1Ñ1Ó3Ó4°S°bÓ9�Ü"×&Ñ& q¨$Ö/ñ :àˆøÜó -Ü�‰Ð5°u¸aÈ$ˆÑOÜ�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-ús&   ÁA$F Â4CF Æ
GÆ6GÇGÇGz!^[a-zA-Z0-9_.-]+/[a-zA-Z0-9_.-]+$c                ó  • U =(       d    SR                  5       R                  S5      nU(       d  g[        R                  U5      (       a  US 4$ [        R
                  " SSU5      n[        R
                  " SSU5      n[        R                  " SU5      nU(       ac  UR                  S5      UR                  S	5      UR                  S
5      pTnUS:X  a	  U SU 3S4$ US:X  a	  U SU 3S4$ U SU 3U(       a  S4$ S 4$ g)NrÖ   r
  )rÖ   Nz^https?://(?:www\.)?z^hf\.co/zhuggingface.co/zC^huggingface\.co/(spaces|datasets|models)?/?([^/\s?#]+)/([^/\s?#]+)r+   r¦  r”  rÐ  rƒ  Údatasetsrd   r*  )r�   ÚrstripÚ_REPO_ID_REÚmatchr¼  Úsubr>  )rÔ  r¶  rÄ  Úsectionr  r¾   s         r8   Ú_parse_repo_inputrç  ,  sý   € Ø	��×ÑÓ×"Ñ" 3Ó'€AÞØÜ×Ñ˜×ÑØ�$ˆwˆÜ
�ŠÐ&¨¨AÓ.€AÜ
�Šˆ{Ð-¨qÓ1€AÜ
�ŠØNØ	ó	€Aö 	ØŸW™W Q›Z¨¯©°«°Q·W±W¸Q³Z�dˆØ�hÓØ�U˜!˜D˜6�? GÐ+Ð+Ø�jÓ Ø�U˜!˜D˜6�? IÐ-Ð-Ø��a˜�vˆ®7 Ð<Ð<¸Ð<Ð<ØrH   c                óø  ^• U (       a  U S   OSn [        U SX!5      m[        U5      u  pESU4S jjnU(       Gd   [        R                  " SUR	                  5       [        R
                  5      nU(       a­  UR                  S5      R                  S5      n[        S[        U5      5       Ht  n	SR                  US U	 5       SSR                  X‰S  5       3n
U" U
S5      nU(       d  M?  UR                  S	5      (       d  MW  [        R                  " SUS	   US
.5      s  $    [        R                  " SS05      $ US;   a  U/OSS/nU HH  nU" XM5      nU(       d  M  UR                  S	5      (       d  M,  [        R                  " XÛS	   US
.5      s  $    [        R                  " SUS.5      $ ! [         a@  n[        R!                  SX>SS9  [        R                  " S[#        U5      05      s S nA$ S nAff = f)Nr   rÖ   r+   c                ó®   >•  SU S[         R                  R                  U SS9 3n[        R                  " [        UT5      5      $ ! [         a     g f = f)Nzhttps://huggingface.co/api/zs/r
  )Úsafe)râ   rã   rÓ  rV   r¾  r)  r[   )Úridrg   r&  r'  s      €r8   Ú_tryÚresolve_repo.<locals>._tryL  s_   ø€ ðà1°)°¸BÜ—|‘|×)Ñ)¨#°CÐ)Ð8Ð9ð;ð ô —z’z¤+¨c°8Ó"<Ó=Ð=øÜó Ùðús   ƒAA Á
AÁAz!^(?:https?://)?([^/]+)\.hf\.spaceÚ-r
  rƒ  r‡   )r¹   r‡   Úrecordro  Ú
not_a_repo)rƒ  r*  rd   r*  rU  )ro  r‡   z resolve_repo failed (raw=%s): %sTrº  )rë  r¢   rg   r¢   r£   zOptional[dict])r   rç  r¼  rä  r�   Ú
IGNORECASEr>  rß   Úranger0   rM   rY   rV   rÈ   r[   r\   ro  r¢   )r»   ræ   r  rÔ  re   Ú	kind_hintrì  rå  rM  r¨   Ú	candidateÚrecÚ
repo_typesrg   r`   r'  s                  @r8   Úresolve_repor÷  B  s½  ø€ ö
 ˆ$ˆqŠ'˜r€Cð)-Ü! $¨¨5Ó:ˆÜ.¨sÓ3Ñˆ÷	÷ Ü—(’(Ø4°c·i±i³kÄ2Ç=Á=óˆCö ØŸ	™	 !›×*Ñ*¨3Ó/�Ü˜q¤# e£*Ö-�AØ#&§8¡8¨E°"°1¨IÓ#6Ð"7°q¸¿¹À%ÈÀ)Ó9LÐ8MÐ N�IÙ˜y¨'Ó2�Cß�s˜sŸw™w tŸ}›}Ü#ŸzšzØ%,°C¸±IÈÑMó ò ñ	 .ô —:’:˜w¨Ð5Ó6Ð6ð Ð9Ó9ð ‰Kà˜7Ð#ð 	ó
 $ˆIÙ�wÓ*ˆCßˆs�s—w‘w˜t—}“}Ü—z’z¨9À¹IÐQTÑ"UÓVÒVñ $ô �zŠz K°wÑ?Ó@Ð@øÜó -Ü�‰Ð7¸È$ˆÑOÜ�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-úsH   ‘CF/ Ã*F/ ÄF/ Ä!F/ Ä;F/ ÅF/ Å6F/ ÆF/ Æ/
G9Æ95G4Ç.G9Ç4G9c                óN  • U (       a  U S   OSn [        U SX!5      nU(       a#  S[        R                  R                  U5       S3OSnSU S3n[	        Xd5      $ ! [
         a@  n[        R                  SX7S	S
9  [        R                  " S[        U5      05      s S nA$ S nAff = f)Nr   rÖ   r+   zsearch=Ú&z$https://huggingface.co/api/datasets?z sort=likes&direction=-1&limit=20z%search_datasets failed (query=%s): %sTrº  ro  )r   râ   rã   rÓ  r)  r[   r\   ro  rV   rÈ   r¢   )r»   ræ   r  r¡  r'  Úsearch_paramr&  r`   s           r8   Úsearch_datasetsrû  t  sœ   € ö ˆD�ŠG €Eð-Ü! $¨¨5Ó:ˆÞAF˜¤§¡×!3Ñ!3°EÓ!:Ð ;¸1Ñ=ÈBˆØ4°\°NÐBbÐcˆÜ˜3Ó)Ð)øÜó -Ü�‰Ð<¸eÐQUˆÑVÜ�zŠz˜7¤C¨£FÐ+Ó,Õ,ûð-ús   �A	A Á
B$Á$5BÂB$ÂB$c                ó4  • U (       a  U S   OSn [        U SX!5      n [        R                  " [        S[        R
                  R                  U5       3USS95      nUR                  S/ 5      nU(       d  [        S	5      e[        S
 U 5       US   5      n [        R                  " [        S[        R
                  R                  UUS   US   S.5      -   USS95      n	[        R                  " US   US   U	R                  S/ 5      S.5      $ ! [         a  n[        S5      UeS nAff = f! [         a  n[        S5      UeS nAff = f! [         a@  n
[        R                  SX:SS9  [        R                  " S[        U
5      05      s S n
A
$ S n
A
ff = f)Nr   rÖ   r+   z6https://datasets-server.huggingface.co/splits?dataset=rv  rw  u:   Could not load dataset â€” it may not be viewer-compatibleÚsplitsz*No available splits found for this datasetc              3  ó:   #   • U  H  oS    S:X  d  M  Uv •  M     g7f)rß   rp  NrA   )r‚   r¶  s     r8   r…   Ú%get_dataset_schema.<locals>.<genexpr>—  s   é € ÐB¢&˜Q¨g©J¸'Ñ,A—q‘q¢&ùs   ‚’	z2https://datasets-server.huggingface.co/first-rows?rt  rß   )rd   rt  rß   rx  )rt  rß   rx  z$get_dataset_schema failed for %s: %sTrº  ro  )r   rV   r¾  r)  râ   rã   rÓ  r[   rY   r�   r|  rÈ   r\   ro  r¢   )r»   ræ   r  r~  r'  Úsplits_dataÚexcrý  ÚpickedÚ	rows_datar`   s              r8   Úget_dataset_schemar  ‚  s¬  € ö !��a’ b€Jð0-Ü! $¨¨5Ó:ˆð	ÜŸ*š*ÜØLÌVÏ\É\×M_ÑM_Ð`jÓMkÐLlÐmØØñóˆKð —‘ ¨2Ó.ˆÞÜÐHÓIÐIÜÑB¡&ÓBÀFÈ1ÁIÓNˆð	ÜŸ
š
ÜØHÜ—l‘l×,Ñ,à'1Ø&,¨XÑ&6Ø%+¨G¡_ñóñð ØñóˆIô$ �zŠzà  Ñ*Ø ™Ø%ŸM™M¨*°bÓ9ñó
ð 	
øô7 ó 	ÜØLóàðûð	ûô. ó 	ÜØLóàðûð	ûô ó -Ü�‰Ø2°JÈDð 	ñ 	
ô �zŠz˜7¤C¨£FÐ+Ó,Õ,ûð	-úse   �E ž?D Á:E ÂA	D/ Ã!/E Ä
D,ÄD'Ä'D,Ä,E Ä/
E
Ä9EÅE
Å
E Å
FÅ5FÆFÆFc                  ó\   ^ • \ rS rSrSr S	SSS.     S
U 4S jjjjrS rU 4S jrSrU =r	$ )ÚWorkflowi¹  aŽ  
Build and launch a visual AI workflow as a Gradio app.

Reads a workflow topology from a JSON file and optionally binds Python functions
that can be used as nodes in the workflow.

Example:
    ```python
    from gradio import Workflow

    def summarize(text: str) -> str:
        return text[:200]

    Workflow(graph="workflow.json", bind={"summarize": summarize}).launch()
    ```

The graph file uses schema version 2 and defines references, operators,
subjects, and edges:
    ```json
    {
      "schema_version": "2",
      "references": [
        {
          "id": "prompt", "role": "reference", "label": "Prompt",
          "asset_type": "text",
          "inputs": [{"id": "in", "label": "Text", "type": "text"}],
          "outputs": [{"id": "out", "label": "Text", "type": "text"}],
          "data": {"out": "A sunset over the ocean"}
        }
      ],
      "operators": [
        {
          "id": "image", "role": "operator", "kind": "model",
          "model_id": "black-forest-labs/FLUX.1-schnell",
          "pipeline_tag": "text-to-image", "endpoint": "text_to_image",
          "inputs": [{"id": "prompt", "label": "Prompt", "type": "text", "required": true}],
          "outputs": [{"id": "out_0", "label": "Image", "type": "image", "output_index": 0}],
          "data": {}
        }
      ],
      "subjects": [
        {
          "id": "result", "role": "subject", "label": "Image",
          "asset_type": "image",
          "inputs": [{"id": "in", "label": "Image", "type": "image"}],
          "outputs": [{"id": "out", "label": "Image", "type": "image"}],
          "data": {}
        }
      ],
      "edges": [
        {"id": "e1", "from_node_id": "prompt", "from_port_id": "out", "to_node_id": "image", "to_port_id": "prompt", "type": "text"},
        {"id": "e2", "from_node_id": "image", "from_port_id": "out_0", "to_node_id": "result", "to_port_id": "in", "type": "image"}
      ]
    }
    ```
N)Úbindr¿   c          
     óÖ  >• Ub$  [         R                  R                  U5      (       dŠ  [        R                  " S5      R
                  R                  n[         R                  R                  [         R                  R                  U5      5      n[         R                  R                  XQc  SOU5      n[        U[        5      (       a'  U Vs0 s H  n[        US[        U5      5      U_M     nnXl        [         R                  R                  [         R                  R!                  U5      5      S   R#                  SS5      R#                  SS5      R%                  5       U l        U=(       d    0 U l        U=(       d    / U l        [,        R.                  b  [1        S	5      e[2        R4                  " S
[6        5        [9        5         [:        TU ]y  SS9  U R?                  5         gs  snf )u  
Parameters:
    graph: Path to the workflow JSON file describing the canvas graph
        (nodes + edges). Relative paths are resolved from the directory
        containing the calling script. Defaults to `workflow.json` in
        that directory. The file is created on first save if it doesn't
        exist.
    bind: Functions callable from the canvas frontend via the `call_fn` server
        function. Pass a list of callables (keys default to ``fn.__name__``) or
        a dict mapping explicit names to callables.
    edges: List of ``(from_endpoint, to_endpoint)`` tuples that wire nodes
        together when generating a workflow from ``bind`` (ignored when an
        existing ``graph`` file is loaded). Each endpoint is either
        ``"fn_name"`` (uses the first available port) or
        ``"fn_name.port_label"`` to target a specific port.

        Example::

            edges=[
                ("shout", "reverse"),         # first output â†’ first input
                ("clean.output", "tag.text"), # by port label
            ]
Nr+   zworkflow.jsonrB   r   r”   r]  rî  z?gr.Workflow cannot be created inside another gr.Blocks context.zOgr.Workflow is currently in beta. Its API and UX may change in future releases.Úworkflow)Úmode) rK   rL   Úisabsr   Ú	_getframeÚf_codeÚco_filenamerN   r  rM   r1   rZ   r-   ÚreprÚ_workflow_fileÚsplitextÚbasenameÚreplacer[  Ú_workflow_nameÚ_boundÚ_edgesr   Ú
root_blockr‘   rœ  r�  rž  r¢  ÚsuperÚ__init__Ú_build)r®   Úgraphr  r¿   Úcaller_filenameÚ
caller_dirr€   Ú	__class__s          €r8   r  ÚWorkflow.__init__ó  sg  ø€ ð< ‰=¤§¡§¡¨e× 4Ñ 4Ü!Ÿmšm¨AÓ.×5Ñ5×AÑAˆOÜŸ™Ÿ™¬¯©¯©¸Ó)IÓJˆJÜ—G‘G—L‘LØ©}™OÀ%óˆEô �dœD×!Ñ!ÙDHÓIÂD¸b”G˜B 
¬D°«HÓ5°rÒ9ÁDˆDÐIà#Ôä�G‰G×ÑœRŸW™W×-Ñ-¨eÓ4Ó5°aÑ8ß‰W�S˜#Óß‰W�S˜#Óß‰U‹Wð	 	Ôð ,0¯:°2ˆŒØ-2¯[°bˆŒä×ÑÑ)ÜØQóð ô 	�ŠØ]Üô	
ô 	+Ô,ä‰Ñ˜jÐÑ)Ø�‰�ùò1 Js   Ã!G&c                ó0  ^ ^^^^^^• S T l         T R                  (       aN  [        R                  R	                  T R
                  5      (       a   [        R                  ST R
                  5        SU 4S jjmT R                  m[        R                  " 5       m S     SU4S jjjnT R
                  mSmSSU4S jjjnSS U4S jjjn  S     SUUU U4S jjjnS!S"U4S jjjn S!   S#S	 jjn[        [        [        [        [        UU[         ["        [$        [&        [(        [*        [,        [.        [0        [2        [4        [6        UU[8        U/nS
SKJmJn  [         ["        U[$        S.n	S$UU4S jjn
T    [A        5       b/  [        RB                  " S5      (       a  [D        RF                  " SS9  [I        TUS9  S S S 5        S%U 4S jjnT(       Ga  S
SKJ%n  [M        T5      [M        T Vs1 s H  n[N        RQ                  SU5      iM     sn5      :w  a]  T Vs/ s H  n[N        RQ                  SU5      PM     nnU Vs1 s H  oþRS                  U5      S:”  d  M  UiM     nn[U        SU S35      eU" T 5         TRW                  5        H<  u  nn[N        RQ                  SU5      n[D        RX                  " U" U5      SU 3SSS9  M>     S S S 5        U" T X©5      T l         g ! , (       d  f       GN/= fs  snf s  snf s  snf ! , (       d  f       N>= f)&NztWorkflow: edges= is ignored because '%s' already exists. Delete the file to regenerate the workflow from bind/edges.c                 ó  >•  [        TR                  SS9 n U R                  5       sS S S 5        $ ! , (       d  f       g = f! [         a?    TR                  (       a+  [        TR                  TR                  TR                  S9s $  g f = f)NrR   rS   )r¾   )rU   r  rK  ÚFileNotFoundErrorr  rÎ   r  r  )r^   r®   s    €r8   Ú_load_initialÚ&Workflow._build.<locals>._load_initialA  sl   ø€ ðÜ˜$×-Ñ-¸Ò@ÀAØŸ6™6›8÷ A×@×@ûä$ó Ø—;—;Ü.ØŸ™ T§[¡[°t×7JÑ7Jñò ñ ðús)   ƒA —1§	A ±
?»A ¿A ÁABÂ
Bc                ó¶  >• U (       a  U S   OSn [        U 5      S:”  a  U S   OSnTR                  U5      nUc  [        R                  " SU S3SSS	.5      $ [        R                  " U5      n[        U[        5      (       d  U/n[        XVUS US
9tpg[        R                  " U5      (       a  SS K
nUR                  U" U6 5      n	OU" U6 n	[        U	[        [        45      (       a  [        U	5      OU	/n
[        R                  " U
5      $ ! [         aB  n[        R                  SX;SS9  [        R                  " [!        U5      SSS	.5      s S nA$ S nAff = f)Nr   rÖ   r+   r§  zNo function 'z' bound to this workflowri  z&Check the bind= argument to Workflow()r©  rª  zcall_fn failed for %s: %sTrº  )r0   rY   rV   rÈ   r¾  r1   rZ   Ú_special_argsrÀ   ÚiscoroutinefunctionÚasyncioÚrunr´  r[   r\   ro  r¢   )r»   ræ   r  r„   rÈ  r€   r5   r”   r(  r§   r¢  r`   rÉ   s               €r8   Úcall_fnÚ Workflow._build.<locals>.call_fnO  s:  ø€ ö "&�d˜1’g¨2ˆGðÜ'*¨4£y°1£}˜D šG¸$�	Ø—Y‘Y˜wÓ'�Ø‘:ÜŸ:š:à'4°W°IÐ=UÐ%VØ*3Ø*Rñóð ô —z’z )Ó,�Ü! $¬×-Ñ-Ø ˜6�DÜ(¨°7¸DÈÑN��Ü×.Ò.¨r×2Ñ2Û"à$Ÿ[™[©¨T¨Ó3‘Fá ˜Y�FÜ&0°¼$Ä¸×&GÑ&G”d˜6”lÈfÈX�Ü—z’z #“Ð&øÜó Ü—‘Ð8¸'Èt�ÑTÜ—z’zÜ! !›f°IÈRÑPóõ ûðús%   ‘AD ÁB2D Ä
EÄ7EÅEÅEi  P c                óÖ  >• / nTR                  5        Hí  u  p4 [        R                  " U5      n [        U5      nUR                  R                  5        VVs/ s HU  u  pxUS:w  d  M  [        UR                  U5      5      (       a  M.  SU 3U[        R                  UR                  S5      S.PMW     n	nnU	(       d  SSSS./n	SS	[        R                  UR                  S5      S./n
UR                  UUU	U
S
.5        Mï     [         R"                  " U5      $ ! [        [        4 a    [        R
                  " 5       n GNf = f! [         a    [        US0 5      n GN%f = fs  snnf )zôReturn the bound functions' signatures so the canvas can offer
them as add-able nodes via a dedicated bottom-bar button. The
output port shape mirrors `_workflow_from_bind` so re-adding a
previously-deleted node produces an identical template.
rF   r®   r¯   rˆ   r°   r³   r´   r±   r²   )r€   rŠ   rœ   r›   )r@   rÀ   rÁ   r‘   rÂ   rÃ   r
   r[   r-   rÄ   r9   rY   rÅ   rÆ   rÇ   r¥   rV   rÈ   )ru  r  Ú	templatesr„   r€   rÊ   rË   r‹   rÌ   rœ   r›   rÉ   s              €r8   Úlist_bound_fnsÚ'Workflow._build.<locals>.list_bound_fnst  sr  ø€ ð ˆIØ$Ÿ{™{ž}‘�ð.Ü!×+Ò+¨BÓ/�Cð@Ü+¨BÓ/�Fð %(§N¡N×$8Ñ$8Ô$:ôò %;™˜Ø˜F‘{óô ,>¸f¿j¹jÈ»m×+LóØ # A 3˜iØ!"Ü +§¡°×0@Ñ0@À&Ó Iôñ
 %;ð ñ ö Ø%+°gÀvÑNÐO�Fð &Ø!)Ü +§¡°×0EÑ0EÀvÓ Nñð�ð × Ñ à%Ø!(Ø"(Ø#*ñ	öñ7  -ôF —:’:˜iÓ(Ð(øôA #¤IÐ.ó .Ü!×+Ò+Ó-“Cð.ûô !ó @Ü$ RÐ):¸BÓ?“Fð@üós4   šD±EÁE%Á)E%Â
+E%Ä%EÅEÅE"Å!E"c                óŠ   >• SSK JnJn  UR                  T" 5       5      nUb  U" U5      O/ n[        R
                  " SU05      $ )z±Describe the workflow's API endpoints (one per subgraph) for the
frontend "View API" panel. Re-reads the current graph so it tracks
live edits, same as the registered endpoints.r   )ÚWorkflowGraphÚdescribe_workflow_apir  )Úgradio.workflow_apir1  r2  Ú	from_jsonrV   rÈ   )ru  r  r1  r2  r  r  r#  s         €r8   Úget_workflow_apiÚ)Workflow._build.<locals>.get_workflow_api   sA   ø€ ÷ Qà!×+Ñ+©M«OÓ<ˆEØ8=Ñ8IÑ-¨eÔ4ÈrˆIÜ—:’:˜{¨IÐ6Ó7Ð7rH   c                ó   >• [        X5      (       d  [        R                  " SSSS.5      $  [        U [        5      (       a  U (       a  U S   O
[        U 5      n[        UR                  5       5      T	:”  a  [        R                  " SS05      $  [        R                  " U5      n[        U[        5      (       a  UR                  S	5      S
:w  a  [        R                  " SS05      $  SSKJn  U" U5        T
   [        TSSS9 nUR!                  U5        S S S 5        TR"                  b   TR"                  R%                  5         S S S 5        g! [        R                   a%  n[        R                  " SSU 305      s S nA$ S nAff = f! [         a%  n[        R                  " SSU 305      s S nA$ S nAff = f! , (       d  f       N­= f! [&         a    [(        R+                  SSS9   N¨f = f! , (       d  f       g= f! [&         a@  n[(        R+                  SUSS9  [        R                  " S[        U5      05      s S nA$ S nAff = f)Nz+Write access required to save this workflowrR  zXOpen the app via the write-access link printed at launch (or sign in as the Space owner)r©  r   ro  z#Workflow payload exceeds 5 MB limitzInvalid workflow JSON: Úschema_versionÚ2z*Workflow payload must use schema_version 2)r1  zInvalid workflow schema: ÚwrR   rS   z)Workflow: endpoint sync after save failedTrº  r�  zsave_workflow failed: %s)r  rV   rÈ   r1   rZ   r¢   r0   r€  r¾  ÚJSONDecodeErrorrX   rY   r3  r1  r‘   rU   r  Ú_api_endpointsÚsyncr[   r\   ro  )r»   ræ   r  r_   rm  r  r1  r^   r`   Ú_max_workflow_bytesÚ
_save_lockr®   r‚  s            €€€€r8   Úsave_workflowÚ&Workflow._build.<locals>.save_workflowª  s  ø€ ô
 $ G×3Ñ3Ü—z’zà!NØ&,ð'Lñóð ð 5Ü%/°´d×%;Ñ%;Æ˜$˜qš'Ì#ÈdË)�Ü�w—~‘~Ó'Ó(Ð+>Ó>ÜŸ:š: wÐ0UÐ&VÓWÐWðRÜ!ŸZšZ¨Ó0�Fô " &¬$×/Ñ/°6·:±:Ð>NÓ3OÐSVÓ3VÜŸ:š:Ø Ð"NÐOóð ðTÝAá! &Ô)ò  Ü˜m¨S¸7ÒCÀqØŸ™ Ô(÷ Dà×*Ñ*Ñ6ðØ ×/Ñ/×4Ñ4Ô6÷  ð øô/ ×+Ñ+ó RÜŸ:š: wÐ2IÈ#ÈÐ0OÐ&PÓQÕQûðRûô "ó TÜŸ:š: wÐ2KÈCÈ5Ð0QÐ&RÓSÕSûðTú÷ DÕCûô
  )ó Ü"ŸL™LØ KØ)-ð )ó ðú÷  ”Zð ûÜó 5Ü—‘Ð7¸ÀT�ÑJÜ—z’z 7¬C°«FÐ"3Ó4Õ4ûð5úsÓ   ­A H ÂE Â%AH Ã(F Ã6H Ã8G2ÄF=ÄG2Ä,GÅH ÅFÅ#FÅ=FÅ>H ÆFÆH Æ
F:ÆF5Æ/F:Æ0H Æ5F:Æ:H Æ=
G	ÇG2ÇG/Ç,G2Ç.G/Ç/G2Ç2
H Ç<H È H È
IÈ5IÉIÉIc                ó   >• [        T5      $ r  )r…  )ru  r‚  s    €r8   Úget_workflow_keyÚ)Workflow._build.<locals>.get_workflow_keyÚ  s   ø€ Ü  Ó/Ð/rH   c           	   “  óB  #   • SSK Jn   U (       a  U S   OSn[        U 5      S:”  a  U S   OSn[        U 5      S:”  a  U S   O0 n[        U 5      S:”  a  U S   O0 n[        U[        5      (       a  [        U[        5      (       d  [
        R                  " SS	05      $ UR                  U5      nUc  [
        R                  " SS05      $ UR                  [        U5      S
5      nUR                  UUUUUU=(       d    S
S9I S
h  v•N n	U	c  [
        R                  " SSS.5      $ [
        R                  " S[        R                  " U	5      05      $  NL! [         a@  n
[        R                  SU
SS9  [
        R                  " S[        U
5      05      s S
n
A
$ S
n
A
ff = f7f)zRecord a completed canvas run.r   )ÚhistoryrÖ   r+   r	  r¦  r”  ro  zMalformed run payloadNzNo server app for this request)ræ   rœ   r›   rÇ  Ú	bucket_iduR   History is not available â€” sign in with Hugging Face and connect a bucket first.rR  )ro  rS  rï  zrecord_workflow_run failed: %sTrº  )r‡  rF  r0   r1   rX   rV   rÈ   Úapp_from_requestÚendpoint_keyr¢   Ú
record_runÚdataclassesÚasdictr[   r\   ro  )r»   ræ   rF  rG  Úendpoint_labelrœ   r›   ÚapprÇ  rï  r`   s              r8   Úrecord_workflow_runÚ,Workflow._build.<locals>.record_workflow_runÝ  sƒ  é € õ
 'ð!5Þ'+˜D šG°�	Ü,/°«I¸«M  a¢¸z�Ü$'¨£I°£M˜˜aš°r�Ü%(¨£Y°£]˜$˜qš'¸�Ü! &¬$×/Ñ/´zÀ'Ì4×7PÑ7PÜŸ:š: wÐ0GÐ&HÓIÐIà×.Ñ.¨wÓ7�Ø‘;ÜŸ:š: wÐ0PÐ&QÓRÐRà"×/Ñ/´°NÓ0CÀTÓJ�à&×1Ñ1ØØ#Ø!Ø#Ø%Ø'×/¨4ð  2ð  ÷ �ð ‘>ÜŸ:š:ð&Gà*0ñóð ô —z’z 8¬[×-?Ò-?ÀÓ-GÐ"HÓIÐIñ!øô" ó 5Ü—‘Ð=¸qÈ4�ÑPÜ—z’z 7¬C°«FÐ"3Ó4Õ4ûð5üsk   ‚FŠBE ÂFÂ+E ÃFÃ;E ÄEÄE Ä#FÄ$+E ÅFÅE Å
FÅ5FÆFÆFÆFÆFr   )r1  Úregister_workflow_endpoints)rƒ  r*  r€   rd   c                 ó0   >• T R                  T" 5       5      $ r  )r4  )r1  r#  s   €€r8   Ú_current_graphÚ'Workflow._build.<locals>._current_graph-  s   ø€ Ø ×*Ñ*©=«?Ó;Ð;rH   r‡  F)Úvisible)rê   Úserver_functionsc                ó2   >^ •   S       SU U4S jjjnU$ )Nc              “  ó.  >^#   • [         R                  " U 5      m[        T[        5      (       d  T/m[	        TTUS US9tmn [
        R                  " T5      (       a  T" T6 I S h  v•N O4[        R                  R                  UU4S jT	R                  S9I S h  v•N n[        U[        [        45      (       a  [        U5      OU/n[         R                   " U5      $  Nx NE! [         a%  n[        R                  " [        U5      5      UeS nAff = f7f)Nrª  c                 ó   >• T" T 6 $ r  rA   )r5   r€   s   €€r8   r®  ÚJWorkflow._build.<locals>._wrap_bound_fn.<locals>.wrapper.<locals>.<lambda>G  s	   ø€ ¡B¨¡IrH   )Úlimiter)rV   r¾  r1   rZ   r&  rÀ   r'  ÚanyioÚ	to_threadÚrun_syncr[  r[   Úgrr  r¢   r´  rÈ   )
rÈ  r  r  r”   r§   r`   r¢  r5   r€   r®   s
          @€€r8   ÚwrapperÚ8Workflow._build.<locals>._wrap_bound_fn.<locals>.wrapper9  sì   ùé € ô
 —z’z )Ó,�Ü! $¬×-Ñ-Ø ˜6�DÜ(¨¨T°8¸TÈÑP���qð	2ô #×6Ò6°r×:Ñ:ñ ! $˜iŸ˜ä#(§?¡?×#;Ñ#;Ý-°t·|±|ð $<ð $÷ ð ô '1°¼$Ä¸×&GÑ&G”d˜6”lÈfÈX�Ü—z’z #“Ð&ñ (ñøô !ó 2ÜŸ(š(¤3 q£6Ó*°Ð1ûð2üsM   „>DÁ#C# Á&CÁ'4C# ÂC!ÂC# Â ?DÃC# Ã!C# Ã#
DÃ- DÄDÄD©NN)rÈ  r¢   r  úOptional[Request]r  úOptional[OAuthToken]r£   r¢   rA   )r€   r`  r®   s   ` €r8   Ú_wrap_bound_fnÚ'Workflow._build.<locals>._wrap_bound_fn8  s@   ù€ ð /3Ø/3ð'Øð'à+ð'ð -ð'ð ÷	'ñ 'ð, ˆNrH   )Ú_active_blocksr”   r+   zUgr.Workflow: bound function names produce duplicate endpoint names after sanitizing: z. Rename one.Úpredict_fn_r:  Úundocumented)r°  Úconcurrency_limitÚapi_visibility©r£   ú
str | Nonerb  ©ræ   rc  r  rd  r£   r¢   ©r  rd  r£   r¢   )r  rc  r£   r¢   r  ©r£   r¢   )ræ   rc  r£   r¢   )r£   zWorkflowGraph | None)r€   r   r£   r   )-r<  r  rK   rL   r³  r  r\   r]   r  Ú	threadingÚLockr   rw  r‰  r¤  r{  rÎ  rn  r  rº  r¿  rû  rß  r÷  rÍ  rÅ  rÊ  r  r  r3  r1  rQ  r   rþ   r_  ÚLoginButtonr   rg  r0   Ú_SANITIZE_RErå  Úcountr‘   r@   Úapi)r®   r*  r.  r5  r@  rC  rO  rV  rQ  ÚcallersrS  re  rg  rƒ   Ú	sanitizedr¶  Údupesr„   r€   Úsanitized_namer1  r#  r>  r?  rÉ   r‚  s   `                   @@@@@@r8   r  ÚWorkflow._build3  sà  þ€ ð ?CˆÔà�;�;œ2Ÿ7™7Ÿ>™>¨$×*=Ñ*=×>Ñ>Ü�N‰NðNà×#Ñ#ô÷		ð —‘ˆÜ—^’^Ó%ˆ
ð TXð	Ø,ð	Ø<Pð	à÷	ð 	ðB ×+Ñ+ˆà-Ð÷*	)ñ *	)÷X	8ñ 	8ð *.Ø*.ð.	5à&ð.	5ð (ð.	5ð ÷	.	5ó .	5÷`	0ñ 	0ð
 *.ð(	5à&ð(	5ð õ(	5ôV ÜÜÜÜØØÜÜÜÜÜÜÜÜÜÜÜ"ÜØØÜØð/
Ð÷4 	Sô  ÜØÜ$ñ	
ˆ÷	<ð 	<ò Ü‹{Ñ&¬2¯9ª9Ð5F×+GÑ+GÜ—’ uÒ-ÜØ#Ø!1ò÷ ÷	÷2 Ý:ä�5‹zœSÁEÓ!JÂE¸q¤,×"2Ñ"2°3¸Ö":ÁEÑ!JÓKÓKÙ?DÓEºu¸!œ\×-Ñ-¨c°1Ö5¹u�	ÐEÙ$-ÓH¢I˜q·±ÀÓ1CÀaÑ1GŸ¡I�ÐHÜ ð/Ø/4¨g°]ðDóð ñ
   Õ%Ø#(§;¡;¦=‘K�G˜RÜ%1×%5Ñ%5°c¸7Ó%C�NÜ—F’FÙ& rÓ*Ø#.¨~Ð.>Ð!?Ø*3Ø'5ô	ñ $1÷ &ñ :¸$ÀÓXˆÕ÷q ŽTüòH "KùÚEùÚH÷ &Õ%ús2   Å9AK&Ç/ K8
È K=ÉLÉLÉ>ALË&
K5Ì
Lc                ó”  >• U(       aT  [        [        R                  " [        TU ]  5      R
                  5      nUR                  [        [        X15      5      5        [        R                  " 5       /UR                  S5      =(       d    / QUS'   [        UR                  SS5      5      n[        UR                  SS5      5      nUR                  S5      nUb  [        U5      O	[        5       nSUS'   U R                  nS U l         [        TU ]  " S0 UD6n	X€l        U	u  p«nSn[        5       cQ  U(       aJ  SU;   a  S	OSnU U S
[          3nUR                  SS5      (       d  U(       a  SOSn[#        SU SU 35        U(       a9  [$        R&                  " U=(       d    U R(                  (       a	  U(       a  UOU5        [        [+        [,        S[,        R.                  R0                  5      5      nU(       d2  [3        [4        R6                  " SS5      5      S:X  d  U(       d  U(       d  U R                  5         U	$ ! X€l        f = f)ux  Launch the workflow as a Gradio app. Accepts the same arguments as `gr.Blocks.launch()`.
`call_space` / `_save_tmp` write inference outputs to the system tempdir
and serve them back as `/gradio_api/file=â€¦` URLs; the tempdir is added
to `allowed_paths` so those URLs resolve.

Locally, editing requires the write token: the full edit link is printed
after the standard launch output, and â€” unless `inbrowser` is passed
explicitly â€” opened in a browser tab automatically (like `jupyter
notebook` does with its token URL). Plain local/share URLs open the app
read-only. See `_should_auto_open_browser` for when the tab is opened.Úallowed_pathsÚprevent_thread_lockFÚdebugÚ	inbrowserNc                 ó   • g r  rA   rA   rH   r8   r®  Ú!Workflow.launch.<locals>.<lambda>‘  s   €  DrH   Ú?rù  zwrite_token=Úquietu    â€” opening it in your browserrÖ   z`
* Workflow write-access link (keep private as it lets you edit the workflow that all users see)z: Úps1ÚGRADIO_DEBUGrï   r+   rA   )rZ   rÀ   rÁ   r  ÚlaunchrÄ   r  rX   ÚziprÅ  rÆ  rY   rˆ  r  Úblock_threadr   rÞ   Úprintr  rU   Úsharer-   r   ÚflagsÚinteractiver=  rK   rþ   )r®   r5   rD  Únamesr~  r  Úexplicit_inbrowserr€  Úreal_block_threadÚlaunch_resultr”   Ú	local_urlÚ	share_urlÚ	write_urlrJ  ÚopeningÚis_in_interactive_moder  s                    €r8   r‡  ÚWorkflow.launchj  s
  ø€ ö Üœ×*Ò*¬5©7©>Ó:×EÑEÓFˆEØ�M‰Mœ$œs 5Ó/Ó0Ô1ä×ÒÓ!ð#
à�j‰j˜Ó)×/¨Rð#
ˆˆÑô # 6§:¡:Ð.CÀUÓ#KÓLÐÜ�V—Z‘Z ¨Ó/Ó0ˆð $ŸZ™Z¨Ó4Ðð "Ñ-ô Ð#Ô$ä*Ó,ð 	ð
 $ˆˆ{Ñà ×-Ñ-ÐÙ(ˆÔð	2Ü!™GšNÑ4¨VÑ4ˆMà 1ÔØ"/Ñˆ�iàˆ	Ü‹;Ñ¦9Ø 	Ó)‘#¨sˆCØ$˜+ c U¨,´{°mÐDˆIØ—:‘:˜g u×-Ñ-Þ?HÑ;Èb�ÜØwÐxð  xAð  ACð  DMð  CNð  Oôö Ü�OŠOØ×S¨4¯:¯:¾)™iÈôô "&¤g¬c°5¼#¿)¹)×:OÑ:OÓ&PÓ!QÐæÜ”2—9’9˜^¨SÓ1Ó2°aÓ7Þ'Ö0Fà×ÑÔØÐøð1 !2Õús   Ä	H? È?I)r<  r  r  r  r  r‰  r  )r  rm  r  z+dict[str, Callable] | list[Callable] | Noner¿   úlist[tuple[str, str]] | None)
rB   rC   rD   rE   Ú__doc__r  r  r‡  rG   Ú__classcell__)r  s   @r8   r  r  ¹  sW   ø† ñ7ðv !ð>ð =AØ.2ñ>àð>ð :ð	>ð
 ,÷>ñ >ò@uY÷n	Có CrH   r  )r4   Úobjectr£   rˆ  rp  )r£   ú
list[dict])r£   r?   )r¦   zlist[tuple[str, str]]r˜   rœ  r£   rœ  )NzMy Workflow)rÉ   zdict[str, Callable]r¿   r˜  r¾   r¢   r£   r¢   rl  )ræ   úRequest | Noner£   rˆ  )r£   rˆ  )r  rm  r£   rˆ  rb  )ræ   r�  r  zOAuthToken | Noner£   rˆ  r  )r»   rZ   r  r=  ræ   r�  r£   rm  )r   )r&  r¢   r'  rm  r#   r=  r£   r¢   )r8  r¢   r£   rX   )r`   r[   r£   rX   )r`   r[   r£   r¢   )NNNrn  )r‚  r¢   r£   r¢   )r£   rŠ  )r£   ÚNone)r  rc  r  rd  r£   r¢   )r  rX   r£   rX   )rÇ  r¢   rD  rX   r£   r¢   )r–  rX   r£   rX   )rÖ   )r@   rœ  r   r¢   rb  r¢   r¡  r¢   rŸ  r¢   r£   rœ  ro  )ræ   r�  r  rd  r£   r¢   )rÔ  r¢   r£   ztuple[str, Optional[str]])–r™  Ú
__future__r   rI  rK  r}  rÀ   rV   ÚloggingrG  rK   r¼  rÜ   r   rÅ  rq  r2   Úurllib.parserâ   rœ  r  Úcollections.abcr   Úconcurrent.futuresr   Útypingr   r   r   r	   r
   r\  r\  Úgradio_clientr   r   r   r6  rh   r   r   rÐ   r‡  r_  Úgradio.blocksr   Ú gradio.components.workflowcanvasr   Úgradio.contextr   Úgradio.helpersr   r&  Úgradio.oauthr   r   Úgradio.route_utilsr   Úgradio.utilsr   r   r   r   Úgradio.workflow_provider_shimsr   r3  r   ÚLimitsr$  rÙ  ri   rj   rr   Ú	frozensetr,   r9   r;   rI   rF   rr  rq   rP   ra   rm   ry   Ú	getLoggerrB   r\   r=  r=   rˆ  rÅ   Úcompilert  r¬   rÎ   rÑ   Útoken_urlsaferÞ   rá   rÛ   rì   r  r  r  r  r   r)  r:  rA  rC  rN  rm  rr  rw  r{  r…  r‰  r‹  r’  r¢  r¤  rÎ  r  rA  r  r	  r
  r  r   r?  rn  r  r—  rš  r¥  rº  r¿  rÅ  rÊ  rÍ  rÎ  rÛ  rß  rã  rç  r÷  rû  r  r  rA   rH   r8   Ú<module>r³     sÃ
  ðÚ Må "ã Û Û Û Û Û Û Û 	Û 	Û Û 
Û Û Û Û Û Û Ý $Ý 1ß LÕ Lã Û ß -Ý /Ý !Ý 5ã Ý  Ý ;Ý "Ý 8ß 1Ý &÷ó õ >æÝ;à�\Š\Ø%ØØÐ,Ð-Ø�<Š<°!ÀRÑHñ	€
ñ "¨aÀKÑP€à1Ð Ø&Ð ØÐ á˜Z¨°wÐ?Ó@€ô
ô �Iô  ð
 03¸TÑ B€�Ó BØ—’Ó €ôVôôô(ð2 
×	Ò	˜8Ó	$€ð �H˜e X¨t°YÐ?€Ø�zŠzÐ+Ó,€ð1Ø%ð1àð1ð ô1ðl +/Øð8Øð8à'ð8ð ð8ð 	õ	8ôv	ð" ×#Ò# BÓ'€à:Ð Ø5Ð ôô@)ñ\ ‹'€ôð( @Dð-Øð-Ø+<ð-à	õ-ð <@ð
Ø
ð
Øð
Ø*8ð
àõ
öô
7ôô.Kô Kô&L7ô^
ð Ø!%Ø"&ðàðð  ðð 	õ	ð  Ø!%Ø"&ðCàðCð  ðCð 	õ	Cö'ô!ö&ð MØ9ñ)Ð �~ó ôôö4ð LPðU Ø$ðU Ø4HðU àõU ðpe0Øà h¸Ñ?ð
ð  W°gÈqÑQð
ñ	ðe0ð à F°FÑ;ð
ð  W°gÈqÑQð
ñ	ðe0ð" à h¸Ñ?ð
ð  W°gÈqÑQð
ñ	ð#e0ð2 à W°gÑ>Ø h¸Ñ?ð
ð
  W°gÈqÑQð
ñð3e0ðD à W°gÑ>Ø h¸Ñ?ð
ð
  W°gÈqÑQð
ñðEe0ðV à h¸Ñ?ð
ð  V°ZÐQRÑSð
ñ	ðWe0ðf à F°FÑ;ð
ð  Y¸ÐPQÑRð
ñ	ðge0ðv à F°FÑ;ØÐ(9À6ÑJØÐ(9À6ÑJð
ð  ]¸FÐTUÑVð
ñ	ðwe0ðJ Ø ¨6¸6ÑBÐCà X°vÈqÑQð
ñðKe0ðV Ø ¨6¸6ÑBÐCà X°vÈqÑQð
ñðWe0ðb Ø ¨6¸6ÑBÐCà Z¸ÐQRÑSð
ñðce0ðn à F°FÑ;Ø%Ð0BÈFÑSð
ð
  X°vÈqÑQð
ñ!ðoe0ð@ à¨
¸FÑCØ$Ð/@È&ÑQð
ð
  X°vÈqÑQð
ñðAe0ðR à¨
¸FÑCØ y¸&ÑAð
ð
  X°vÈqÑQð
ñðSe0ðd Ø ¨6¸6ÑBÐCà \¸6ÐSTÑUð
ñðee0ðp Ø!¨G¸WÑEÐFà X°vÈqÑQð
ñðqe0ð| Ø!¨G¸WÑEÐFà \¸6ÐSTÑUð
ñð}e0ðJ "¨G¸WÑEÐFà Z¸ÐQRÑSð
ñð "¨G¸WÑEÐFà V°VÈQÑOð
ñ%ð "¨G¸WÑEÐFà X°vÈqÑQð
ñð  W°gÑ>Ø H°fÑ=ð
ð  X°zÐSTÑUð
ñòse0Ð ˜_ó eð\ Ð ð ØØØØñ(Ð �nó ð-ØÐ(ð-àÐ-ð-ð Ð'ð-ð �_ð	-ð
 �=ð-ð �ð-ð Ð0ð-ð Ð2ð-ð Ð :ð-ð Ð0ð-ð Ð.ð-ð Ð.ð-ð �_ð-ð Ð&ð-ð Ð%ð-ð  �_ð!-ð" Ð&ð#-ð$ 'Ø+Ø2Ø*Ø.Ø$BØ2Ø+ò3-Ð ˜>ó ð@ "4°XÐ >Ø-¨uÐ5ñ4Ð Ð0ó ð OSð!Ø&ð!Ø7Kð!àõ!ôô8FðT LPð[ Ø$ð[ Ø4Hð[ àõ[ ð~ LPð(XØ$ð(XØ4Hð(Xàõ(XôVô(	ð" ð Øð àð ð ð ð ð	 ð
 ð ð õ ðH NRð!-Ø%ð!-Ø6Jð!-àõ!-ðJ NRð-Ø%ð-Ø6Jð-àõ-ö2-ö"-ö.-ð4 46Ð Ð0Ó 5ØÐ ð
 #Ø"&ð0-àð0-ð  ð0-ð 	õ	0-ðf �jŠjÐ=Ó>€ôð0 #Ø"&ð/-àð/-ð  ð/-ð 	õ	/-ðf LPð-Ø$ð-Ø4Hð-àõ-ð LPð4-Ø$ð4-Ø4Hð4-àõ4-ôntˆvõ trH   