FCddlmZdZdZ ddlmZdS#e$r)eeYdSwxYw))utilc6tjfd}|S)zDecorator, memoize a function in a connection.info stash. Only applicable to functions which take no arguments other than a connection. The memo will be stored in ``connection.info[key]``. c|} |jS#t$r|||x|j<}|cYSwxYw)N)connectinfoKeyError)fnself connectionvalkeys /srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/sqlalchemy/engine/util.py decoratedz%connection_memoize..decoratedsg''))  ?3' '   )+D*)=)= =JOC 3JJJ s $"A A )r decorator)r rs` rconnection_memoizer s2 ^^ c$d}tS)Ncx|s|r|gSgSt|dkrn|d}t|ttfr3|r,t |ddrt |dds|S|gSt |dr|gS|ggSt |ddrt |dds|S|gS)aGiven arguments from the calling form \*multiparams, \**params, return a list of bind parameter structures, usually a list of dictionaries. In the case of 'raw' execution which accepts positional parameters, it may be a list of tuples or lists. __iter__stripkeys)len isinstancelisttuplehasattr) multiparamsparamszeros r_distill_paramsz$py_fallback.._distill_paramss % x    " "q>D$u ..  "tAw 33 "$DGW55 " K!6Mv&& v x{1~z22 %7A<< %#"#}$r)localsr"s r py_fallbackr%s)%)%)%V 88Orrr$N) rrr%sqlalchemy.cutilsr" ImportErrorglobalsupdaterrr,s&,,,^$11111111$$$ GII[[]]######$s*AA