o
    h                     @   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 Zdd Zdd Z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)Anyc                 C   s   t | ||}tj|d}|S )N)opdescription)_get_db_span_descriptionr   DB_REDIS)integrationredis_commandargsr   
properties r   o/var/www/html/pro-man-master/venv/lib/python3.10/site-packages/sentry_sdk/integrations/redis/modules/queries.py_compile_db_span_properties   s
   r   c                 C   sj   |}t   t||}W d    n1 sw   Y  | jo#t|| jk}|r3|d | jtd  d }|S )Nz...)r   r   max_data_sizelen)r   command_namer   r   data_should_be_truncatedr   r   r   r      s   r   c                 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)spanconnection_paramsr   r   r   r   r   r   _set_db_data_on_span.   s   


r'   c                 C   s*   z
t | |jj W d S  ty   Y d S w )N)r'   connection_poolconnection_kwargsAttributeError)r%   redis_instancer   r   r   _set_db_data?   s
   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   <module>   s    