b@ddlZddlZddlZddlmZmZddlmZmZdedeedfdeefdZ d Z d Z d Z d Z d ZddZdZdZdZy)N)ListTuple)KeysTKeyTkeysargs.returnc t|t|ttfr|g}n t |}|r|j ||S#t $r|g}Y#wxYwN)iter isinstancebytesstrlist TypeErrorextend)rrs 8/usr/lib/python3/dist-packages/redis/commands/helpers.py list_or_argsr s\  T  dUCL )6D:D  D K vs0A AAcZt|tr|jddn|}|dk(ry|S)zAReturn the decoded binary string, or a string, depending on type.utf-8replacenullN)r rdecode)xrs r nativestrrs,(21e(<)$!AF{ HcF||S|Dcgc] }t|c}Scc}w)z9Given a list of binaries, return the stringified version.)r)robjs rdelistr "s$y&' (sIcN (( (sc4g}||S|D]} |jt||S#t$rH |jt|n)#t$r|jt |YnwxYwYrt $r|jdYwxYw)z,Optimistically parse the response to a list.N)appendint ValueErrorfloatrr)responseresitems r parse_to_listr))s C    JJs4y !  J , , 5;' , 9T?+ ,  JJt  s8+ BAB#A63B5A66B;BBcvi}tdt|dD]z}t||tr!|dj t ||7t||dztrt ||dzg|d<c t ||dz|||<||S#ttf$r||dz|||<YwxYw)NrzChild iterators) rangelenr rr"parse_list_to_dictr%rr$)r&r'is rr/r/=s C 1c(mQ ' 3 hqk4 ( ! " ) )*z random_string..cs$23 f,,-s-/)joinr-)lengths r random_stringr@_s& 777 "null". * In dictionaries, keys are _not_ quoted. :param value: The parameter value to be turned into a string. :return: string r[,]{c3BK|]\}}|dt|yw):N)stringify_param_value)r<rIrCs rr=z(stringify_param_value..s&Y41as!$9!$<#=>Ys}) r rrDrtupler>maprRdictitems)values rrRrRs%E""  ED%= )388C 5u=>?qAA E4 CHHY5;;=YYZZ\]]5zr) )rFr8r:typingrr redis.typingrrrrr r)r/r4r@rDrJrRrrr]sh $uE$)$4d" )( &&r