B ÃÌ4]u ã@sTddlmZdd„Zdd„ZyddlmZWn"ek rNeƒ eƒ¡YnXdS) é)Ú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@| ¡}y |jˆStk r:|||ƒ|jˆ<}|SXdS)N)ZconnectÚinfoÚKeyError)ÚfnÚselfZ connectionÚval)Úkey©úI/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/engine/util.pyÚ decorateds  z%connection_memoize..decorated)rZ decorator)rr r )rr Úconnection_memoize s r cCsdd„}tƒS)NcSs¦|s|r|gSgSnŽt|ƒdkr||d}t|ttfƒrb|rVt|ddƒrZt|ddƒsZ|S|gSq¢t|dƒrr|gS|ggSn&t|ddƒrœt|ddƒsœ|S|gSdS)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ÚkeysN)ÚlenÚ isinstanceÚlistÚtupleÚhasattr)Z multiparamsZparamsZzeror r r Ú_distill_paramss&     z$py_fallback.._distill_params)Úlocals)rr r r Ú py_fallbacks+rr)rN) Úrr rZsqlalchemy.cutilsrÚ ImportErrorÚglobalsÚupdater r r r Ús /