§
    ïXÊj·9  ã                  óÎ   — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ  ee¦  «        Zi Zd„ Zd„ Zg d	¢Z ed
¬¦  «        dd„¦   «         Zdddœd„Zdd„Zd„ Zd„ ZdS )zNContains methods that generate documentation for Gradio functions and classes.é    )ÚannotationsN)Údefaultdict)ÚCallable)Ú	lru_cachec                ó   — dS )zRA no-op for backwards compatibility of custom components published prior to 4.16.0N© )Úms    úLC:\Projects\Historical\venv\Lib\site-packages\gradio_client/documentation.pyÚset_documentation_groupr      s   € à€Dó    c                ó¬  — t          j        | j        ¦  «        }d„ |                     d¦  «        D ¦   «         }d }t	          |¦  «        D ]=\  }}|                     d|z   dz   ¦  «        s|                     d|z   dz   ¦  «        r nŒ>|€t          d|› d| j        › �¦  «        ‚|                     d|¦  «        }|                     d|d	z   ¦  «        }t          |d	z   |¦  «        D ]M}||                              d¦  «        r0t          d
|› d| j        › d�||         z   dz   ||         z   ¦  «        ‚ŒNd                     ||d	z   |…         ¦  «        }	|	S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r   )Ústrip)Ú.0Úlines     r
   ú
