
    `i                     j    d Z ddlZddlmZ ddlmZ erddlmZmZmZm	Z	 ddl
mZmZ 	 	 	 	 	 	 ddZdS )z6Utility functions for PydanticAI span instrumentation.    N)SPANDATA)TYPE_CHECKING)UnionDictAnyList)RequestUsageRunUsagespansentry_sdk.tracing.SpanusageUnion[RequestUsage, RunUsage]returnc                 n   |dS t          |d          r,|j        %|                     t          j        |j                   t          |d          r,|j        %|                     t          j        |j                   t          |d          r,|j        %|                     t          j        |j                   t          |d          r,|j	        %|                     t          j
        |j	                   t          |d          r.|j        )|                     t          j        |j                   dS dS dS )a(  Set token usage data on a span.

    This function works with both RequestUsage (single request) and
    RunUsage (agent run) objects from pydantic_ai.

    Args:
        span: The Sentry span to set data on.
        usage: RequestUsage or RunUsage object containing token usage information.
    Ninput_tokenscache_read_tokenscache_write_tokensoutput_tokenstotal_tokens)hasattrr   set_datar   GEN_AI_USAGE_INPUT_TOKENSr    GEN_AI_USAGE_INPUT_TOKENS_CACHEDr   %GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITEr   GEN_AI_USAGE_OUTPUT_TOKENSr   GEN_AI_USAGE_TOTAL_TOKENS)r   r   s     /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sentry_sdk/integrations/pydantic_ai/spans/utils.py_set_usage_datar      sD    }un%% N%*<*Hh8%:LMMM u)** 
u/F/R5u7N	
 	
 	

 u*++ 
0H0T:$	
 	
 	

 uo&& P5+>+Jh95;NOOOun%% N%*<*Hh8%:LMMMMMN N*H*H    )r   r   r   r   r   N)__doc__
sentry_sdksentry_sdk.constsr   typingr   r   r   r   r   pydantic_ai.usager	   r
   r    r   r   <module>r&      s    < <     & & & & & &             9------------88888888#N
##N,K#N	#N #N #N #N #N #Nr   