o
    /if                     @  sX  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m	Z	m
Z
 d dlZd dlmZ d dlmZmZ d dlmZ ejrWedZedZejeejejejejf f ZeeZd	Zd
Z dZ!dZ"dZ#e	d
dd%ddZ$e	d
dd%ddZ%d&ddZ&e	d
de&d'ddZ'G dd deZ(G dd de(Z)G d d! d!e(Z*e&d(d#d$Z+dS ))    )annotationsN)	lru_cachewraps)user_data_dir)	BaseModelField)get_debug_modePTz https://t.explodinggradients.com   ragasRAGAS_DO_NOT_TRACK__RAGAS_DEBUG_TRACKING)maxsizereturnboolc                   C     t jttd dkS NFtrue)osenvirongetr   strlower r   r   I/var/www/html/corbot_env/lib/python3.10/site-packages/ragas/_analytics.pydo_not_track    s   r   c                   C  r   r   )r   r   r   RAGAS_DEBUG_TRACKINGr   r   r   r   r   r   _usage_event_debugging'   s   r   funct.Callable[P, T]c                   s   t  d	 fdd}|S )
NargsP.argskwargsP.kwargsr   t.Anyc               
     s   z | i |W S  t y@ } z,t r(t r!tjd|ddd |td| ntd| W Y d }~d S W Y d }~d S d }~ww )NzTracking Error: %sT   )
stack_info
stacklevel)	Exceptionr   r   loggererrorinfodebug)r!   r#   errr   r   r   wrapper/   s   zsilent.<locals>.wrapper)r!   r"   r#   r$   r   r%   )r   )r   r0   r   r/   r   silent-   s   r1   r   c                  C  s   t td} tj| d}tj|rtt|d }|S dt	
 j }t|  t|d}td|i| W d    |S 1 sBw   Y  |S )N)appnamez	uuid.jsonuseridza-w)r   USER_DATA_DIR_NAMEr   pathjoinexistsjsonloadopenuuiduuid4hexmakedirsdump)user_id_pathuuid_filepathuser_idfr   r   r   
get_useridB   s   


rE   c                   @  s(   e Zd ZU ded< eedZded< dS )	BaseEventr   
event_type)default_factoryrC   N)__name__
__module____qualname____annotations__r   rE   rC   r   r   r   r   rF   Q   s   
 rF   c                   @  s6   e Zd ZU ded< ded< ded< ded< ded	< d
S )EvaluationEventt.List[str]metricsr   evaluation_modeintnum_rowslanguager   in_ciNrI   rJ   rK   rL   r   r   r   r   rM   V   s   
 rM   c                   @  s.   e Zd ZU ded< ded< ded< ded< d	S )
TestsetGenerationEventrN   evolution_nameszt.List[float]evolution_percentagesrQ   rR   r   rS   NrU   r   r   r   r   rV   ^   s
   
 rV   event_propertiesc                 C  s<   t  rd S t| }t rtd| d S tjt|td d S )NzTracking Payload: %s)r9   timeout)	r   dictr   r*   r,   requestspostUSAGE_TRACKING_URLUSAGE_REQUESTS_TIMEOUT_SEC)rY   payloadr   r   r   tracke   s   ra   )r   r   )r   r    r   r    )r   r   )rY   rF   ),
__future__r   r9   loggingr   typingtr<   	functoolsr   r   r\   appdirsr   langchain_core.pydantic_v1r   r   ragas.utilsr   TYPE_CHECKING	ParamSpecr	   TypeVarr
   Callable	CoroutineAny	AsyncFunc	getLoggerrI   r*   r^   r_   r5   r   r   r   r   r1   rE   rF   rM   rV   ra   r   r   r   r   <module>   sD    

 

