
    Pi                    (   d Z ddlmZ ddlZddlZddlZddlZddlZddl	Z	ddl
mZ ddlZddlmZ ddlmZ ddlZddlmZmZ 	 ddlmZ n# e$ r d	 ZY nw xY wd
ZdZd/dZd0dZd1dZd1dZd2dZd Z d3dZ!d4dZ"	 	 	 	 	 d5d6d*Z#d7d+Z$d3d,Z%d8d.Z&dS )9z-Functions related to analytics and telemetry.    )annotationsN)Any)_send_telemetry_in_thread)Version)core_gradio_componentsget_package_version)pyfetchc                 $   K   t          d          )Nz:pyodide.http.pyfetch is not available in this environment.)NotImplementedError)_args_kwargss     d/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/gradio/analytics.pypyodide_pyfetchr      s      !H
 
 	
    zhttps://api.gradio.app/z"https://api.gradio.app/pkg-versionreturnstrc                4    | j                                         S )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     $$&&&r   boolc                 4    t          j        dd          dk    S )zB
    Returns: True if analytics are enabled, False otherwise.
    GRADIO_ANALYTICS_ENABLEDTrue)osgetenv r   r   analytics_enabledr   *   s     9/88FBBr   topicdatadict[str, Any]Nonec                f    t          j        t          | |d                                           d S )Nr    r!   )targetkwargs)	threadingThread_do_normal_analytics_requeststartr%   s     r   _do_analytics_requestr,   1   s;    +
 
   egggggr   c                v    	 t          | d|                    d          |           d S # t          $ r Y d S w xY w)Ngradioversion)r    library_namelibrary_version
user_agent)r   get	Exceptionr%   s     r   r*   r*   ;   sd    !! HHY//		
 	
 	
 	
 	
 	
    s   &* 
88urlc                   K   t           j                            |                              d          }ddi}	 t	          j        t          | d||          d           d {V  d S # t          j        $ r Y d S w xY w)NasciizContent-Typez!application/x-www-form-urlencodedPOST)methodheadersbody   )timeout)urllibparse	urlencodeencodeasynciowait_forr   TimeoutError)r5   r!   r;   r:   s       r   _do_wasm_analytics_requestrE   G   s       <!!$''..w77D;GCdKKK
 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
    s   -A) )A<;A<c                    	 t                      } t          j        t          d                                          d         }t          |          t          |           k    rt          j        d|  d| d           d S d S # t          j        j	        $ r t          j        d           Y d S t          $ r t          j        d           Y d S t          $ r Y d S w xY w)	N   )r5   r=   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   httpxr3   PKG_VERSION_URLjsonr   warningswarndecoderJSONDecodeErrorKeyErrorr4   )current_pkg_versionlatest_pkg_versions     r   version_checkrR   X   s(   133"Y?AFFFKKMMiX%&&1D)E)EEEM;N  #5       FE <' K K KIJJJJJJ D D DBCCCCCC   s   A<B (C-C	CCc                \    t                      sd S t           d}t          ||            d S )Nzgradio-initiated-analytics/r%   r   ANALYTICS_URLr,   r!   r    s     r   initiated_analyticsrW   j   sJ     999E     r   blocksgradio.Blocksc           
     `    t                      sd S g g g g g f\  }}}}}t           j                                                  D ])}|                    |                                           * j                                        D ]Z}| fd|j        D             z   }| fd|j        D             z   }| fd|j        D             z   }| fd|j	        D             z   }[dd}d t                      D             t                       j         j        d u j         | j         j        |           | j         j        |          |||d	}	fd|D             }
t%          |
          dk    }||	d<   |
|	d<   |                    |	           t(           d}t+          ||           d S )Nc                    g | ]C}|d          j         v j         t          |d                                                             DS )r   rX   intr   .0yrX   s     r   
<listcomp>z&launched_analytics.<locals>.<listcomp>   sS     1
 1
 1
 tv}$$ M#ad))$3355$$$r   c                >    g | ]}|d          j         v |d         S )r      )rX   r^   s     r   ra   z&launched_analytics.<locals>.<listcomp>   s4     /
 /
 /
qtv}'<'<AaD'<'<'<r   c                z    g | ]7}|j         v j         t          |                                                   8S r   r\   r^   s     r   ra   z&launched_analytics.<locals>.<listcomp>   sI     /
 /
 /
FM!! M#a&&!0022!!!r   c                z    g | ]7}|j         v j         t          |                                                   8S r   r\   r^   s     r   ra   z&launched_analytics.<locals>.<listcomp>   sI     1
 1
 1
FM!! M#a&&!0022!!!r   moder   
components(list[gradio.components.Component] | Nonefallback	list[str]r   list[str] | Nonec                2    | dk    r|rd |D             nd S |S )N	interfacec                6    g | ]}|                                 S r   r   )r_   bs     r   ra   zBlaunched_analytics.<locals>.get_inputs_outputs.<locals>.<listcomp>   s$    ;;;1A$$&&;;;r   r   )rf   rg   ri   s      r   get_inputs_outputsz.launched_analytics.<locals>.get_inputs_outputs   s3    
 ;?IS;;
;;;;tSr   c                ,    g | ]}t          |          S r   ro   )r_   cs     r   ra   z&launched_analytics.<locals>.<listcomp>   s     KKKQ~a((KKKr   )	r/   is_hosted_notebook
using_authdev_modeinputsoutputstargetsrX   eventsc                    g | ]}|v|	S r   r   )r_   rp   core_componentss     r   ra   z&launched_analytics.<locals>.<listcomp>   s#    QQQq8P8P8P8P8Pr   r   using_custom_componentcustom_componentszgradio-launched-telemetry/r%   )rf   r   rg   rh   ri   rj   r   rk   )r   listrX   valuesappendr   fnsry   rw   rx   r   r   rt   authrv   rf   input_componentsoutput_componentslenupdaterU   r,   )rX   r!   blocks_telemetryinputs_telemetryoutputs_telemetrytargets_telemetryevents_telemetryxrq   additional_datar~   r}   r    r|   s   `            @r   launched_analyticsr   u   s     	



	 &-&&(()) 4 4 0 0 2 23333Z   
 
