§
    ïXÊjÑ$  ã                   ó”  — d Z ddlZddlZddlZddlmZ h d£Zdedefd„Zdedefd„Z	dedefd	„Z
dedefd
„ZdZdedefd„Zdededz  dedefd„Zdedefd„ZdZ	 d!dedee         dededz  def
d„Z	 d!dedee         dededz  def
d„Z	 	 d"dedee         dedededz  defd„Z	 	 d#dededededz  dedeeef         fd „ZdS )$z‡Centralized code snippet generation for Gradio API endpoints. Generates Python, JavaScript, and cURL code snippets from API info dicts.é    N)ÚAny>   ÚFileÚAudioÚImageÚVideoÚModel3DÚImageSliderÚUploadButtonÚDownloadButtonÚobjÚreturnc                 óô   — t          | t          ¦  «        ocd| v o_|                      d¦  «        oJd| v oFt          |                      d¦  «        t          ¦  «        o| d                              d¦  «        dk    S )NÚurlÚmetaÚ_typeúgradio.FileData)Ú
isinstanceÚdictÚget©r   s    úFC:\Projects\Historical\venv\Lib\site-packages\gradio_client/snippet.pyÚ_is_file_datar      s~   € å�3�ÑÔð 	:Ø�SˆLð	:à�GŠG�E‰NŒNð	:ð �cˆMð	:õ �s—w’w˜v‘”­Ñ-Ô-ð		:ð
 �ŒK�OŠO˜GÑ$Ô$Ð(9Ò9ðó    c                 ó  — t          | t          ¦  «        r<t          | ¦  «        rdS t          d„ |                      ¦   «         D ¦   «         ¦  «        S t          | t
          t          f¦  «        rt          d„ | D ¦   «         ¦  «        S dS )NTc              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N©Ú_has_file_data)Ú.0Úvs     r   ú	<genexpr>z!_has_file_data.<locals>.<genexpr>#   s*   è è € Ð;Ð;¨•> !Ñ$Ô$Ð;Ð;Ð;Ð;Ð;Ð;r   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   r   ©r   Úitems     r   r!   z!_has_file_data.<locals>.<genexpr>%   s*   è è € Ð8Ð8¨D•> $Ñ'Ô'Ð8Ð8Ð8Ð8Ð8Ð8r   F)r   r   r   ÚanyÚvaluesÚlistÚtupler   s    r   r   r      s†   € Ý�#•tÑÔð <Ý˜ÑÔð 	Ø�4ÝÐ;Ð;¨c¯jªj©l¬lÐ;Ñ;Ô;Ñ;Ô;Ð;Ý�#��e�}Ñ%Ô%ð 9ÝÐ8Ð8°CÐ8Ñ8Ô8Ñ8Ô8Ð8Øˆ5r   c                 ó  — t          | t          ¦  «        rt          | ¦  «        rd| d         › d�S t          | t          t          f¦  «        rd„ | D ¦   «         S t          | t          ¦  «        rd„ |                      ¦   «         D ¦   «         S | S )Nzhandle_file('r   z')c                 ó,   — g | ]}t          |¦  «        ‘ŒS © ©Ú_replace_file_data_pyr#   s     r   ú
