Ñò Š„[Jc@sådZddklZddklZlZlZddklZl Z ddkl Z hZ de fd„ƒYZdefd „ƒYZd efd „ƒYZeƒd efd „ƒYZeƒdefd„ƒYZeƒdS(srStrategies for creating new instances of Engine types. These are semi-private implementation classes which provide the underlying behavior for the "strategy" keyword argument available on :func:`~sqlalchemy.engine.create_engine`. Current available options are ``plain``, ``threadlocal``, and ``mock``. New strategies can be added via new ``EngineStrategy`` classes. iÿÿÿÿ(t attrgetter(tbaset threadlocalturl(tutiltexc(tpooltEngineStrategycBs eZdZd„Zd„ZRS(sÂAn adaptor that processes input arguements and produces an Engine. Provides a ``create`` method that receives input arguments and produces an instance of base.Engine or a subclass. cCs||_|t|iti|iƒD]*}||jo|i|ƒ||vs (Rtmake_urlt get_dialectRtget_cls_kwargstpopRtget_func_kwargsRtcreate_connect_argstupdatetgetattrtpoollibt QueuePooltgett setdefaultR't isinstancet_DBProxytget_pooltget_engine_clst TypeErrortjoint __class__R(R t name_or_urlRtut dialect_clst dialect_argsR+t dbapi_argstdialectRRRR t pool_argst translatettkt engineclasst engine_args((RRRs@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR,sl              cCs tƒ‚dS(N(R (R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR'|scCs tƒ‚dS(N(R (R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR;s(RRRRR'R;(((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR)s P tPlainEngineStrategycBs)eZdZd„Zd„Zd„ZRS(s*Strategy for configuring a regular Engine.cCsti|dƒdS(Ntplain(RR (R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR …scCstS(N(tFalse(R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR'ˆscCstiS(N(RtEngine(R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR;‹s(RRRR R'R;(((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyRJ‚s  tThreadLocalEngineStrategycBs)eZdZd„Zd„Zd„ZRS(s<Strategy for configuring an Engine with thredlocal behavior.cCsti|dƒdS(NR(RR (R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR “scCstS(N(tTrue(R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR'–scCstiS(N(RtTLEngine(R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR;™s(RRRR R'R;(((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyRNs  tMockEngineStrategycBs9eZdZd„Zd„Zdeifd„ƒYZRS(s»Strategy for configuring an Engine-like object with mocked execution. Produces a single mock Connectable object which dispatches statement execution to a passed-in function. cCsti|dƒdS(Ntmock(RR (R ((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR ¦sc Ks{ti|ƒ}|iƒ}h}x;ti|ƒD]*}||jo|i|ƒ||¿sRUcCs |iiS((RUR(RW((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyRXÁscKs|S(N((R R((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pytcontextual_connectÃscKs|ii||d||S(Ntengine(RUtcompiler(R t statementt parametersR((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyR[Æs cKs0t|d<|ii|i||i|ƒdS(Nt checkfirst(RLRDtschemageneratorttraverse(R tentityR((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyRÊs cKs0t|d<|ii|i||i|ƒdS(NR^(RLRDt schemadropperR`(R RaR((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pytdropÎs cOs tƒ‚dS(N(R (R tobjectt multiparamstparams((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyRVÒs( RRR tpropertyRZRRDRRYR[RRcRV(((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyRSºs     (RRRR RRt ConnectableRS(((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyRQŸs  N(RtoperatorRtsqlalchemy.engineRRRt sqlalchemyRRRR4R RdRRRJRNRQ(((s@/usr/lib/python2.6/site-packages/sqlalchemy/engine/strategies.pyt sY  6