Ñò ‰„[Jc@s?ddkiZddklZlZlZlZddkl Z l Z l Z l Z ddkl ZddklZdgZdefd„ƒYZd„Zx'eiD]Zeeeeeƒƒq¥Wd „Zx$dD]ZeeeeeƒƒqÕWd„Zx$dD]ZeeeeeƒƒqWde fd„ƒYZdS(iÿÿÿÿN(tScopedRegistrytto_listtget_cls_kwargst deprecated(t EXT_CONTINUEtMapperExtensiont class_mappertobject_session(texc(tSessiont ScopedSessioncBsVeZdZdd„Zd„Zd„Zedƒd„ƒZd„Z dd„Z RS( sŸProvides thread-local management of Sessions. Usage:: Session = scoped_session(sessionmaker(autoflush=True)) ... use session normally. cCs.||_t||ƒ|_t|ƒ|_dS(N(tsession_factoryRtregistryt _ScopedExtt extension(tselfR t scopefunc((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt__init__s cKs|oz|idtƒ}|dj oJ|iiƒotidƒ‚q}|i|}|ii|ƒ|Sq‹|i|Sn |iƒSdS(NtscopesEScoped session is already present; no new arguments may be specified.( tpoptFalsetNoneR thastsa_exctInvalidRequestErrorR tset(RtkwargsRtsess((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt__call__#s cCs5|iiƒo|iƒiƒn|iiƒdS(N(R Rtclosetclear(R((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pytremove2ssŸSession.mapper is deprecated. Please see http://www.sqlalchemy.org/trac/wiki/UsageRecipes/SessionAwareMapper for information on how to replicate its behavior.cs“ddkl}t‡fd†ttƒDƒƒ}tˆidgƒƒˆd<}|o|i|ii |ƒn|i|iƒ||ˆŽS(s~return a mapper() function which associates this ScopedSession with the Mapper. DEPRECATED. iÿÿÿÿ(tmapperc3s9x2|]+}|ˆjo|ˆi|ƒfVqqWdS(N(R(t.0targ(R(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pys Cs R( tsqlalchemy.ormR tdictRR RtgettappendRt configure(RtargsRR textension_argsR((Rs:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR 7s  cKs|ii|dS(s8reconfigure the sessionmaker used by this ScopedSession.N(R R'(RR((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR'Nscs&dtf‡‡fd†ƒY}|ƒS(s÷return a class property which produces a `Query` object against the class when called. e.g.:: Session = scoped_session(sessionmaker()) class MyClass(object): query = Session.query_property() # after mappers are defined result = MyClass.query.filter(MyClass.name=='foo').all() Produces instances of the session's configured query class by default. To override and use a custom implementation, provide a ``query_cls`` callable. The callable will be invoked with the class's mapper as a positional argument and a session keyword argument. There is no limit to the number of query properties placed on a class. tquerycseZ‡‡fd†ZRS(csjyLt|ƒ}|o5ˆoˆ|dˆiƒƒSˆiƒi|ƒSnWntij odSXdS(Ntsession(RR R*torm_exctUnmappedClassErrorR(tstinstancetownerR (t query_clsR(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt__get__ks (t__name__t __module__R2((RR1(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR*js(tobject(RR1R*((RR1s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pytquery_propertySs N( R3R4t__doc__RRRRRR R'R6(((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR s     cs‡fd†}|S(Ncst|iƒˆƒ||ŽS(N(tgetattrR (RR(R(tname(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pytdozs((R9R:((R9s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt instrumentyscs+‡fd†}‡fd†}t||ƒS(Ncst|iƒˆ|ƒdS(N(tsetattrR (Rtattr(R9(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyRscst|iƒˆƒS(N(R8R (R(R9(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR%ƒs(tproperty(R9RR%((R9s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pytmakeprop€stbindtdirtytdeletedtnewt identity_mapt is_activecs‡fd†}t|ƒS(Ncsttˆƒ||ŽS(N(R8R (tclsR(R(R9(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR:Šs(t classmethod(R9R:((R9s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pytclslevel‰st close_allRt identity_keyR cBsVeZeed„Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z RS(cCs(||_||_||_t|_dS(N(tcontexttvalidatet save_on_inittTruetset_kwargs_on_init(RRKRLRM((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR‘s   cCst|idtƒS(NRL(R RKRN(R((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt validating—scKst|i|S(N(R RK(RR((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR'šscsvdtf‡‡fd†ƒY}dˆijo|ƒˆ_nˆio)ˆitijoˆi|ƒˆ_ndS(NR*cs5eZ‡‡fd†Z‡‡fd†Zd„ZRS(cstˆiiƒiˆƒ|ƒS(N(R8RKR R*(R.tkey(tclass_R(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt __getattr__ŸscsˆiiƒiˆƒS(N(RKR R*(R.(RRR(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR¡scSs|S(N((RR/RF((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR2£s(R3R4RSRR2((RRR(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR*žs(R5t__dict__R*RORt_default__init__(RR RRR*((RRRs:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pytinstrument_classs cs‡‡fd†}|S(Ncsrxk|iƒD]]\}}ˆio7ˆi|dtdtƒptid|ƒ‚qZnt|||ƒq WdS(Ntresolve_synonymstraiseerrsInvalid __init__ argument: '%s'(titemsRLt get_propertyRRt ArgumentErrorR<(RRRQtvalue(R text(s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR­s   ((R]R R((R R]s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyRU¬scCsQ|ioC|iddƒ}|djo|iiƒ}n|i|ƒntS(Nt _sa_session(RMRRRKR t_save_without_cascadeR(RR RRtoldinitR/R(RR+((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt init_instance·s   cCs(t|ƒ}|o|i|ƒntS(N(RtexpungeR(RR RRR`R/R(RR((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt init_failed¿s cCst|dƒoJt|idƒo7|iidj o|ii|_qZt|dƒnt|dƒot|dƒndS(NRt_oldinitR*(thasattrRRdRtdelattr(RR RR((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyt dispose_classÅs #( R3R4RRNRRPR'RVRURaRcRg(((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyR s     (R@RARBsnewRDRE(RIsobject_sessionRJ(tsqlalchemy.exceptionst exceptionsRtsqlalchemy.utilRRRRR#RRRRRR,tsqlalchemy.orm.sessionR t__all__R5R R;tpublic_methodstmethR<R?tpropRHR (((s:/usr/lib/python2.6/site-packages/sqlalchemy/orm/scoping.pyts&"" f