<listcomp>z)_replace_file_data_py.<locals>.<listcomp>-   s!   € Ð<Ð<Ð<°Õ% dÑ+Ô+Ð<Ð<Ð<r   c                 ó4   — i | ]\  }}|t          |¦  «        “ŒS r+   r,   ©r   Úkr    s      r   ú
<dictcomp>z)_replace_file_data_py.<locals>.<dictcomp>/   s'   € ÐDÐDÐD±°°1�Õ(¨Ñ+Ô+ÐDÐDÐDr   ©r   r   r   r'   r(   Úitemsr   s    r   r-   r-   )   s–   € Ý�#•tÑÔð .¥¨sÑ!3Ô!3ð .Ø-˜s 5œzÐ-Ð-Ð-Ð-Ý�#��e�}Ñ%Ô%ð =Ø<Ð<¸Ð<Ñ<Ô<Ð<Ý�#•tÑÔð EØDÐD¸¿	º	¹¼ÐDÑDÔDÐDØ€Jr   c                 ó  — t          | t          ¦  «        rt          | ¦  «        r| d         ddidœS t          | t          t          f¦  «        rd„ | D ¦   «         S t          | t          ¦  «        rd„ |                      ¦   «         D ¦   «         S | S )Nr   r   r   )Úpathr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r+   ©Ú_simplify_file_datar#   s     r   r.   z'_simplify_file_data.<locals>.<listcomp>7   s!   € Ð:Ð:Ð:¨dÕ# DÑ)Ô)Ð:Ð:Ð:r   c                 ó4   — i | ]\  }}|t          |¦  «        “ŒS r+   r8   r0   s      r   r2   z'_simplify_file_data.<locals>.<dictcomp>9   s'   € ÐBÐBÐB©d¨a°�Õ& qÑ)Ô)ÐBÐBÐBr   r3   r   s    r   r9   r9   3   s›   € Ý�#•tÑÔð J¥¨sÑ!3Ô!3ð JØ˜Eœ
¨WÐ6GÐ,HÐIÐIÐIÝ�#��e�}Ñ%Ô%ð ;Ø:Ð:°cÐ:Ñ:Ô:Ð:Ý�#•tÑÔð CØBÐB°c·i²i±k´kÐBÑBÔBÐBØ€Jr   ÚUNQUOTED_GRADIO_c                 ót  ‡— dt           dt           fˆfd„Š ‰| ¦  «        }t          j        |t          ¬¦  «        }t	          j        dt          › d�d|¦  «        }|                     dt          › d�d	¦  «        }|                     dt          › d
�d¦  «        }|                     dt          › d�d¦  «        }|S )NÚor   c                 óÈ  •— | €
t           › d�S t          | t          ¦  «        r| r
t           › d�n	t           › d�S t          | t          ¦  «        r5|                      d¦  «        r |                      d¦  «        rt           › | › �S t          | t          t          f¦  «        rˆfd„| D ¦   «         S t          | t          ¦  «        r ˆfd„|  	                    ¦   «         D ¦   «         S | S )NÚNoneÚTrueÚFalsezhandle_file(ú)c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r+   r+   )r   r$   Ú_prepares     €r   r.   z3_stringify_py.<locals>._prepare.<locals>.<listcomp>I   s!   ø€ Ð1Ð1Ð1 t�H�H˜T‘N”NÐ1Ð1Ð1r   c                 ó.   •— i | ]\  }}| ‰|¦  «        “ŒS r+   r+   )r   r1   r    rD   s      €r   r2   z3_stringify_py.<locals>._prepare.<locals>.<dictcomp>K   s'   ø€ Ð9Ð9Ð9¡t q¨!�A�x�x ‘{”{Ð9Ð9Ð9r   )
Ú	_UNQUOTEDr   ÚboolÚstrÚ
startswithÚendswithr'   r(   r   r4   )r=   rD   s    €r   rD   z_stringify_py.<locals>._prepareA   sü   ø€ Øˆ9ÝÐ%Ð%Ð%Ð%Ý�a�ÑÔð 	DØ)*ÐC•iÐ%Ð%Ð%Ð%µ9Ð0CÐ0CÐ0CÐCÝ�a�ÑÔð 	% !§,¢,¨~Ñ">Ô">ð 	%À1Ç:Â:ÈcÁ?Ä?ð 	%ÝÐ$ Ð$Ð$Ð$Ý�a�$¥˜Ñ'Ô'ð 	2Ø1Ð1Ð1Ð1¨qÐ1Ñ1Ô1Ð1Ý�a�ÑÔð 	:Ø9Ð9Ð9Ð9¨q¯wªw©y¬yÐ9Ñ9Ô9Ð9Øˆr   )Údefaultú"z(handle_file\([^)]*\))"z\1zNone"r?   zTrue"r@   zFalse"rA   )r   ÚjsonÚdumpsrH   ÚreÚsubrF   Úreplace)r   ÚpreparedÚresultrD   s      @r   Ú_stringify_pyrT   @   sÛ   ø€ ð•Cð �Cð ð ð ð ð ð ð ˆx˜‰}Œ}€HÝŒZ˜­#Ð.Ñ.Ô.€FÝŒVØ/�YÐ/Ð/Ð/ØØñô €Fð
 �^Š^Ð0¥	Ð0Ð0Ð0°&Ñ9Ô9€FØ�^Š^Ð0¥	Ð0Ð0Ð0°&Ñ9Ô9€FØ�^Š^Ð1¥	Ð1Ð1Ð1°7Ñ;Ô;€FØ€Mr   ÚvalueÚpython_typeÚlangc                 ól  — |€
