Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
ó
‹EYc@sdZddlmZmZmZddlmZddlmZmZmZ	m
Z
mZmZm
Z
ddlmZeje
jjddƒd	e
jfd
„ƒYƒƒZdejfd„ƒYZd
efd„ƒYZdeefd„ƒYZd„Zdefd„ƒYZdS(s‚Dynamic collection API.

Dynamic collections act like Query() objects for read operations and support
basic add/delete mutation.

i(tlogtutiltexc(t	operatorsi(t
attributestobject_sessionRt
strategiest
object_mapperRt
properties(tQuerytlazytdynamict
DynaLoadercBseZd„ZRS(cCst|_|js+tjd|jƒ‚ntj||dtdtdtd|jj	d|jj
d|jjd|jjƒdS(	NstOn relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.t	useobjecttuselistt
impl_classt
target_mappertorder_bytquery_classtbackref(
tTruetis_class_levelRRtInvalidRequestErrortparent_propertyRt_register_attributetDynamicAttributeImpltmapperRRtback_populates(tselfR((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytinit_class_attributes		(t__name__t
__module__R(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRsRcBseZeZeZeZeZdd„Z	e
jd„Zde
j
d„Zejd„ƒZejd„ƒZdd„Zdd„Zd„Ze
jded„Zdd	„Zd
„Zd„Ze
jd„Ze
j
d
„Ze
jd„Ze
jd„Ze
jd„Ze
jd„ZRS(c	Kswtt|ƒj|||||||_||_|sFt|_n-t|jƒkrd||_nt	|ƒ|_dS(N(
tsuperRt__init__RRt
AppenderQueryRt
AppenderMixintmrotmixin_user_query(	Rtclass_tkeyttypecallabletdispatchRRRtkw((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR!5s		cCs7|tj@s#|j|tjƒjS|j||ƒSdS(N(RtSQL_OKt_get_collection_historytPASSIVE_NO_INITIALIZEtadded_itemsR(Rtstatetdict_tpassive((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytgetCs
cCs=|tj@s |j||ƒjS|j||ƒ}|jSdS(N(RR+R,R.tadded_plus_unchanged(RR/R0t	user_dataR1thistory((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytget_collectionJs

	
cCstj|tjƒS(N(RtEventt	OP_APPEND(R((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt
_append_tokenSscCstj|tjƒS(N(RR7t	OP_REMOVE(R((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt
_remove_tokenWscCs˜|dkr!|j||ƒ}n|j|ƒx/|jjD]!}||||pV|jƒ}q;W|jr”|dk	r”|jtj	|ƒ|t
ƒndS(N(tNonet_modified_eventt	add_addedR)tappendR9ttrackparenttsethasparentRtinstance_stateR(RR/R0tvaluet	initiatortcollection_historytfn((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytfire_append_event[s
cCs–|dkr!|j||ƒ}n|j|ƒ|jrb|dk	rb|jtj|ƒ|tƒnx-|jj	D]}||||pŠ|j
ƒqoWdS(N(R<R=tadd_removedR@RARRBtFalseR)tremoveR;(RR/R0RCRDRERF((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytfire_remove_evenths
cCs_|j|jkr.t||ƒ|j|j<n|j||tjƒt||j<|j|jS(N(R'tcommitted_statetCollectionHistoryR=Rt	NEVER_SETR(RR/R0((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR=us	

cCsI|r|j|jkrdS|r2|dkr2dS|j|||ƒdS(N(tparent_tokenR<t
_set_iterable(RR/R0RCRDR1t	check_oldtpop((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytsetƒs
c
Cst|ƒ}|jr3tj|j||ƒƒ}n|j||ƒ}|jsZ|j}n|j|jƒ}tj}|j|ƒ}	||ƒj	|	ƒ}
|j	|	ƒ}x9|D]1}||
kr¯|j
|||dd|ƒq¯q¯Wx*|D]"}|j|||dd|ƒqëWdS(NRE(
tlistthas_identityRtIdentitySetR2R=R.tuniontintersectiont
differenceRGR<RK(
RR/R0titerabletadaptert
new_valuestold_collectionREtidsett	constantst	additionstremovalstmember((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRPs&			

cOs
tƒ‚dS(N(tNotImplementedError(Rtargstkwargs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytdelete§scCstdƒ‚dS(Ns7Dynamic attributes don't support collection population.(Rc(RR/R0RC((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytset_committed_valueªscCs|j||ƒ}|jƒS(N(R,t
as_history(RR/R0R1tc((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytget_history®scCs;|j||ƒ}g|jD]}tj|ƒ|f^qS(N(R,t	all_itemsRRB(RR/R0R1Ritx((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytget_all_pending²scCse|j|jkr%|j|j}nt||ƒ}|jr]|tj@r]t||d|ƒS|SdS(Ntapply_to(R'RLRMRURtINIT_OK(RR/R1Ri((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR,¼scCs)||k	r%|j||||ƒndS(N(RG(RR/R0RCRDR1((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR?ÇscCs)||k	r%|j||||ƒndS(N(RK(RR/R0RCRDR1((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRJÌscCs |j||||d|ƒdS(NR1(RJ(RR/R0RCRDR1((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRRÑsN( RRRtuses_objectsRItaccepts_scalar_loadertsupports_populationt
collectionR<R!RtPASSIVE_OFFR2R-R6Rtmemoized_propertyR9R;RGRKR=RSRPRfRgRjRmR,R?RJRR(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR/s0
				R#cBsteZd
Zd„Zd„Zeed„ƒZd„Zd„Zd„Z	d
d„Z
d„Zd„Zd	„Z
RS(cCs‘tt|ƒj|jdƒ|jƒ|_}||_t|ƒ}|j	|jj
}|j|dtƒ|_
|jjr|jj|_ndS(Ntalias_secondary(R R#R!RR<tobjtinstancetattrRt_propsR't_with_parentRIt
_criterionRt	_order_by(RRyR/RxRtprop((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR!Ùs	cCsgt|jƒ}|dk	rI|jrI|jrI|j|krI|jƒntj|jƒs_dS|SdS(N(RRxR<t	autoflushtflushtorm_utilRU(Rtsess((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytsessionçs
cCsdS(N(R<(tsRl((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt<lambda>ðscCsW|j}|dkr@t|jjtj|jƒtjƒj	ƒSt|j
|ƒƒSdS(N(RƒR<titerRyR,RRBRxR-R.t_clone(RR‚((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt__iter__òs	cCsZ|j}|dkr@|jjtj|jƒtjƒj|ƒS|j	|ƒj
|ƒSdS(N(RƒR<RyR,RRBRxR-tindexedR‡t__getitem__(RtindexR‚((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRŠûs		cCsW|j}|dkr@t|jjtj|jƒtjƒj	ƒS|j
|ƒjƒSdS(N(RƒR<tlenRyR,RRBRxR-R.R‡tcount(RR‚((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRs	cCs³|j}|dkr[t|ƒ}|dkr[tjdtj|ƒ|jjfƒ‚q[n|j	r‚|j	|jj
d|ƒ}n|j|jj
ƒ}|j|_|j
|_
|S(NsŒParent instance %s is not bound to a Session, and no contextual session is established; lazy load operation of attribute '%s' cannot proceedRƒ(RxR<Rtorm_exctDetachedInstanceErrorRtinstance_strRyR'RRtqueryR|R}(RR‚RxR‘((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR‡
s	%	cCsFx?|D]7}|jjtj|jƒtj|jƒ|dƒqWdS(N(RyR?RRBRxt
instance_dictR<(Rtiteratortitem((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pytextend%s
	cCs5|jjtj|jƒtj|jƒ|dƒdS(N(RyR?RRBRxR’R<(RR”((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR?+s	cCs5|jjtj|jƒtj|jƒ|dƒdS(N(RyRJRRBRxR’R<(RR”((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRJ0s	N(RRR<RR!RƒtpropertyRˆRŠRR‡R•R?RJ(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR#Ös											R"cBseZdZRS(sBA dynamic query that supports basic collection storage operations.(RRt__doc__(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR"6scCs*d|j}t|t|fi|d6ƒS(sAReturn a new class with AppenderQuery functionality layered over.tAppenderR(RttypeR#(tclstname((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR%:s
RMcBs\eZdZdd„Zed„ƒZed„ƒZd„Zd„Z	d„Z
d„ZRS(	sDOverrides AttributeHistory to receive append/remove events directly.cCsŽ|rTt||ƒjtƒ}tj|ƒ|_|j|_|j|_t|_	n6tjƒ|_tjƒ|_tjƒ|_t|_	dS(N(
R"RRIRtOrderedIdentitySettunchanged_itemsR.t
deleted_itemsRt_reconcile_collection(RRyR/Rntcoll((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR!CscCst|jj|jƒƒS(N(RTR.RWR(R((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR3PscCs%t|jj|jƒj|jƒƒS(N(RTR.RWRRž(R((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRkTscCsŠ|jrH|jj|jƒ}|jj|jƒ}|jj|ƒ}n|j|j|j}}}tjt|ƒt|ƒt|ƒƒS(N(	RŸR.RYRRžRXRtHistoryRT(Rtaddedtdeletedt	unchanged((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRhYs			cCst|jƒ|S(N(RTR.(RR‹((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR‰hscCs|jj|ƒdS(N(R.tadd(RRC((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR>kscCs6||jkr"|jj|ƒn|jj|ƒdS(N(R.RJRžR¥(RRC((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRHnsN(RRR—R<R!R–R3RkRhR‰R>RH(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRM@s
			N(R—tRRRtsqlRRRRRRRŽRR‘R	tclass_loggertRelationshipPropertytstrategy_fortAbstractRelationshipLoaderRt
AttributeImplRtobjectR#R"R%RM(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt<module>
s4§`