- 1
 1
 1
 1
 Y1
 1
 1
 
 , /
 /
 /
 /
)/
 /
 /
 
 , /
 /
 /
 /
X/
 /
 /
 

 . 1
 1
 1
 1
Y1
 1
 1
 
    LK2H2J2JKKKO '(($7k-O$$K02B
 
 &%K13D
 
 %"" O RQQQ$4QQQ !233a70FO,-+<O'(KK   888ED111111r   commandtemplate
str | Noneupload_pypibool | Noneupload_demoupload_sourcegenerate_docsbump_versionnpm_installpython_pathgradio_pathc
                b    | |||||||||	d
}
t                      sd S t          d|
           d S )N)
r   r   r   r   r   r   r   r   r   r   zgradio/custom-componentsr%   r   r,   )r   r   r   r   r   r   r   r   r   r   r!   s              r   custom_component_analyticsr      sj     ""&&$""" D  (     r   c                 P    ddi} t                      sd S t          d|            d S )Nr   vibezgradio/viber%   r   )r!   s    r   vibe_analyticsr      sJ    6D       r   c                \    t                      sd S t           d}t          ||            d S )Nzgradio-integration-analytics/r%   rT   rV   s     r   integration_analyticsr      sJ     ;;;E     r   messagec                d    t                      sdS d| i}t           d}t          ||           dS )zg
    Send error analytics if there is network
    Parameters:
        message: Details about error
    Nerrorzgradio-error-analytics/r%   rT   )r   r!   r    s      r   error_analyticsr      sV      WD555E     r   )r   r   )r   r   )r    r   r!   r"   r   r#   )r5   r   r!   r"   r   r#   )r!   r"   r   r#   )rX   rY   r!   r"   r   r#   )NNNNN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r#   )r   r#   )r   r   r   r#   )'__doc__
__future__r   rB   rJ   r   r(   urllib.parser>   rK   typingr   rH    huggingface_hub.utils._telemetryr   packaging.versionr   r.   gradio.utilsr   r   pyodide.httpr	   r   ImportErrorrU   rI   r   r   r,   r*   rE   rR   rW   r   r   r   r   r   r   r   r   <module>r      s(   3 3 " " " " " "   				                 F F F F F F % % % % % %  D D D D D D D D
7777777 
 
 

 
 
 
 

 *6' ' ' 'C C C C   	 	 	 	   "  $   L2 L2 L2 L2j "& $"""    B
 
 
 
        s   A AA