|dk    rdndS | €
|dk    rdndS |dv rd| › d�S |dk    rt          | ¦  «        S |dv rQ|dk    r| rdnd	S t          | t          ¦  «        r!t          | ¦  «                             ¦   «         nt          | ¦  «        S |d
k    rt	          j        | ¦  «        S |                     d¦  «        rd| › d�S t          | t           ¦  «        r| dk    r
|dk    rdndS | S t          j        | ¦  «        } |dk    rt          | ¦  «        } |dk    rt          | ¦  «        } t          | ¦  «        S )NÚpyr?   Únull)ÚstringrH   rL   Únumber)ÚbooleanrG   r@   rA   z	List[str]z	Literal['Ú Úbash)rH   r   rG   ÚlowerrM   rN   rI   ÚcopyÚdeepcopyr9   r-   rT   )rU   rV   rW   s      r   Ú_represent_valuerc   [   sr  € ØÐØ š˜ˆvˆv¨6Ð1Ø€}Ø š˜ˆvˆv¨6Ð1ØÐ'Ð'Ð'Ø�5ˆ|ˆ|ˆ|ÐØ�hÒÐÝ�5‰zŒzÐØÐ)Ð)Ð)Ø�4Š<ˆ<Ø"Ð/�6�6¨Ð/Ý%/°µtÑ%<Ô%<ÐL�s�5‰zŒz×ÒÑ!Ô!Ð!Å#ÀeÁ*Ä*ÐLØ�kÒ!Ð!ÝŒz˜%Ñ Ô Ð Ø×Ò˜kÑ*Ô*ð Ø�5ˆ|ˆ|ˆ|Ðå�%�ÑÔð Ø�BŠ;ˆ;Ø! Tš\˜\�6�6¨vÐ5ØˆåŒM˜%Ñ Ô €EØˆv‚~€~Ý# EÑ*Ô*ˆØˆt‚|€|Ý% eÑ,Ô,ˆÝ˜ÑÔÐr   Úparamc                 ó€   — |                       d¦  «        r|                       d¦  «        S |                       d¦  «        S )NÚparameter_has_defaultÚparameter_defaultÚexample_input©r   )rd   s    r   Ú_get_param_valuerj   z   s<   € Ø‡y‚yÐ(Ñ)Ô)ð .Ø�yŠyÐ,Ñ-Ô-Ð-Ø�9Š9�_Ñ%Ô%Ð%r   zhf_...Úapi_nameÚparamsÚsrcÚoauth_tokenc                 óú  — t          d„ |D ¦   «         ¦  «        }d}|r|dz  }|dg}|r"|                     d|› dt          › d�¦  «         n|                     d|› d�¦  «         g }|D ]’}|                     d¦  «        p|                     d	d
¦  «        }	t	          |¦  «        }
|                     di ¦  «                             d¦  «        }t          |
|d¦  «        }|                     d|	› d|› d�¦  «         Œ“|                     d¦  «         |                     |¦  «         |                     d| › d�¦  «         |                     d¦  «         |                     d¦  «         d                     |¦  «        S )Nc              3   óZ   K  — | ]&}t          |                     d ¦  «        ¦  «        V — Œ'dS ©rh   N©r   r   ©r   Úps     r   r!   z*generate_python_snippet.<locals>.<genexpr>‰   ó6   è è € ÐJÐJ¸a•> !§%¢%¨Ñ"8Ô"8Ñ9Ô9ÐJÐJÐJÐJÐJÐJr   z from gradio_client import Clientz, handle_filer^   zclient = Client("z", oauth_token="z")Úparameter_nameÚlabelÚinputrV   ÚtyperY   ú	ú=ú,zresult = client.predict(z	api_name="z",rB   zprint(result)ú
)r%   ÚappendÚOAUTH_TOKEN_PLACEHOLDERr   rj   rc   ÚextendÚjoin)rk   rl   rm   rn   Úhas_fileÚimportsÚlinesÚpredict_argsrt   ÚnamerU   ÚptypeÚ	formatteds                r   Úgenerate_python_snippetr‰   ƒ   s¶  € õ ÐJÐJÀ6ÐJÑJÔJÑJÔJ€HØ0€GØð #Ø�?Ñ"ˆà�bˆM€EØð 2Ø�ŠØP ÐPÐPÕ5LÐPÐPÐPñ	
ô 	
ð 	
ð 	
ð 	�ŠÐ0¨Ð0Ð0Ð0Ñ1Ô1Ð1à€LØð 6ð 6ˆØ�uŠuÐ%Ñ&Ô&ÐA¨!¯%ª%°¸Ñ*AÔ*AˆÝ  Ñ#Ô#ˆØ—’�m RÑ(Ô(×,Ò,¨VÑ4Ô4ˆÝ$ U¨E°4Ñ8Ô8ˆ	Ø×ÒÐ4 Ð4Ð4¨	Ð4Ð4Ð4Ñ5Ô5Ð5Ð5à	‡L‚LÐ+Ñ,Ô,Ð,Ø	‡L‚L�ÑÔÐØ	‡L‚LÐ, Ð,Ð,Ð,Ñ-Ô-Ð-Ø	‡L‚L�ÑÔÐØ	‡L‚L�Ñ!Ô!Ð!à�9Š9�UÑÔÐr   c                 óâ  — d„ |D ¦   «         }|rdnd}d|› d�dg}t          |¦  «        D ]–\  }}|                     di ¦  «        }	t          |	t          ¦  «        r|	                     dd¦  «        nd}
|                     d	d¦  «        }|                     d
|› d|
› d�¦  «         |                     d|› d|› d�¦  «         Œ—|r|                     d¦  «         |r"|                     d|› dt
          › d�¦  «         n|                     d|› d�¦  «         d„ |D ¦   «         }g }|D ]É}|                     d¦  «        p|                     dd¦  «        }|                     d	d¦  «        }||v r|                     d|› d|› d�¦  «         Œdt          |¦  «        }|                     di ¦  «                             d¦  «        }t          ||d¦  «        }|                     d|› d|› d�¦  «         ŒÊ|                     d| › d �¦  «         |                     |¦  «         |                     d!¦  «         |                     d¦  «         |                     d"¦  «         d# 	                    |¦  «        S )$Nc                 óJ   — g | ] }|                      d ¦  «        t          v ¯|‘Œ!S ©Ú	component)r   ÚBLOB_COMPONENTSrs   s     r   r.   z'generate_js_snippet.<locals>.<listcomp>­   s.   € ÐNÐNÐN˜¨¯ª¨kÑ(:Ô(:½oÐ(MÐ(M�1Ð(MÐ(MÐ(Mr   zClient, handle_fileÚClientz	import { z } from "@gradio/client";r^   rh   r   r�   zconst response_z = await fetch("z");zconst examplez = await response_z.blob();z%const client = await Client.connect("z", { oauth_token: "z" });c                 ó8   — h | ]}|                      d ¦  «        ’ŒS rŒ   ri   )r   Úbps     r   ú	<setcomp>z&generate_js_snippet.<locals>.<setcomp>Ã   s$   € ÐFÐFÐF°B˜BŸFšF ;Ñ/Ô/ÐFÐFÐFr   rv   rw   rx   z		z: handle_file(examplez),rV   ry   Újsz: r|   z%const result = await client.predict("z", {z});zconsole.log(result.data);r}   )
