o
    ٰi                     @   s   d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 e	r6ddl
mZ ddlmZ ddlmZ dd	lmZ d
ddeddddfddZd
ddedddefddZd ddZd!ddZdS )"z,
Code used for the Queries module in Sentry
    )OPSPANDATA)_get_safe_command)capture_internal_exceptions)TYPE_CHECKING)Redis)RedisIntegration)Span)Anyintegrationr   redis_commandargsztuple[Any, ...]returndict[str, Any]c                 C   s   t | ||}tj|d}|S )N)opdescription)_get_db_span_descriptionr   DB_REDIS)r   r   r   r   
properties r   a/home/ubuntu/.local/lib/python3.10/site-packages/sentry_sdk/integrations/redis/modules/queries.py_compile_db_span_properties   s
   r   command_namec                 C   sf   |}t   t||}W d    n1 sw   Y  | jr1t|| jkr1|d | jtd  d }|S )Nz...)r   r   max_data_sizelen)r   r   r   r   r   r   r   r      s   r   spanr	   connection_paramsNc                 C   sz   |  tjd |d}|d ur|  tjt| |d}|d ur)|  tj| |d}|d ur;|  tj| d S d S )Nredisdbhostport)set_datar   	DB_SYSTEMgetDB_NAMEstrSERVER_ADDRESSSERVER_PORT)r   r   r   r   r    r   r   r   _set_db_data_on_span-   s   


r(   redis_instance
Redis[Any]c                 C   s*   z
t | |jj W d S  ty   Y d S w )N)r(   connection_poolconnection_kwargsAttributeError)r   r)   r   r   r   _set_db_data=   s
   r.   )r   r	   r   r   r   N)r   r	   r)   r*   r   N)__doc__sentry_sdk.constsr   r   #sentry_sdk.integrations.redis.utilsr   sentry_sdk.utilsr   typingr   r   r   sentry_sdk.integrations.redisr   sentry_sdk.tracingr	   r
   r%   r   r   r(   r.   r   r   r   r   <module>   s<    


