ó ĂĚ4]c@saddlmZd„Zd„ZyddlmZWn$ek r\eƒjeƒƒnXdS(i(tutilcstj‡fd†ƒ}|S(sË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]``. csN|jƒ}y|jˆSWn,tk rI|||ƒ|jˆ<}|SXdS(N(tconnecttinfotKeyError(tfntselft connectiontval(tkey(sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/engine/util.pyt decorateds   (Rt decorator(RR ((RsI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/engine/util.pytconnection_memoize s cCsd„}tƒS(NcSsŕ|s|r|gSgSnÂt|ƒdkrŞ|d}t|ttfƒr‡| syt|ddƒr}t|ddƒ r}|S|gSqÜt|dƒr|gS|ggSn2t|ddƒrŐt|ddƒ rŐ|S|gSdS(sGiven 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. iit__iter__tstriptkeysN(tlent isinstancetlistttuplethasattr(t multiparamstparamstzero((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/engine/util.pyt_distill_paramss&    (tlocals(R((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/engine/util.pyt py_fallbacks +i˙˙˙˙(RN( tRR Rtsqlalchemy.cutilsRt ImportErrortglobalstupdate(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/engine/util.pyts   /