Ú	enumerater   r   r   r~   r   rj   rc   r€   r�   )rk   rl   rm   rn   Úblob_paramsrƒ   r„   Úir‘   Úexampler   r�   Úblob_component_namesr…   rt   r†   rU   r‡   rˆ   s                      r   Úgenerate_js_snippetr™   §   så  € ð OÐN˜fÐNÑNÔN€Kà'2Ð@Ð#Ð#¸€GØ=˜'Ð=Ð=Ð=¸rÐB€Eå˜;Ñ'Ô'ð Oð O‰ˆˆ2Ø—&’&˜¨"Ñ-Ô-ˆÝ(2°7½DÑ(AÔ(AÐIˆg�kŠk˜% Ñ$Ô$Ð$ÀrˆØ—F’F˜;¨Ñ+Ô+ˆ	Ø�ŠÐB qÐBÐB¸#ÐBÐBÐBÑCÔCÐCØ�ŠÐM YÐMÐMÀ!ÐMÐMÐMÑNÔNÐNÐNàð Ø�Š�RÑÔÐàð GØ�ŠØl°CÐlÐlÕMdÐlÐlÐlñ	
ô 	
ð 	
ð 	
ð 	�ŠÐE¸SÐEÐEÐEÑFÔFÐFàFÐF¸+ÐFÑFÔFÐà€LØð 	=ð 	=ˆØ�uŠuÐ%Ñ&Ô&ÐA¨!¯%ª%°¸Ñ*AÔ*AˆØ—E’E˜+ rÑ*Ô*ˆ	ØÐ,Ð,Ð,Ø×ÒÐ O tÐ OÐ OÀ)Ð OÐ OÐ OÑPÔPÐPÐPå$ QÑ'Ô'ˆEØ—E’E˜-¨Ñ,Ô,×0Ò0°Ñ8Ô8ˆEÝ(¨°°tÑ<Ô<ˆIØ×ÒÐ ; tÐ ;Ð ;¨yÐ ;Ð ;Ð ;Ñ<Ô<Ð<Ð<à	‡L‚LÐH¸ÐHÐHÐHÑIÔIÐIØ	‡L‚L�ÑÔÐØ	‡L‚L�ÑÔÐØ	‡L‚L�ÑÔÐØ	‡L‚LÐ,Ñ-Ô-Ð-à�9Š9�UÑÔÐr   ú/ÚrootÚ
api_prefixc                 óP  — |                      d¦  «        }|r|nd}|                      d¦  «        }t          d„ |D ¦   «         ¦  «        }|› |› d�}	g }
g }|r•|D ]d}t          |                     d¦  «        ¦  «        r@|                     d¦  «        p|                     dd¦  «        }|                     |¦  «         Œe|
                     d|	› d	�¦  «         |
                     d
