ó
    ‚¤j~  ã                  óh  • 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
Jr  SSKrSSKJr  SSKJr  SSKrSSKJrJr   SSKJr  S
rSrSS jrSS jrSS jrSS jrSS jrS r SS jr!SS jr"     S                     SS jjr#S S jr$SS jr%S!S jr&g! \ a    S	 r Nff = f)"z Analytics and telemetry helpers.é    )ÚannotationsN)ÚAny)Ú_send_telemetry_in_thread)ÚVersion)Úcore_gradio_componentsÚget_package_version)Úpyfetchc               �  ó    #   • [        S5      e7f)Nz:pyodide.http.pyfetch is not available in this environment.)ÚNotImplementedError)Ú_argsÚ_kwargss     ÚžC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\gradio/analytics.pyÚpyodide_pyfetchr      s   é € Ü!ØHó
ð 	
ùs   ‚zhttps://api.gradio.app/z"https://api.gradio.app/pkg-versionc                ó6   • U R                   R                  5       $ )zÅ
This will return "matrix" for Matrix template, and ensures that any component name that is sent from the gradio app is part of the core components list (no false positives for custom components).
)Ú__name__Úlower)Ú
class_names    r   Úget_block_namer   #   s   € ð ×Ñ×$Ñ$Ó&Ð&ó    c                 ó6   • [         R                  " SS5      S:H  $ )z:
Returns: True if analytics are enabled, False otherwise.
ÚGRADIO_ANALYTICS_ENABLEDÚTrue)ÚosÚgetenv© r   r   Úanalytics_enabledr   *   s   € ô �9Š9Ð/°Ó8¸FÑBÐBr   c                óX   • [         R                  " [        U US.S9R                  5         g )N©ÚtopicÚdata)ÚtargetÚkwargs)Ú	threadingÚThreadÚ_do_normal_analytics_requestÚstartr   s     r   Ú_do_analytics_requestr'   1   s'   € Ü×ÒÜ+àØñ
ñ÷ �e…gr   c                ó\   •  [        U SUR                  S5      US9  g ! [         a     g f = f)NÚgradioÚversion)r   Úlibrary_nameÚlibrary_versionÚ
user_agent)r   ÚgetÚ	Exceptionr   s     r   r%   r%   ;   s8   € ðÜ!ØØ!Ø ŸH™H YÓ/Øó		
øô ó Ùðús   ‚ ž
+ª+c           	   ƒ  óö   #   • [         R                  R                  U5      R                  S5      nSS0n [        R
                  " [        U SX2S9SS9I S h  v•N   g  N! [        R                   a     g f = f7f)NÚasciizContent-Typez!application/x-www-form-urlencodedÚPOST)ÚmethodÚheadersÚbodyé   )Útimeout)ÚurllibÚparseÚ	urlencodeÚencodeÚasyncioÚwait_forr   ÚTimeoutError)Úurlr    r5   r4   s       r   Ú_do_wasm_analytics_requestr@   G   sx   é € ô �<‰<×!Ñ! $Ó'×.Ñ.¨wÓ7€DàÐ;ð€GðÜ×ÒÜ˜C¨¸ÑKØñ
