U 췀g@sddlZddlmZddlmZmZddlmZddl m Z ddl m Z ddlZddlmZmZddlmZmZerdd lmZdd lmZdd lmZd d ddgZddZddZdddZddZddZddZdS)N) TYPE_CHECKING) _get_safe_key_key_as_string) parse_url)VERSION) CacheHandler)OPSPANDATA)capture_internal_exceptionsensure_integration_enabled)Any)Callable)OptionalsetZset_manygetZget_manycCstt|||SN)rr) method_nameargskwargsrT/opt/hc_python/lib/python3.8/site-packages/sentry_sdk/integrations/django/caching.py_get_span_descriptionsrcs\ddlmttfddtfdd}t|dS)NrDjangoIntegrationc sR|d}| }|rtjntj} t|||} tj| | jd} |||} t|dk rj| t j ||dk r| t j |t |||} | dk r| t j| d}|r| rtt| }| t jdn| t jdn._instrument_callcs||Srr)rr)r-r&r$rr%r'rr sentry_method\sz*_patch_cache_method..sentry_method)sentry_sdk.integrations.djangorgetattrr functoolswrapssetattr)r$rr&r'r.r)rr-r&r$rr%r'r_patch_cache_method$s  1r4cCs,t|ds(tD]}t||||qd|_dS)N_sentry_patchedT)hasattrMETHODS_TO_INSTRUMENTr4r5)r$r&r'rrrr _patch_cachefs r8cCsp|d}t|tsdSd|krPt|}d|jp4d|jpddlm}t|j|p(d\}}t||||S)NrrEdefault)rIrFrArDZCACHESr8)selfaliasr$rAr&r')original_get_itemrrsentry_get_items    z&patch_caching..sentry_get_itemTcs6||}tr2t|j|pd\}}t||||S)NrK)rIrDrAr8)rLrMr$r&r')original_create_connectionrrsentry_create_connections   z/patch_caching..sentry_create_connection)r6rDJANGO_VERSION __getitem__r1r2r5create_connection)rOrQr)rPrNr patch_cachings  rU)NN)r1typingrZ#sentry_sdk.integrations.redis.utilsrrZ urllib3.utilrr;djangorrRZdjango.core.cacherr Zsentry_sdk.constsrr Zsentry_sdk.utilsr r r r rr7rr4r8rDrIrUrrrrs.       B