<listcomp>z-extract_instance_attr_doc.<locals>.<listcomp>   s    € Ð7Ð7Ð7˜dˆT�ZŠZ‰\Œ\Ð7Ð7Ð7r   ú
zself.ú:z =zCould not find z in z"""é   z-Found another attribute before docstring for ú: z
 start:ú )ÚinspectÚ	getsourceÚ__init__ÚsplitÚ	enumerateÚ
startswithÚ	NameErrorÚ__name__ÚindexÚrangeÚ
ValueErrorÚjoin)
ÚclsÚattrÚcodeÚlinesÚir   Ú
start_lineÚend_lineÚjÚ
doc_strings
             r
   Úextract_instance_attr_docr-      sž  € ÝÔ˜Sœ\Ñ*Ô*€DØ7Ð7 d§j¢j°Ñ&6Ô&6Ð7Ñ7Ô7€EØ€AÝ˜UÑ#Ô#ð ð ‰ˆˆ4Ø�?Š?˜7 T™>¨CÑ/Ñ0Ô0ð 	°D·O²OØ�d‰N˜TÑ!ñ5
ô 5
ð 	ð ˆEð	ð 	€yÝÐB¨$ÐBÐB°C´LÐBÐBÑCÔCÐCØ—’˜U AÑ&Ô&€JØ�{Š{˜5 *¨q¡.Ñ1Ô1€HÝ�1�q‘5˜*Ñ%Ô%ð ð ˆØ�Œ8×Ò˜wÑ'Ô'ð 	ÝØZÀÐZÐZÈ#Ì,ÐZÐZÐZØ˜”(ñàñð ˜”(ññô ð ð	ð —’˜% 
¨Q¡°Ð 9Ô:Ñ;Ô;€JØÐr   ))zgradio._simple_templatesÚ	component)zgradio.serverÚblock)zgradio.blockr/   )zgradio.chatÚchatinterface)zgradio.componentr.   )zgradio.eventsÚhelpers)zgradio.data_classesr1   )zgradio.exceptionsr1   )zgradio.externalr1   )zgradio.flagÚflagging)zgradio.helpersr1   )zgradio.interfaceÚ	interface)zgradio.layoutÚlayout)zgradio.routeÚroutes)zgradio.themeÚthemes)úgradio_client.z	py-client)zgradio.utilsr1   )zgradio.renderableÚ
renderable)zgradio.validatorsÚ
validators)zgradio.cachingr1   é
   )ÚmaxsizeÚreturnÚstrc                ór   — t           D ]\  }}|                      |¦  «        r|c S Œt          d| ›�¦  «        ‚)Nz(No known documentation group for module )Ú_module_prefixesr   r"   )ÚmodnameÚprefixÚgroups      r
   Ú_get_module_documentation_grouprC   F   sP   € å)ð ð ‰ˆ�Ø×Ò˜fÑ%Ô%ð 	ØˆLˆLˆLð	å
ÐKÀÐKÐKÑ
LÔ
LÐLr   F)ÚinheritÚdocumentation_groupc                ó   ‡ ‡‡— |Šˆˆˆ fd„}|S )a¥  
    Defines the @document decorator which adds classes or functions to the Gradio
    documentation at www.gradio.app/docs.

    Usage examples:
    - Put @document() above a class to document the class and its constructor.
    - Put @document("fn1", "fn2") above a class to also document methods fn1 and fn2.
    - Put @document("*fn3") with an asterisk above a class to document the instance attribute methods f3.
    c                óÌ  •— t          ‰¦  «        }t          | d¦  «        r
|| j        z  }‰r
d t          | <   ‰}‰€‡	 t	          j        | ¦  «        j        }|                     d¦  «        s|                     d¦  «        rt          |¦  «        }n	 n1# t          $ r$}t          j        d| › d|› �¦  «         Y d }~nd }~ww xY wt          |                              | |f¦  «         | S )NÚEVENTSzgradio.r7   z&Could not get documentation group for r   )ÚlistÚhasattrrH   Úclasses_inherit_documentationr   Ú	getmoduler   r   rC   Ú	ExceptionÚwarningsÚwarnÚclasses_to_documentÚappend)r$   Ú	functionsrE   r@   ÚexcÚ_documentation_groupÚfnsrD   s        €€€r
   Ú	inner_doczdocument.<locals>.inner_docZ   s%  ø€ Ý˜‘I”Iˆ	Ý�3˜Ñ!Ô!ð 	$Ø˜œÑ#ˆIØð 	6Ø15Õ)¨#Ñ.à2ÐØÐ'ð
UÝ!Ô+¨CÑ0Ô0Ô9�Ø×%Ò% iÑ0Ô0ð °G×4FÒ4FØ$ñ5ô 5ð õ +JÈ'Ñ*RÔ*RÐ'Ð'ð øøÝð Uð Uð UÝ”ÐSÀsÐSÐSÈcÐSÐSÑTÔTÐTÐTÐTÐTÐTÐTøøøøðUøøøåÐ/Ô0×7Ò7¸¸iÐ8HÑIÔIÐIØˆ
s   ¼AB Â
B?ÂB:Â:B?r   )rD   rE   rU   rV   rT   s   ` ` @r
   ÚdocumentrW   N   s8   øøø€ ð /Ððð ð ð ð ð ð ð. Ðr   Úfnr   ú(tuple[str, list[dict], dict, str | None]c                ó�	  — t          j        | ¦  «        pd}|                     d¦  «        }t          j        | ¦  «        }g i g g f\  }}}}d}	d}
d}|D �]�}|                     ¦   «         }|dk    rd}	d}Œ"|                     d¦  «        rNd}	d}d	|v rEd
|v rA|                     d	¦  «        d                              d
¦  «        d         }||j        k    rd}	Œ…|dk    rd}	d}Œ�|	dk    r,|                     |                     ¦   «         r|nd¦  «         ŒÂ|                     d¦  «        s'|                     ¦   «         dk    st          |¦  «         |                     d¦  «        s2|                     ¦   «         dk    st          d| j        › d|› �¦  «        ‚|dd…         }|	dk    rôd|v rj|                     d¦  «        sU|                     d¦  «        }|dk     rt          d| j        › d|› �¦  «        ‚|d|…         }
||dz   d…         }|||
<   d}�ŒÃ|
r‚|                     ¦   «         rn|€1t          |¦  «        t          |                     ¦   «         ¦  «        z
  }|dk    r"|                     d|z  ¦  «        r
||d…         }||
xx         d|z   z  cc<   �ŒI|	dk    r|                     |¦  «         �Œf|	dk    r|                     |¦  «         �Œƒd                     |¦  «        }g }|j                             ¦   «         D ]î\  }}|                     d¦  «        rŒ|dk    rŒ"|dv r||vrŒ+||j        |                     |¦  «        dœ}||v r||= |j        t           j        j        k    rI|j        }t-          |t.          ¦  «        rd|z   dz   }|j        j        dk    r|j        j        › d�}||d <   n&|d!         �d"|d!         v rd#|d"<   d$|d!         v rd#|d$<   |                     |¦  «         Œï|rlt5          d| j        › d%d&                     |                     ¦   «         ¦  «        › d'd&                     |j                             ¦   «         ¦  «        › �¦  «        ‚t          |¦  «        dk    ri }nd                     |¦  «        }|j        |d(œ}t          |¦  «        dk    rd                     |¦  «        nd}||||fS ))a‹  
    Generates documentation for any function.
    Parameters:
        fn: Function to document
    Returns:
        description: General description of fn
        parameters: A list of dicts for each parameter, storing data for the parameter name, annotation and doc
        return: A dict storing data for the returned annotation and doc
        example: Code for an example use of the fn
    Ú r   ÚdescriptionNzParameters:Ú	parameterzExample:Úexampleú(ú)r   r   ÚignorezReturns:r<   ú<br>ú    úDocumentation format for ú has format error in line: é   r   r   éÿÿÿÿé   Ú_Úself)ÚkwargsÚargs)ÚnameÚ
annotationÚdocú"Úbuiltinsz()Údefaultro   rk   Trl   z# documents nonexistent parameters: z, z. Valid parameters: )rn   ro   )r   Úgetdocr   Ú	signatureÚrstripr   r   rQ   r   ÚprintÚSyntaxErrorr    ÚlenÚlstripr#   Ú
parametersÚitemsrn   Úgetrr   Ú	ParameterÚemptyÚ
isinstancer=   Ú	__class__Ú
__module__r"   ÚkeysÚreturn_annotation)rX   r$   Údoc_strÚ	doc_linesrt   r\   rz   ÚreturnsÚexamplesÚmodeÚcurrent_parameterÚbase_indentr   ÚcÚcolon_indexÚparameter_docÚdescription_docÚparameter_docsÚ
param_nameÚparamrr   Úreturn_docsÚreturn_doc_textÚexamples_docs                           r
   Údocument_fnr•   t   s§  € õ Œn˜RÑ Ô Ð& B€GØ—’˜dÑ#Ô#€IÝÔ! "Ñ%Ô%€IØ13°R¸¸R°Ñ.€K�˜W hØ€DØÐØ€KØð .&ñ .&ˆØ�{Š{‰}Œ}ˆØ�=Ò Ð ØˆDØˆKˆKØ�_Š_˜ZÑ(Ô(ð )	&ØˆDØˆKØ�dˆ{ˆ{˜s d˜{˜{Ø—J’J˜s‘O”O AÔ&×,Ò,¨SÑ1Ô1°!Ô4�Ø˜œÒ$Ð$Ø#�DøØ�ZÒÐØˆDØˆKˆKà�}Ò$Ð$Ø×"Ò"¨4¯:ª:©<¬<Ð#C 4 4¸VÑDÔDÐDØØ—O’O FÑ+Ô+ð ¨t¯zªz©|¬|¸rÒ/AÐ/AÝ�d‘”�Ø—O’O FÑ+Ô+ð ¨t¯zªz©|¬|¸rÒ/AÐ/AÝ!Ø^°´Ð^Ð^ÐX\Ð^Ð^ñô ð ð ˜˜˜”8ˆDØ�{Ò"Ð"Ø˜4�<�<¨¯ª¸Ñ(<Ô(<�<Ø"&§*¢*¨TÑ"2Ô"2�KØ" RÒ'Ð'Ý)Øf¸¼ÐfÐfÐ`dÐfÐfñô ð ð )-¨\¨k¨\Ô(:Ð%Ø$(¨°q©Ð):Ð):Ô$;�MØ4A�JÐ0Ñ1Ø"&�K‘KØ&ð A¨4¯:ª:©<¬<ð AØ"Ð*Ý&)¨$¡i¤iµ#°d·k²k±m´mÑ2DÔ2DÑ&D˜Ø" Q’�¨4¯?ª?¸3ÀÑ;LÑ+MÔ+M�Ø# K L LÔ1˜ØÐ0Ð1Ð1Ô1°T¸D±[Ñ@Ð1Ð1Ñ1ùØ˜Ò!Ð!Ø—’˜tÑ$Ô$Ð$Ñ$Ø˜Ò"Ð"Ø—’ Ñ%Ô%Ð%ùØ—h’h˜{Ñ+Ô+€OØ€NØ&Ô1×7Ò7Ñ9Ô9ð -ð -Ñˆ
�EØ× Ò  Ñ%Ô%ð 	ØØ˜ÒÐØØÐ+Ð+Ð+°
À*Ð0LÐ0LØàØÔ*Ø—>’> *Ñ-Ô-ð
ð 
ˆð
 ˜Ð#Ð#Ø˜:Ð&ØŒ=�GÔ-Ô3Ò3Ð3Ø”mˆGÝ˜'¥3Ñ'Ô'ð .Ø ™-¨#Ñ-�ØÔ Ô+¨zÒ9Ð9Ø$Ô.Ô7Ð;Ð;Ð;�Ø'.ˆM˜)Ñ$Ð$Ø˜5Ô!Ð-Ø˜=¨Ô/Ð/Ð/Ø*.�˜hÑ'Ø˜ uÔ-Ð-Ð-Ø(,�˜fÑ%Ø×Ò˜mÑ,Ô,Ð,Ð,Øð 
ÝðJ¨¬ð Jð JØ'+§y¢y°·²Ñ1BÔ1BÑ'CÔ'CðJð Jà!%§¢¨9Ô+?×+DÒ+DÑ+FÔ+FÑ!GÔ!GðJð Jñ
ô 
ð 	
õ
 ˆ7�|„|�qÒÐØˆˆàŸ)š) GÑ,Ô,ˆà#Ô5Ø"ð
ð 
ˆõ +.¨h©-¬-¸!Ò*;Ð*;�4—9’9˜XÑ&Ô&Ð&À€LØ˜N¨K¸ÐEÐEr   c                ó¬  — t          j        | ¦  «        }|€di dfS i }g }d}|                     d¦  «        D �]ƒ}|                     ¦   «         }|                     d¦  «        r&d|vr"|d d…                              ¦   «         }g ||<   ŒR|                     d¦  «        d                              d¦  «        rj|                     d¦  «        sU|d |                     d¦  «        …                              ¦   «         }||                     d¦  «        d	z   d …         }|||<   Œê|dk    r-|                     | 	                    ¦   «         r|nd
¦  «         �Œ|                     d¦  «        s.| 	                    ¦   «         rt          d| j        › d|› �¦  «        ‚||                              |dd …         ¦  «         �Œ…d|v rd                     |d         ¦  «        }|d= nd }|                     ¦   «         D ]2\  }	}
t          |
t          ¦  «        rd
                     |
¦  «        ||	<   Œ3d                     |¦  «                             dd
¦  «        }|||fS )Nr[   r\   r   r   r   rg   r   rc   rh   rb   rd   re   rf   r^   )r   rs   r   ru   ÚendswithÚlowerr   r    rQ   r   rw   r   r#   r{   r   rI   Úreplace)r$   r„   ÚtagsÚdescription_linesrˆ   r   ÚtagÚvaluer^   ÚkeyÚvalr\   s               r
   Údocument_clsr    ä   sc  € ÝŒn˜SÑ!Ô!€GØ€Ø�2�rˆzÐØ€DØÐØ€DØ—’˜dÑ#Ô#ð (ñ (ˆØ�{Š{‰}Œ}ˆØ�=Š=˜ÑÔð 	( #¨T / /Ø˜˜˜”9—?’?Ñ$Ô$ˆDØˆD�‰JˆJØ�ZŠZ˜‰_Œ_˜QÔ×(Ò(¨Ñ-Ô-ð 	(°d·o²oÀfÑ6MÔ6Mð 	(ØÐ(˜Ÿš C™œÐ(Ô)×/Ò/Ñ1Ô1ˆCØ˜Ÿš C™œ¨1Ñ,Ð.Ð.Ô/ˆEØˆD�‰IˆIØ�]Ò"Ð"Ø×$Ò$¨T¯ZªZ©\¬\Ð%E T T¸vÑFÔFÐFÑFà—O’O FÑ+Ô+ð °4·:²:±<´<ð Ý!Ø_°´Ð_Ð_ÐY]Ð_Ð_ñô ð ð �ŒJ×Ò˜d 1 2 2œhÑ'Ô'Ð'Ñ'Ø�DÐÐØ—)’)˜D œOÑ,Ô,ˆØ�ˆOˆOàˆØ—J’J‘L”Lð )ð )‰ˆˆSÝ�c�4Ñ Ô ð 	)ØŸš CÑ(Ô(ˆD�‰IøØ—(’(Ð,Ñ-Ô-×5Ò5°d¸FÑCÔC€KØ˜˜gÐ%Ð%r   c                 ó  — i } t                                ¦   «         D �]ˆ\  }}g | |<   |D �]y\  }}t          j        |¦  «        st	          j        |¦  «        r|n|j        }t          ||¦  «        \  }}}}t          |d¦  «        r„t          |j
        ¦  «        rpt          |d¦  «        r`t          |j        ¦  «        rLt          |j
        |¦  «        }	t          |j        |¦  «        }
|	d         |	d         dœ|
d         |
d         dœ}
}	t          |¦  «        \  }}}||j        |||||g dœ}t          |d¦  «        rBt          |j
        ¦  «        r.t          |d¦  «        rt          |j        ¦  «        r
|	|d<   |
|d<   |D ]í}|                     d¦  «        }|r(|dd …         }t           |¦   «         |¦  «        j        }nt          ||¦  «        }t          |¦  «        s#t#          |¦  «        }i }i }d}d	|j        › d
|› �}n4t          ||¦  «        \  }}}}|t          |dg ¦  «        v r
|dd …         }d }|rt%          ||¦  «        }|d                              |||i ||||dœ¦  «         Œî| |                              |¦  «         |t(          v r|d         t(          |<   �Œ{�ŒŠt                                ¦   «         D ]Ì\  }}t+          |¦  «        D ]·\  }\  }}t(                               ¦   «         D ]•\  }}t          j        |¦  «        r|t/          ||¦  «        rl||k    rf|D ]c}t1          |¦  «        }	 t%          ||d         ¦  «        |d<   n# t2          $ r Y nw xY w| |         |         d                              |¦  «         ŒdŒ–Œ¸ŒÍ| S )NÚ
preprocessÚpostprocessr   rh   )r�   Ú
return_doc)Úclassrm   r\   rš   rz   r†   r^   rU   Ú*r[   zgr.ú.rH   rU   )rX   rm   r\   rš   rz   r†   r^   Úoverride_signaturerm   r\   )rP   r{   r   Ú
isfunctionÚdataclassesÚis_dataclassr   r•   rJ   Úcallabler¢   r£   r    r   r   ÚgetattrÚ__call__r=   r-   rQ   rK   r   ÚisclassÚ
issubclassÚdictr"   )Údocumentationrˆ   Ú
class_listr$   rU   Úfn_to_documentri   r�   r¤   Úpreprocess_docÚpostprocess_docÚcls_descriptionÚcls_tagsÚcls_exampleÚcls_documentationÚfn_nameÚinstance_attribute_fnrX   rŽ   r�   r’   r”   r¨   r(   Úsuper_classÚinherited_fns                             r
   Úgenerate_documentationr¿     s¾  € Ø€MÝ/×5Ò5Ñ7Ô7ð WNñ WNÑˆˆjØ ˆ�dÑØ"ð U	Nñ U	N‰HˆC�õ Ô% cÑ*Ô*ð"Ý.9Ô.FÀsÑ.KÔ.Kð"��à”\ð õ
 /:¸.È#Ñ.NÔ.NÑ+ˆAˆ}˜j¨!å˜˜\Ñ*Ô*ðå˜Sœ^Ñ,Ô,ðõ ˜C Ñ/Ô/ðõ ˜Sœ_Ñ-Ô-ð	õ "-¨S¬^¸SÑ!AÔ!A�Ý"-¨c¬o¸sÑ"CÔ"C�ð *8¸Ô):Ø&4°QÔ&7ðð ð
 *9¸Ô);Ø&5°aÔ&8ðð ð !0�õ 6BÀ#Ñ5FÔ5FÑ2ˆO˜X {àØœØ.Ø Ø+Ø%Ø&Øð	!ð 	!Ðõ ˜˜\Ñ*Ô*ðCå˜Sœ^Ñ,Ô,ðCõ ˜C Ñ/Ô/ðCõ ˜Sœ_Ñ-Ô-ð	Cð 3AÐ! ,Ñ/Ø3BÐ! -Ñ0Øð &ð &�Ø(/×(:Ò(:¸3Ñ(?Ô(?Ð%Ø(ð /Ø% a b bœk�Gõ !  ¡¤¨Ñ0Ô0Ô9�B�Bå   gÑ.Ô.�BÝ ‘|”|ð .Ý&)¨"¡g¤g�OØ%'�NØ"$�KØ#%�LØ)G¨s¬|Ð)GÐ)G¸gÐ)GÐ)GÐ&Ð&õ $ B¨Ñ,Ô,ñØ'Ø&Ø#Ø$à¥'¨#¨x¸Ñ"<Ô"<Ð<Ð<Ø)7¸¸¸Ô);˜Ø)-Ð&Ø(ð NÝ&?ÀÀWÑ&MÔ&M�OØ! %Ô(×/Ò/à Ø 'Ø'6Ø "Ø&4Ø#.Ø#/Ø.@ð	ð 	ñô ð ð ð ˜$Ô×&Ò&Ð'8Ñ9Ô9Ð9ØÕ3Ð3Ð3Ø5FÀuÔ5MÕ-¨cÑ2ùñkU	Nõl 0×5Ò5Ñ7Ô7ð Kð KÑˆˆjÝ$ ZÑ0Ô0ð 	Kð 	K‰KˆA‰x��QÝ$A×$GÒ$GÑ$IÔ$Ið Kð KÑ �˜Så”O CÑ(Ô(ðKå" 3¨Ñ4Ô4ðKð ˜{Ò*Ð*à(+ð Kð K˜Ý'+¨LÑ'9Ô'9˜ð!Ý:SØ # \°&Ô%9ñ;ô ;˜L¨Ñ7Ð7øõ  *ð !ð !ð !Ø ˜Dð!øøøà% dÔ+¨AÔ.¨uÔ5×<Ò<¸\ÑJÔJÐJÐJøðKð	Kð  Ðs   Ì7MÍ
MÍM)r<   r=   )rX   r   r<   rY   )Ú__doc__Ú
__future__r   rª   r   rN   Úcollectionsr   Úcollections.abcr   Ú	functoolsr   rI   rP   rK   r   r-   r?   rC   rW   r•   r    r¿   r   r   r
   ú<module>rÅ      sU  ðØ TÐ Tà "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð à!�k $Ñ'Ô'Ð Ø "Ð ð	ð 	ð 	ð
ð ð ð2ð ð Ð ð0 €�2ÐÑÔðMð Mð Mñ ÔðMð !°dð #ð #ð #ð #ð #ðLmFð mFð mFð mFð`!&ð !&ð !&ðHkð kð kð kð kr   