
    ng\jDH                     n	   % S r SSKJrJrJr  SSKJr  SSKJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrPJQrQJRrRJSrSJTrTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`JaraJbrbJcrcJdrdJereJfrfJgrgJhrhJiri  0 \Y" S\j5      E\Y" S\k5      E\Y" S\5      E\Y" S	\P5      E\Y" S
\)5      E\Y" S\K5      E0 S\_S\_S\_S\_S\_S\_S\_S\_S\_S\_S\_S\j_S\_S\_S\_S\_S\_E0 S\_S\_S\_S \_S!\_S"\_S#\_S$\_S%\_S&\_S'\_S(\_S)\_S*\_S+\_S,\_S-\_E0 S.\_S/\+_S0\,_S1\Z_S2\_S3\j_S4\j_S5S6 _S7\4_S8\4_S9\_S:\F_S;\5_S<S= _S>\_S?\_S@\_E0 SA\_SB\_SC\_SD\6_SE\_SF\_SG\_SH\_SI\G_SJ\_SK\X_SL\5_SMSN _SO\L_SP\M_SQ\_SR\j_E\\\N\O\VSS.Erl0 \Y" STSU 5      E\Y" SV\e5      E\Y" SW\]5      E\Y" SX\a5      E\Y" SY\5      E\Y" SZS[ 5      E\Y" S\S] 5      E\Y" S^S_ 5      E0 S`Sa _Sb\_ScSd _SeSf _SgSh _Si\_Sj\_SkSl _SmSn _SoSp _Sq\"_Sr\$_SsSt _SuSv _SwSx _SySz _S{\1_ES| \\7\;\@\@\H\/\/\T\US}.Erm0 \Y" STS~ 5      E\Y" SS 5      E\Y" S\f5      E\Y" SX\b5      E\Y" S	\Q5      ES \ \#\2\E\<\A\AS \0\0S.Ern0 \mE\Y" S\i5      E\Y" SW\`5      E\Y" SX\d5      E\Y" S^\
5      E\Y" S	\S5      E\Y" S
\*5      E\Y" S\S 5      E\Y" S\\5      E0 S\W_S\i_S\_S\_Sk\_SmS _S\_S(\!_SoS _S\&_Su\(_S\._S{\3_S\9_S\>_S\C_S\C_ES\J0Ero\p\q\S\4   4   \rS'   0 \nE\Y" S\f5      E\Y" SW\_5      E\Y" S^\
5      E\Y" S	\S5      E\Y" S
\*5      E0 S\W_S\f_S`S _Sb\_ScS _SeS _S\_SgS _Si\_Sj\_Sk\_S\_S(\!_S\&_SsS _S\._S\_E\:\?\D\D\IS.Ers\p\q\S\4   4   \rS'   0 \Y" STS 5      E\Y" SV\g5      E\h\hS.E\Y" SW\^5      E\Y" S^\	5      E\Y" SX\c5      E\Y" SZS 5      E\Y" S	\R5      E\Y" S\S 5      E\Y" S\[5      E0 S\_S`S _Sb\_S\_ScS _SeS _S\_SgS _Si\_Sj\_Sk\_SmS _S\_SoS _Sq\#_Sr\$_S\%_ES \'\-\2\\8\=\B\B\0\0S.Ert\p\q\S\4   4   \rS'   S\\u   S\jS\p\q\S\4   4   4S jrvg)uU  Response-callback dictionaries and the protocol/legacy selector.

This module is the single source of truth for the mapping between Redis
command names and the Python-side callbacks that post-process raw parser
output into user-facing values.

Six dictionaries are defined:

* ``_RedisCallbacks`` — entries that produce the same Python value
  regardless of wire protocol or legacy-response selection.
* ``_RedisCallbacksRESP2`` — RESP2 wire, legacy Python shapes.
* ``_RedisCallbacksRESP3`` — RESP3 wire, Python shapes from the previous
  RESP3 callbacks.
* ``_RedisCallbacksRESP2Unified`` — RESP2 wire, unified Python shapes
  (``legacy_responses=False``).
* ``_RedisCallbacksRESP3Unified`` — RESP3 wire, unified Python shapes
  (``legacy_responses=False``).
* ``_RedisCallbacksRESP3toRESP2Legacy`` — RESP3 wire converted back to the
  legacy RESP2 Python shapes for users who keep ``legacy_responses=True``
  on a RESP3 connection.

``get_response_callbacks`` merges ``_RedisCallbacks`` with the appropriate
protocol-specific overlay. Callers wrap the returned dict in
``CaseInsensitiveDict``.
    )AnyCallableOptionalstr_if_bytes   )bbool_ok!bzpop_score_resp3_to_resp2_legacybzpop_score_unifiedfloat_or_none hrandfield_resp3_to_resp2_legacyhrandfield_unifiedpairs_to_dictparse_acl_getuser'parse_acl_getuser_resp3_to_resp2_legacyparse_acl_getuser_unifiedparse_acl_log#parse_acl_log_resp3_to_resp2_legacyparse_acl_log_resp3_unifiedparse_arinfoparse_client_infoparse_client_killparse_client_list/parse_client_trackinginfo_resp3_to_resp2_legacy!parse_client_trackinginfo_unifiedparse_cluster_info)parse_cluster_links_resp3_to_resp2_legacyparse_cluster_links_unifiedparse_cluster_nodesparse_commandparse_command_resp3parse_command_unifiedparse_config_get&parse_config_get_resp3_to_resp2_legacyparse_debug_object)parse_function_list_resp3_to_resp2_legacyparse_function_list_unified"parse_geopos_resp3_to_resp2_legacyparse_geopos_unifiedparse_geosearch_genericparse_geosearch_generic_unifiedparse_hscan
parse_info#parse_lcs_idx_resp3_to_resp2_legacyparse_lcs_idx_unifiedparse_list_of_dictsparse_list_of_dicts_resp3parse_memory_statsparse_memory_stats_resp3parse_memory_stats_unifiedparse_pubsub_numsub
parse_scanparse_sentinel_get_masterparse_sentinel_master+parse_sentinel_master_resp3_to_resp2_legacyparse_sentinel_master_unified#parse_sentinel_master_unified_resp3parse_sentinel_mastersparse_sentinel_masters_resp3,parse_sentinel_masters_resp3_to_resp2_legacyparse_sentinel_masters_unified$parse_sentinel_masters_unified_resp3#parse_sentinel_slaves_and_sentinels)parse_sentinel_slaves_and_sentinels_resp39parse_sentinel_slaves_and_sentinels_resp3_to_resp2_legacy+parse_sentinel_slaves_and_sentinels_unified1parse_sentinel_slaves_and_sentinels_unified_resp3parse_sentinel_state_resp3parse_set_resultparse_slowlog_getparse_stralgoparse_stralgo_resp3_unifiedparse_stralgo_unifiedparse_stream_listparse_xautoclaimparse_xclaimparse_xinfo_streamparse_xpendingparse_xreadparse_xread_resp3!parse_xread_resp3_to_resp2_legacyparse_xread_unified
parse_zaddparse_zmscoreparse_zscanparse_zscan_unifiedsort_return_tuplesstring_keys_to_dicttimestamp_to_datetimezmpop_resp3_to_resp2_legacyzmpop_unifiedzpop_score_pairs&zpop_score_pairs_resp3_to_resp2_legacyzpop_score_pairs_resp3_unifiedzpop_score_pairs_unifiedzset_score_for_rankzset_score_for_rank_resp3)zset_score_for_rank_resp3_to_resp2_legacyzset_score_for_rank_unifiedzset_score_pairszset_score_pairs_resp3&zset_score_pairs_resp3_to_resp2_legacy+zset_score_pairs_resp3_to_resp2_legacy_flatzset_score_pairs_unifiedzoAUTH COPY EXPIRE EXPIREAT HEXISTS HMSET MOVE MSETNX PERSIST PSETEX PEXPIRE PEXPIREAT RENAMENX SETEX SETNX SMOVEzHINCRBYFLOAT INCRBYFLOATz{ASKING FLUSHALL FLUSHDB LSET LTRIM MSET PFMERGE READONLY READWRITE RENAME SAVE SELECT SHUTDOWN SLAVEOF SWAPDB WATCH UNWATCHzXREAD XREADGROUPz%GEORADIUS GEORADIUSBYMEMBER GEOSEARCHzXRANGE XREVRANGEzACL GETUSERzACL LOADACL LOGzACL SETUSERzACL SAVEzCLIENT INFOzCLIENT KILLzCLIENT LISTzCLIENT PAUSEzCLIENT SETINFOzCLIENT SETNAMEzCLIENT UNBLOCKzCLUSTER ADDSLOTSzCLUSTER ADDSLOTSRANGEzCLUSTER DELSLOTSzCLUSTER DELSLOTSRANGEzCLUSTER FAILOVERzCLUSTER FORGETzCLUSTER INFOzCLUSTER MEETzCLUSTER NODESzCLUSTER REPLICASzCLUSTER REPLICATEzCLUSTER RESETzCLUSTER SAVECONFIGzCLUSTER SET-CONFIG-EPOCHzCLUSTER SETSLOTzCLUSTER SLAVESCOMMANDzCONFIG RESETSTATz
CONFIG SETzFUNCTION DELETEzFUNCTION FLUSHzFUNCTION RESTOREGEODISTHSCANINFOLASTSAVEzMEMORY PURGEzMODULE LOADzMODULE UNLOADPINGc                     [        U 5      S:H  $ )NPONGr   rs    \/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/redis/_parsers/response_callbacks.py<lambda>rw      s    l1o/    zPUBSUB NUMSUBzPUBSUB SHARDNUMSUBQUITSETSCANzSCRIPT EXISTSc                 4    [        [        [        U 5      5      $ N)listmapboolrt   s    rv   rw   rw      s    tCaL1rx   zSCRIPT FLUSHzSCRIPT KILLzSCRIPT LOADzSENTINEL CKQUORUMzSENTINEL FAILOVERzSENTINEL FLUSHCONFIGz SENTINEL GET-MASTER-ADDR-BY-NAMEzSENTINEL MONITORzSENTINEL RESETzSENTINEL REMOVEzSENTINEL SETzSLOWLOG GETzSLOWLOG RESETSORTSSCANTIMEc                 :    [        U S   5      [        U S   5      4$ Nr   r   )int)xs    rv   rw   rw      s    s1Q4y#ad),rx   
XAUTOCLAIMXCLAIMzXGROUP CREATEzXGROUP DESTROY)zXGROUP SETIDARINFOzXINFO STREAMXPENDINGZSCANzSDIFF SINTER SMEMBERS SUNIONc                 L    U =(       a    [        U 5      =(       d
    [        5       $ r}   setrt   s    rv   rw   rw          !,A2G#%2Grx   z=ZINTER ZRANGE ZRANGEBYSCORE ZREVRANGE ZREVRANGEBYSCORE ZUNIONzZPOPMAX ZPOPMINzZREVRANK ZRANKzZINCRBY ZSCOREzBGREWRITEAOF BGSAVEc                     gNT rt   s    rv   rw   rw          4rx   zBLPOP BRPOPc                 <    U =(       a    [        U 5      =(       d    S $ r}   tuplert   s    rv   rw   rw          1>q3IT3Irx   zBZPOPMAX BZPOPMINc                 T    U =(       a    U S   U S   [        U S   5      4=(       d    S $ )Nr   r      floatrt   s    rv   rw   rw      s(    q'FadAaD%!+-F'N$'Nrx   zACL CATc                 4    [        [        [        U 5      5      $ r}   r~   r   r   rt   s    rv   rw   rw          c,23rx   zACL GENPASSzACL HELPc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw          $s<34rx   zACL LISTc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw      r   rx   z	ACL USERSc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw          4L! 45rx   z
ACL WHOAMIzCLIENT GETNAMEzCLIENT TRACKINGINFOc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw      s    T#lA*>%?rx   zCLUSTER GETKEYSINSLOTc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw          tCa,@'Arx   zCOMMAND GETKEYSc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw          c,&:!;rx   
CONFIG GETzDEBUG OBJECTGEOHASHc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   GEOPOSc                 .    [        [        S U 5      5      $ )Nc                 D    U b  [        U S   5      [        U S   5      4$ S $ r   r   )lls    rv   rw   <lambda>.<locals>.<lambda>  s%    r~beeBqEl3O4Orx   )r~   r   rt   s    rv   rw   rw     s    OQRSrx   HGETALLc                 <    U =(       a    [        U 5      =(       d    0 $ r}   r   rt   s    rv   rw   rw     s    /}Q/525rx   zHOTKEYS GETc                 D    U  Vs/ s H  n[        U5      PM     sn$ s  snf r}   r   ru   ms     rv   rw   rw         :1mA.::   MEMORY STATSc                 D    U  Vs/ s H  n[        U5      PM     sn$ s  snf r}   r   r   s     rv   rw   rw     r   r   )zMODULE LISTRESETSENTINEL MASTERSENTINEL MASTERSSENTINEL SENTINELSSENTINEL SLAVESSTRALGOXINFO CONSUMERSXINFO GROUPSZADDZMSCOREc                 L    U =(       a    [        U 5      =(       d
    [        5       $ r}   r   rt   s    rv   rw   rw     r   rx   z0ZRANGE ZINTER ZPOPMAX ZPOPMIN HGETALL XREADGROUPc                     U $ r}   r   ru   kwargss     rv   rw   rw     s    Arx   z6ZRANGE ZRANGEBYSCORE ZREVRANGE ZREVRANGEBYSCORE ZUNIONc                     [        U [        5      (       aM  U  VVVs/ s H;  nUR                  5        VVs0 s H  u  p#[        U5      [        U5      _M     snnPM=     snnn$ [	        U 5      $ s  snnf s  snnnf r}   )
isinstancer~   itemsr   r	   )ru   r   keyvalues       rv   rw   rw   '  sq    
 a 	
 GHggiPi
\#U 33iP	
 	
 QZ	P	
s   A4!A.A4.A4c                     [        U [        5      (       a8  U R                  5        VVs0 s H  u  p#[        U5      [        U5      _M     snn$ [        U 5      $ s  snnf r}   )r   dictr   r   )ru   optionsr   r   s       rv   rw   rw   6  sP    a CD'')L)JCc	L/	/)L 	!_	Ls   !A)rk   rl   r   r   r   r   r   r   r   r   r   zCZDIFF ZINTER ZRANGE ZRANGEBYSCORE ZREVRANGE ZREVRANGEBYSCORE ZUNIONc                     U =(       d    S $ r}   r   rt   s    rv   rw   rw   X  s
    199rx   zZMPOP BZMPOPr   ZRANDMEMBER
HRANDFIELDc                     U $ r}   r   r   s     rv   rw   rw   _  s    rx   zCLUSTER LINKSc                     U $ r}   r   r   s     rv   rw   rw   b  s    1rx   zFUNCTION LISTLCSr   r   r   r   r   ._RedisCallbacksRESP2Unifiedc                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   r   )r   r   r   r   r   _RedisCallbacksRESP3Unifiedc                 L    U =(       a    [        U 5      =(       d
    [        5       $ r}   r   rt   s    rv   rw   rw     r   rx   )ZDIFFr   c                     gr   r   rt   s    rv   rw   rw     r   rx   c                 <    U =(       a    [        U 5      =(       d    S $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   c                 4    [        [        [        U 5      5      $ r}   r   rt   s    rv   rw   rw     r   rx   )r   r   r   r   r   r   r   r   r   r   r   !_RedisCallbacksRESP3toRESP2Legacyuser_protocollegacy_responsesreturnc                 :   [        [        5      nU(       aO  U c  UR                  [        5        U$ U S;   a  UR                  [        5        U$ UR                  [
        5         U$ U b  U S;   a  UR                  [        5        U$ UR                  [        5        U$ )av  Return the merged callback dict for the given (protocol, legacy)
combination.

``user_protocol`` is the value the user supplied to the client
constructor (``None`` means "not specified"). ``legacy_responses``
defaults to ``True`` and selects today's RESP2-style Python shapes
even when the wire protocol is RESP3.

Callers wrap the returned dict in ``CaseInsensitiveDict``.
)   3)r   _RedisCallbacksupdater   _RedisCallbacksRESP3_RedisCallbacksRESP2r   r   )r   r   	callbackss      rv   get_response_callbacksr     s     04O/DI >?  h&12  12 	  MX$=89  89rx   N)w__doc__typingr   r   r   redis.utilsr   helpersr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   r   r   r   r   r   r   r   str__annotations__r   r   r   r   r   rx   rv   <module>r      s-  4 + * $c c c c c c c c c c c c c c c c c c c c c c c c cJ[	7[ 4e<[ 	C[ ,k:[ /[" ,.?@#[$ $%[& '[( })[* 7+[, -[. $/[0 $1[2 $3[4 G5[6 g7[8 g9[: d;[< =[> W?[@ A[B WC[D E[F gG[H &I[J GK[L (M[N +O[P Q[R WS[T 'U[V W[X wY[Z )[[\ }][^ _[` 'a[b wc[d ge[f g[h }i[j [k[l Jm[n %o[p Gq[r 4s[t Tu[v /w[x (y[z -{[| G}[~ 
[@ JA[B 1C[D GE[F 7G[H <I[J K[L M[N GO[P '(AQ[R S[T gU[V wW[X GY[Z $[[\ W][^ _[` Za[b ,c[d "e[f lg[h Wi[j dk[l &u[|1&(G1 G	1 +-=>1 1 *M:1 /@1 -)IJ1  N!1& 3'1( <)1* 4+1, 4-1. 5/10 ,112 l314 ?516 A718 ;91: ";1< &=1> 3?1@  A1F 5G1H :I1J &K1L ;,.=:*'a1 h'&(G' :	' @' !'  ,.?@!'" #8,14C@
 1-M' V+>+>M +>  +> #+> +>$ ,.AB%+>& /''+>. -)<=/+>0 .-81+>2  3+>4 +5+>6 $7+>8 ,9+>: <;+>< 2=+>> 0?+>@ $A+>B ,C+>D 0E+>F "G+>H 
 I+>J .K+>L 4M+>N 6O+>P EQ+>R BS+>T $U+> T#xS'9"9: +^)>)>M)> &)> )> ,.AB)> /')>&  ')>( )))>* 3+)>, <-)>. 4/)>0 41)>2 *3)>4 55)>6 ,7)>8 l9)>: <;)>< 0=)>> $?)>@ 0A)>B 3C)>D 
 E)>F \G)>H ;<KH*Q)> T#xS'9"9: )b6D&(G6D G.	6D 9>6D .6D )6D$ 1%6D, /@-6D. ,.OP/6D0 -)IJ16D2 .*EF36D4 256D6 376D8 <96D: :;6D< 4=6D> 4?6D@ 2A6DB 5C6DD ,E6DF lG6DH JI6DJ AK6DL >M6DN ;O6DP 8Q6DR &S6DT >U6DV 40.,BDSP0-k6D !4Xc3h-?(?#@ 6rC= 
#xS!
!"rx   