o z¾nhu ã@sRddlmZdd„Zdd„Zz ddlmZWdSey(eƒ eƒ¡YdSw) é)Úutilcstj‡fdd„ƒ}|S)zËDecorator, 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]``. cs@| ¡}z|jˆWSty|||ƒ|jˆ<}|YSw)N)ÚconnectÚinfoÚKeyError)ÚfnÚselfÚ connectionÚval©Úkey©úA/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/util.pyÚ decorateds  þz%connection_memoize..decorated)rÚ decorator)r rr r r Úconnection_memoize srcCsdd„}tƒS)NcSsœ|s |r|gSgSt|ƒdkr;|d}t|ttfƒr/|r*t|ddƒr,t|ddƒs,|S|gSt|dƒr7|gS|ggSt|ddƒrKt|ddƒsK|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__ÚstripÚkeys)ÚlenÚ isinstanceÚlistÚtupleÚhasattr)Ú multiparamsÚparamsÚzeror r r Ú_distill_paramss.  ÿ þ ý ÿz$py_fallback.._distill_params)Úlocals©rr r r Ú py_fallbacks+r!rr N) Úrrr!Úsqlalchemy.cutilsrÚ ImportErrorÚglobalsÚupdater r r r Ús / ÿ