÷ 	
ó 	
øô ×Ñó Ùðüs:   ‚3A9¶!A ÁAÁA ÁA9ÁA ÁA6Á3A9Á5A6Á6A9c                 ó¦  •  [        5       n [        R                  " [        SS9R	                  5       S   n[        U5      [        U 5      :”  a  [        R                  " SU  SU S35        g g ! [        R                  R                   a    [        R                  " S5         g [         a    [        R                  " S5         g [         a     g f = f)	Né   )r?   r7   r*   z(IMPORTANT: You are using gradio version z, however version z( is available, please upgrade. 
--------z1unable to parse version details from package URL.z*package URL does not contain version info.)r   Úhttpxr.   ÚPKG_VERSION_URLÚjsonr   ÚwarningsÚwarnÚdecoderÚJSONDecodeErrorÚKeyErrorr/   )Úcurrent_pkg_versionÚlatest_pkg_versions     r   Úversion_checkrM   X   s¾   € ðÜ1Ó3ÐÜ"ŸYšY¬?ÀAÑF×KÑKÓMÈiÑXÐÜÐ%Ó&¬Ð1DÓ)EÓEÜ�MŠMØ:Ð;NÐ:Oð P#Ø#5Ð"6ð 7ðõð Føô �<‰<×'Ñ'ó KÜ�ŠÐIÖJÜó DÜ�ŠÐBÖCÜó Ùðús   ‚A)A- Á-4CÂ#CÃ	CÃCc                óJ   • [        5       (       d  g [         S3n[        UU S9  g )Nzgradio-initiated-analytics/r   ©r   ÚANALYTICS_URLr'   ©r    r   s     r   Úinitiated_analyticsrR   j   s)   € Ü×ÑØäˆoÐ8Ð9€EÜØØór   c           
     óª  • [        5       (       d  g / / / / / 4u  nnnnn[        U R                  R                  5       5       H"  nUR	                  UR                  5       5        M$     U R                  R                  5        GHA  nUUR                   Vs/ s HA  nUS   U R                  ;   d  M  U R                  [        US   5         R                  5       PMC     sn-   nUUR                   Vs/ s H  oˆS   U R                  ;   d  M  US   PM     sn-   nUUR                   Vs/ s H:  nX€R                  ;   d  M  U R                  [        U5         R                  5       PM<     sn-   nUUR                   Vs/ s H:  nX€R                  ;   d  M  U R                  [        U5         R                  5       PM<     sn-   nGMD             S	S jn	[        5        V
s/ s H  n
[        U
5      PM     nn
[        5       U R                  U R                  S LU R                  U	" U R                   U R"                  U5      U	" U R                   U R$                  U5      UUUS.	nU Vs/ s H  oÝU;  d  M
  UPM     nn['        U5      S:„  nXüS'   XìS'   UR)                  U5        [*         S3n[-        UUS9  g s  snf s  snf s  snf s  snf s  sn
f s  snf )
Nr   é   c                ón   • U S:X  a)  U(       a   U Vs/ s H  o3R                  5       PM     sn$ S $ U$ s  snf )NÚ	interface)r   )ÚmodeÚ
componentsÚfallbackÚbs       r   Úget_inputs_outputsÚ.launched_analytics.<locals>.get_inputs_outputsž   s9   € ð
 �;ÓÞ?I±
Ó;²
¨1×$Ñ$Ö&±
Ñ;ÐSÈtÐSØˆùò <s   ’2)	r*   Úis_hosted_notebookÚ
using_authÚdev_modeÚinputsÚoutputsÚtargetsÚblocksÚeventsÚusing_custom_componentÚcustom_componentszgradio-launched-telemetry/r   )rW   ÚstrrX   z(list[gradio.components.Component] | NonerY   z	list[str]Úreturnzlist[str] | None)r   Úlistrc   ÚvaluesÚappendr   Úfnsrb   Úintr`   ra   r   r   r]   Úauthr_   rW   Úinput_componentsÚoutput_componentsÚlenÚupdaterP   r'   )rc   r    Úblocks_telemetryÚinputs_telemetryÚoutputs_telemetryÚtargets_telemetryÚevents_telemetryÚxÚyr[   ÚcÚcore_componentsÚadditional_datarZ   rf   re   r   s                    r   Úlaunched_analyticsr}   u   sð  € Ü×ÑØð 	Ø
Ø
Ø
Ø
ð	ñØØØØØô �&—-‘-×&Ñ&Ó(Ö)ˆØ×Ñ × 0Ñ 0Ó 2Ö3ñ *à�Z‰Z×Ñ× ˆØ-ð —Y’Yó1
ò �Ø�‰t�v—}‘}Ñ$ó 6ˆF�M‰Mœ#˜a ™d›)Ñ$×3Ñ3Ö5Ùñ1
ñ 
Ðð ,ØŸ)š)ó/
Ú#�Q¨¡t¨v¯}©}Ñ'<‹DˆAˆaŒD™)ñ/
ñ 
Ðð ,à—X’Xó/
â�Ø—M‘MÑ!ó 3ˆF�M‰Mœ#˜a›&Ñ!×0Ñ0Ö2Ùñ/
ñ 
Ðð
 .à—Y’Yó1
â�Ø—M‘MÑ!ó 3ˆF�M‰Mœ#˜a›&Ñ!×0Ñ0Ö2Ùñ1
ñ 
Óñ !ð*Øðà<ðð ðð 
ô	ô 3IÔ2JÓKÒ2J¨Q”~ aÖ(Ñ2J€OÐKô 'Ó(Ø$×7Ñ7Ø—k‘k¨Ð-Ø—O‘OÙ$Ø�K‰K˜×0Ñ0Ð2Bó
ñ &Ø�K‰K˜×1Ñ1Ð3Dó
ð %Ø"Ø"ñ€Oñ %5ÓQÒ$4˜qÀÑ8PŸÑ$4ÐÐQÜ Ð!2Ó3°aÑ7ÐØ0FÐ,Ñ-Ø+<Ð'Ñ(à‡K�K�Ô äˆoÐ7Ð8€Eä ¨DÓ1ùòo1
ùò/
ùò/
ùò
1
ùò Lùò" RsB   ÂJ7Â/-J7Ã0J<Ä
	J<Ä'KÄ>*KÅ<KÆ*KÇ KÉ'	KÉ4Kc
                óR   • U UUUUUUUUU	S.
n
[        5       (       d  g [        SU
S9  g )N)
ÚcommandÚtemplateÚupload_pypiÚupload_demoÚupload_sourceÚgenerate_docsÚbump_versionÚnpm_installÚpython_pathÚgradio_pathzgradio/custom-componentsr   ©r   r'   )r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r    s              r   Úcustom_component_analyticsrŠ   Ä   sE   € ð ØØ"Ø"Ø&Ø&Ø$Ø"Ø"Ø"ñ€Dô ×ÑØäØ(Øór   c                 ó@   • SS0n [        5       (       d  g [        SU S9  g )Nr   Úvibezgradio/viber   r‰   )r    s    r   Úvibe_analyticsr�   å   s*   € à�6ð€Dô ×ÑØäØØór   c                óJ   • [        5       (       d  g [         S3n[        UU S9  g )Nzgradio-integration-analytics/r   rO   rQ   s     r   Úintegration_analyticsr�   ò   s)   € Ü×ÑØäˆoÐ:Ð;€EÜØØór   c                óR   • [        5       (       d  gSU 0n[         S3n[        UUS9  g)zW
Send error analytics if there is network
Parameters:
    message: Details about error
NÚerrorzgradio-error-analytics/r   rO   )Úmessager    r   s      r   Úerror_analyticsr“   ý   s5   € ô ×ÑØà�WÐ€DÜˆoÐ4Ð5€EÜØØór   )rh   rg   )rh   Úbool)r   rg   r    údict[str, Any]rh   ÚNone)r?   rg   r    r•   rh   r–   )r    r•   rh   r–   )rc   zgradio.Blocksr    r•   rh   r–   )NNNNN)r   rg   r€   ú
str | Noner�   úbool | Noner‚   r˜   rƒ   r˜   r„   r˜   r…   r˜   r†   r—   r‡   r—   rˆ   r—   rh   r–   )rh   r–   )r’   rg   rh   r–   )'Ú__doc__Ú
__future__r   r<   rE   r   r#   Úurllib.parser8   rF   Útypingr   rC   Ú huggingface_hub.utils._telemetryr   Úpackaging.versionr   r)   Úgradio.utilsr   r   Úpyodide.httpr	   r   ÚImportErrorrP   rD   r   r   r'   r%   r@   rM   rR   r}   rŠ   r�   r�   r“   r   r   r   Ú<module>r¢      s  ðÙ &å "ã Û Û 	Û Û Û Ý ã Ý FÝ %ã ß Dð
Ý7ð *€Ø6€ô'ôCôô	ôò"ô$ôL2ðj "&Ø $Ø"Ø"Ø"ðØðàðð ðð ð	ð
 ðð ðð ðð ðð ðð ðð 
õôB
ôõøðM ó 
ô
ð
ús   ÁB% Â%	B1Â0B1