o
    S۷i                  
   @   s   d Z ddlmZmZ ddlmZmZ ddlmZ dZ	dZ
ddlmZ er8ddlmZ dd	lmZ dd
lmZmZ deddfddZdeddddddddf
ddZdedddddddef
ddZ							 	!		"d%d#d$Zd"S )&z+
Code used for the Caches module in Sentry
    )OPSPANDATA)_get_safe_key_key_as_string)capture_internal_exceptions)getmget)setsetex)TYPE_CHECKING)RedisIntegration)Span)AnyOptionalnamereturnzOptional[str]c                 C   s0   d }|   tv rtj}|S |   tv rtj}|S )N)lowerGET_COMMANDSr   	CACHE_GETSET_COMMANDS	CACHE_PUT)r   op r   b/home/ubuntu/vllm_env/lib/python3.10/site-packages/sentry_sdk/integrations/redis/modules/caches.py_get_op   s   r   redis_commandargsztuple[Any, ...]kwargsdict[str, Any]integrationr   c                 C   s   t | ||}t|}|d}d}|jD ]}|D ]}	|	|r#d} nq|r( nqd }
|  tv r5|d }
t| t| ||||||  ||
d}|S )Nz, FT)r   descriptionkeykey_as_stringr   is_cache_keyvalue)	r   r   splitcache_prefixes
startswithr   r   r   _get_cache_span_description)r   r   r   r   r"   r#   keys_as_stringr$   prefixkeer%   
propertiesr   r   r   _compile_cache_span_properties   s6   


r.   c                 C   sB   t t| ||}|jrt||jkr|d |jtd  d }|S )Nz...)r   r   max_data_sizelen)r   r   r   r   r!   r   r   r   r)   D   s   r)   spanr   redis_clientr   r-   return_valueOptional[Any]Nc           	   	   C   s|  t   | tj|d  |d tv r@|d ur8| tjd t|ts,tt	|
dnt|}| tj| n1| tjd n)|d tv ri|d d urit|d ts\t|d 
dnt|d }| tj| z|jj}W n ty   | }|j|jd}Y nw |d}|d ur| tj| |d	}|d ur| tj| W d    d S W d    d S 1 sw   Y  d S )
Nr"   r   Tzutf-8Fr%   )hostportr5   r6   )r   set_datar   	CACHE_KEYr   	CACHE_HIT
isinstancebytesr0   strencodeCACHE_ITEM_SIZEr   connection_poolconnection_kwargsAttributeErrorget_default_noder5   r6   r   NETWORK_PEER_ADDRESSNETWORK_PEER_PORT)	r1   r2   r-   r3   sizeconnection_paramsdefault_noder5   r6   r   r   r   _set_cache_dataR   sF   


	
("rH   )
r1   r   r2   r   r-   r   r3   r4   r   N)__doc__sentry_sdk.constsr   r   #sentry_sdk.integrations.redis.utilsr   r   sentry_sdk.utilsr   r   r   typingr   sentry_sdk.integrations.redisr   sentry_sdk.tracingr   r   r   r<   r   r.   r)   rH   r   r   r   r   <module>   sZ    

&
