
    tni              
           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rddlmZ dd	lmZ dd
lmZmZ deddfdZdeddddddddf
dZdedddddddef
dZ	 	 	 	 	 	 	 	 	 	 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                     d }|                                  t          v rt          j        }n'|                                  t          v rt          j        }|S )N)lowerGET_COMMANDSr   	CACHE_GETSET_COMMANDS	CACHE_PUT)r   ops     i/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/redis/modules/caches.py_get_opr      sB    	Bzz|||##\		%	%\I    redis_commandargsztuple[Any, ...]kwargsdict[str, Any]integrationr   c                    t          | ||          }t          |          }|                    d          }d}|j        D ]$}|D ]}	|	                    |          rd} n|r n%d }
|                                 t          v r|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(   
propertiess               r   _compile_cache_span_propertiesr1      s    tV
4
4C"3''M"((..NL,  ! 	 	C~~f%% #  	E	 E,,R m$$24
 
 &&,,..$
 
J r   c                     t          t          | ||                    }|j        r:t          |          |j        k    r"|d |j        t          d          z
           dz   }|S )Nz...)r   r   max_data_sizelen)r   r   r   r!   r$   s        r   r,   r,   D   sg     !}dF!K!KLLK  TS%5%58Q%Q%Q!"JK$=E

$J"JKeSr   spanr   redis_clientr   r0   return_valueOptional[Any]Nc                    t                      5  |                     t          j        |d                    |d         t          v r||                     t          j        d           t          |t                    s/t          t          |          
                    d                    nt          |          }|                     t          j        |           n|                     t          j        d           n|d         t          v r|d         xt          |d         t                    s(t          |d         
                    d                    nt          |d                   }|                     t          j        |           	 |j        j        }n3# t          $ r& |                                }|j        |j        d}Y nw xY w|                    d          }| |                     t          j        |           |                    d	          }| |                     t          j        |           d d d            d S # 1 swxY w Y   d S )
Nr%   r   Tzutf-8Fr(   )hostportr:   r;   )r   set_datar   	CACHE_KEYr   	CACHE_HIT
isinstancebytesr4   strencodeCACHE_ITEM_SIZEr   connection_poolconnection_kwargsAttributeErrorget_default_noder:   r;   r   NETWORK_PEER_ADDRESSNETWORK_PEER_PORT)	r5   r6   r0   r7   sizeconnection_paramsdefault_noder:   r;   s	            r   _set_cache_datarM   R   s    
%	&	& )< )<h(*U*;<<<o&,66'h0$777 &lE::+CL))0099:::\** 
 h6====h0%8888(L88'". &j&95AA2C
7+227;;<<<Z011 
 h6===		 , < N 	 	 	 (88::L$)$)! !		 !$$V,,MM(7>>> $$V,,MM(4d;;;S)< )< )< )< )< )< )< )< )< )< )< )< )< )< )< )< )< )<s7   E<IFI-G	IG		A1III)
r5   r   r6   r   r0   r    r7   r8   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   rA   r   r1   r,   rM    r   r   <module>rV      s    + * * * * * * * M M M M M M M M 8 8 8 8 8 8             %>>>>>>''''''$$$$$$$$# /    ##
# # $	#
 # # # #L
  $	
 	   /<
/</< !/< "	/<
 
/< /< /< /< /< /<r   