
    lh                         d dl Z d dlmZ d dlmZmZ d dlmZ d dl	m
Z d dlmZ d dlZd dlmZmZ d dlmZmZ erd d	lmZ d d
lmZ d dlmZ g dZd Zd ZddZd Zd Zd Zy)    N)TYPE_CHECKING)_get_safe_key_key_as_string)	parse_url)VERSION)CacheHandler)OPSPANDATA)capture_internal_exceptionsensure_integration_enabled)Any)Callable)Optional)setset_manygetget_manyc                 .    t        t        | ||            S N)r   r   )method_nameargskwargss      x/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/django/caching.py_get_span_descriptionr      s    -T6BCC    c                      ddl m t               t              fd       t	        j
                         fd       }t         |       y )Nr   DjangoIntegrationc                    |j                  d      }| }|rt        j                  nt        j                  }	t	        |||      }
t        j                  |	|
j                        5 } ||i |}t               5  | |j                  t        j                  |       | |j                  t        j                  |       t        |||      }| |j                  t        j                  |       d }|rX|r5t        t!        |            }|j                  t        j"                  d       ne|j                  t        j"                  d       nDt        |      }|dk\  rt        t!        |d               }n|dk(  rt        t!        |d               }| |j                  t        j$                  |       d d d        |cd d d        S # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   )opnameoriginTF      r   )
startswithr	   	CACHE_PUT	CACHE_GETr   
sentry_sdk
start_spanr"   r   set_datar
   NETWORK_PEER_ADDRESSNETWORK_PEER_PORTr   	CACHE_KEYlenstr	CACHE_HITCACHE_ITEM_SIZE)cacher   original_methodr   r   addressportis_set_operationis_get_operationr    descriptionspanvaluekey	item_size	arg_countr   s                   r   _instrument_callz-_patch_cache_method.<locals>._instrument_call*   s   
 '11%8//-R\\2<<+KvF""$++
 %	 #T4V4E,. G&MM("?"?I#MM("<"<dC#Kv>?MM("4"4c: 	#$'E
O	h&8&8$?h&8&8%@ #D	I A~$'DG$5	"a$'DG$5	(MM(":":IF9G< K%	 %	G G%	 %	s%   'G:D6G0	GG	GGc            	            | |      S r    )r   r   r>   r4   r2   r   r3   r5   s     r   sentry_methodz*_patch_cache_method.<locals>.sentry_method\   s!      ;vw
 	
r   )sentry_sdk.integrations.djangor   getattrr   	functoolswrapssetattr)r2   r   r4   r5   rA   r   r>   r3   s   ```` @@@r   _patch_cache_methodrG   $   s^    @e[1O 1?C/ D/b ___%
 
 &
 E;.r   c                 ^    t        | d      s!t        D ]  }t        | |||        d| _        y y )N_sentry_patchedT)hasattrMETHODS_TO_INSTRUMENTrG   rI   )r2   r4   r5   r   s       r   _patch_cacherL   f   s9    5+,0 	CK{GTB	C $ -r   c                 $   | j                  d      }t        |t              syd|v rUt        |      }dj	                  |j
                  xs d|j                  xs d|j                  xs d      }|j                  }n|}d }||t        |      fS d fS )NLOCATIONNNz://z	{}://{}{} )
r   
isinstancer/   urlparseformatschemehostnamepathr5   int)settingslocation
parsed_urlr4   r5   s        r   _get_address_portr[   n   s    ||J'H
 h$h'
$$#%2OO!r

 !1CI;;t;;r   c                      ddl m}  t        j                         }|j	                  |       }ddlm} |d uxr. |j                  d uxr |j                  du xs |j                  du S )Nr   r   rX   T)
rB   r   r(   
get_clientget_integrationdjango.confrX   	spotlightDEBUGcache_spans)r   clientintegrationrX   s       r   should_enable_cache_spansrf      sh    @""$F(():;K$d" 				%	@(..D*@ 	+""d*r   c                  J   t        t        d      st        dk  rDt        j                  t	        j
                        fd       } | t        _        dt        _        y t        j                  t	        j
                        fd       }|t        _        dt        _        y y )NrI   )   r#   c                      | |      }t               r2ddlm} t        |j                  |xs d         \  }}t        |||       |S )Nr   r]   default)rf   r`   rX   r[   CACHESrL   )selfaliasr2   rX   r4   r5   original_get_items         r   sentry_get_itemz&patch_caching.<locals>.sentry_get_item   sL     *$6,.4$5 (:;%MGT !6r   Tc                      | |      }t               r,t        | j                  |xs d         \  }}t        |||       |S )Nrj   )rf   r[   rX   rL   )rl   rm   r2   r4   r5   original_create_connections        r   sentry_create_connectionz/patch_caching.<locals>.sentry_create_connection   sD     34?,.$5dmmEDVY6W$XMGT 6r   )rJ   r   DJANGO_VERSION__getitem__rD   rE   rI   create_connection)ro   rr   rq   rn   s     @@r   patch_cachingrv      s    <!23F" , 8 8__./ 0 (7L$+/L( *6)G)G&__78	 9	 .FL*+/L(O 4r   rO   )rD   typingr   #sentry_sdk.integrations.redis.utilsr   r   urllib3.utilr   rR   djangor   rs   django.core.cacher   r(   sentry_sdk.constsr	   r
   sentry_sdk.utilsr   r   r   r   r   rK   r   rG   rL   r[   rf   rv   r@   r   r   <module>r~      sX       M . , *  *  D
?/D%<4)0r   