
    h                         d dl Z d dlZd dlZd dlmZmZ d dlZd dlmZm	Z	 dedee	df   dee	   fdZ
d	 Zd
 Zd Zd ZddZd Zd Zy)    N)ListTuple)KeysTKeyTkeysargs.returnc                     	 t        |        t        | t        t        f      r| g} nt	        |       } |r| j                  |       | S # t
        $ r | g} Y #w xY wN)iter
isinstancebytesstrlist	TypeErrorextend)r   r   s     x/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/redis/commands/helpers.pylist_or_argsr   
   s\    	T
 dUCL)6D:D DK	  vs   0A AAc                 Z    t        | t              r| j                  dd      n| }|dk(  ry|S )zAReturn the decoded binary string, or a string, depending on type.utf-8replacenullN)r   r   decode)xrs     r   	nativestrr      s,    (21e(<)$!AF{H    c                 F    | | S | D cg c]  }t        |       c}S c c}w )z9Given a list of binaries, return the stringified version.)r   )r   objs     r   delistr    #   s$    y&'(sIcN(((s   c                    g }h d}| |S | D ]q  }||j                  d       	 t        |      }t        |t              r$|j                         |v r|j                  |       W	 |j                  t        |             s |S # t        $ r |j                  d       Y w xY w# t        $ r? 	 |j                  t        |             n # t        $ r |j                  |       Y nw xY wY w xY w)z,Optimistically parse the response to a list.>   	-infinitynaninfinityN)	appendr   r   r   r   lowerint
ValueErrorfloat)responseresspecial_valuesitemitem_strs        r   parse_to_listr/   *   s    
C5N
 )<JJt	 H
 h$)9^)KJJx )

3t9%)* J  	JJt	  ))JJuT{+! )JJx())sG   B%B#B B #	C+-CC+C%"C+$C%%C+*C+c                    i }t        dt        |       d      D ]  }t        | |   t              r[|d   j	                  t        | |                	 t        | |dz      t              r#|d   j	                  t        | |dz                   qt        | |dz      t              rt        | |dz            g|d<   	 t        | |dz            || |   <    |S # t        $ r Y w xY w# t        t        f$ r | |dz      || |   <   Y w xY w)Nr      zChild iterators   )
rangelenr   r   r%   parse_list_to_dict
IndexErrorr)   r   r(   )r*   r+   is      r   r5   r5   K   s   
C1c(mQ' 3hqk4(!"))*<Xa[*IJhq1uot4)*112DXaRSe_2UV Q.&8!a%&I%JC!"3#(!a%#9HQK 3 J   z* 3#+AE?HQK 3s$   9C7C!	CC!D Dc                 D    dj                  d t        |       D              S )z3
    Returns a random N character long string.
     c              3   b   K   | ]'  }t        j                  t        j                         ) y wr   )randomchoicestringascii_lowercase).0r   s     r   	<genexpr>z random_string.<locals>.<genexpr>c   s$      23f,,-s   -/)joinr3   )lengths    r   random_stringrC   _   s&     77 7<V}  r   c                     t        j                   |       }| j                         D ];  }t        |t              s||   ||j	                  d      <   |j                  |       = |S )z3Decode the keys of the given dictionary with utf-8.r   )copyr   r   r   r   pop)r   newobjks      r   decode_dict_keysrI   h   sW    YYs^FXXZ a(.q	F188G$%JJqM Mr   c                 \   t        | t        j                        s$t        | t        j                  j                        r%| j                  j
                  j                  d      S t        | t        j                  j                        r%| j                  j
                  j                  d      S y )Nprotocol)
r   redisRedisasyncioconnection_poolconnection_kwargsgetclusterAbstractRedisClusternodes_manager)clients    r   get_protocol_versionrV   r   sw    &%++&*VU]]=P=P*Q%%77;;JGG	FEMM>>	?##5599*EE 
@r   )
   )rE   r;   r=   typingr   r   rL   redis.typingr   r   r   r   r    r/   r5   rC   rI   rV    r   r   <module>r[      sc         $u E$)$4 d ")B(Fr   