¦  «         i }|D ]…}|                     d¦  «        p|                     dd¦  «        }||v rd||<   Œ7t          |¦  «        }|                     di ¦  «                             d¦  «        }t          ||d¦  «        }|||<   Œ†|rdt          › d�|d<   d 	                    d„ | 
                    ¦   «         D ¦   «         ¦  «        }d|z   dz   }|D ]}d}|                     d|¦  «        }Œ|› |› d|› �}|› |› d|› �}|
                     d|› d�d|› d�dd|› d�g¦  «         d 	                    |
¦  «        S ) Nrš   c              3   óZ   K  — | ]&}t          |                     d ¦  «        ¦  «        V — Œ'dS rq   rr   rs   s     r   r!   z(generate_bash_snippet.<locals>.<genexpr>å   ru   r   Úuploadrh   rv   rw   rx   zFILE_PATH=$(curl -s -X POST z/ -F 'files=@/path/to/your/file' | tr -d '[]" ')r^   ÚFILE_PATH_PLACEHOLDERrV   ry   r_   rL   rn   z, c              3   ó,   K  — | ]\  }}d |› d|› �V — ŒdS )rL   z": Nr+   r0   s      r   r!   z(generate_bash_snippet.<locals>.<genexpr>  s2   è è € ÐIÐI©t¨q°!˜] ˜]˜] q˜]˜]ÐIÐIÐIÐIÐIÐIr   Ú{Ú}z>{"path": "'$FILE_PATH'", "meta": {"_type": "gradio.FileData"}}zcall/v2/zcall/zcurl -X POST z) -s -H "Content-Type: application/json" \z  -d 'z' \z  | awk -F'"' '{ print $4}' \z  | read EVENT_ID; curl -N z
/$EVENT_IDr}   )ÚrstripÚlstripr%   r   r   r~   rj   rc   r   r�   r4   rQ   r€   )rk   rl   r›   rœ   rn   Únormalised_rootÚnormalised_prefixÚendpoint_namer‚   Ú
upload_urlr„   Úfile_param_namesrt   r†   Ú	data_dictrU   r‡   rˆ   Údata_entriesÚdata_strÚ_ÚreplacementÚbase_urlÚget_urls                           r   Úgenerate_bash_snippetr²   Ú   sË  € ð —k’k #Ñ&Ô&€OØ&0Ð9˜
˜
°cÐØ—O’O CÑ(Ô(€MåÐJÐJÀ6ÐJÑJÔJÑJÔJ€HØ#Ð>Ð%6Ð>Ð>Ð>€Jà€Eà"$ÐØð 
Øð 	.ð 	.ˆAÝ˜aŸeše OÑ4Ô4Ñ5Ô5ð .Ø—u’uÐ-Ñ.Ô.ÐI°!·%²%¸ÀÑ2IÔ2I�Ø ×'Ò'¨Ñ-Ô-Ð-øØ�Šð ¨:ð  ð  ð  ñ	
ô 	
ð 	
ð
 	�Š�RÑÔÐà€IØð (ð (ˆØ�uŠuÐ%Ñ&Ô&ÐA¨!¯%ª%°¸Ñ*AÔ*AˆØÐ#Ð#Ð#Ø5ˆI�d‰OˆOå$ QÑ'Ô'ˆEØ—E’E˜-¨Ñ,Ô,×0Ò0°Ñ8Ô8ˆEÝ(¨°°vÑ>Ô>ˆIØ'ˆI�d‰OˆOàð BØ#AÕ'>Ð#AÐ#AÐ#Aˆ	�-Ñ à—9’9ÐIÐI°y·²Ñ7HÔ7HÐIÑIÔIÑIÔI€LØ�\Ñ! CÑ'€HØð Jð JˆØXˆØ×#Ò#Ð$;¸[ÑIÔIˆˆà!ÐMÐ#4ÐMÐM¸mÐMÐM€HØ ÐIÐ"3ÐIÐI¸-ÐIÐI€Gà	‡L‚LàP˜HÐPÐPÐPØ#�XÐ#Ð#Ð#Ø-Ø=¨'Ð=Ð=Ð=ð		
ñô ð ð �9Š9�UÑÔÐr   Úendpoint_infoÚspace_idc           	      óÎ   — |                      dg ¦  «        }|p|}|                      d¦  «        }t          | |||¦  «        t          | |||¦  «        t          | ||||¦  «        dœS )NÚ
parametersrn   )ÚpythonÚ
javascriptr_   )r   r‰   r™   r²   )rk   r³   r›   r´   rœ   rl   rm   rn   s           r   Úgenerate_code_snippetsr¹     s|   € ð ×Ò˜|¨RÑ0Ô0€FØ
Ð
�d€CØ×#Ò# MÑ2Ô2€Kõ *¨(°F¸CÀÑMÔMÝ)¨(°F¸CÀÑMÔMÝ% h°¸¸jÈ+ÑVÔVðð ð r   r   )rš   N)Nrš   )Ú__doc__ra   rM   rO   Útypingr   rŽ   rG   r   r   r-   r9   rF   rH   rT   rc   r   rj   r   r'   r‰   r™   r²   r¹   r+   r   r   ú<module>r¼      sÙ  ðð Nð  Nà €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð ð	ð 	ð 	€ð�sð ˜tð ð ð ð ð˜ð  ð ð ð ð ð˜sð  sð ð ð ð ð˜Sð  Sð ð ð ð ð €	ð�sð ˜sð ð ð ð ð6 ˜Cð  ¨c°D©jð  Àð  Èð  ð  ð  ð  ð>&˜Dð & Sð &ð &ð &ð &ð #Ð ð #ð	!ð !Øð!à�ŒJð!ð 
ð!ð �t‘ð	!ð
 	ð!ð !ð !ð !ðP #ð	0ð 0Øð0à�ŒJð0ð 
ð0ð �t‘ð	0ð
 	ð0ð 0ð 0ð 0ðn Ø"ð=ð =Øð=à�ŒJð=ð ð=ð ð	=ð
 �t‘ð=ð 	ð=ð =ð =ð =ðH  Øðð Øðàðð ðð �D‰jð	ð
 ðð 
ˆ#ˆsˆ(„^ðð ð ð ð ð r   