˺h ddlmZddlmZddlmZmZddlmZddl m Z e rddl m Z e gdZe gdZd ZGd d eZd Zd S))absolute_import)Hub)capture_internal_exceptionslogger) Integration)MYPY)Any) decrdecrbygetincrincrbypttlsetsetexsetnxttl)deltouchunlinkc ddl}n#t$rYdSwxYwt|jt |d|j}d|cxkrdkrndSt|jdSdS)NrVERSION)rr)rrr) rediscluster ImportErrorpatch_redis_client RedisClustergetattr __version__StrictRedisCluster)rversions }/builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/integrations/redis.py_patch_redisclusterr#s |0111lI|/GHHG7&&&&Y&&&&&&<:;;;;;'&s  c(eZdZdZedZdS)RedisIntegrationredisc`ddl}t|j ddl}t|jjt|jjt|jjn#t$rYnwxYw tdS#t$rtj dYdSwxYw)Nrz3Error occured while patching `rediscluster` library) r&r StrictRedis rb.clientsclients FanoutClient MappingClient RoutingClientrr# Exceptionr exception)r&rbs r" setup_oncezRedisIntegration.setup_once(s  5,--- 9     rz6 7 7 7 rz7 8 8 8 rz7 8 8 8 8     D  T  ! ! ! ! ! T T T  R S S S S S S Ts#A** A76A7;B B-,B-N)__name__ __module__ __qualname__ identifier staticmethodr1r"r%r%%s7JTT\TTTr8r%c.|jfd}||_dS)z` This function can be used to instrument custom redis client classes or subclasses. ctj}|t  ||g|Ri|S|}t 5|g}t |D]/\}}|dkrn#|t|0d|}dddn #1swxYwY| d|5} |r| d||rW|rU| } | tvs| tvr/t|dkr| d|d ||g|Ri|cdddS#1swxYwYdS) N  r&)op descriptionz redis.commandz redis.keyr)rcurrentget_integrationr%r enumerateappendreprjoin start_spanset_taglower_SINGLE_KEY_COMMANDS_MULTI_KEY_COMMANDSlen) selfnameargskwargshubr>description_partsiargspanname_lowold_execute_commands r"sentry_patched_execute_commandz:patch_redis_client..sentry_patched_execute_commandGs(k   / 0 0 8&&tTCDCCCFCC C ( * * 6 6!% #D// 4 43r66E!((c3333((#455K 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6^^wK^ @ @ DD 4 _d333 7 7::<< 444 333D QLLd1g666&&tTCDCCCFCC D D D D D D D D D D D D D D D D D Ds&AB))B-0B- A>EEEN)execute_command)clsrWrVs @r"rr>s=-DDDDD@9Cr8N) __future__r sentry_sdkrsentry_sdk.utilsrrsentry_sdk.integrationsrsentry_sdk._typesrtypingr frozensetrIrJr#r%rr7r8r"ras &&&&&&@@@@@@@@//////"""""" yWWW i : : :;;<<<&TTTTT{TTT2)9)9)9)9)9r8