%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/227033/root/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/
Upload File :
Create Path :
Current File : //proc/227033/root/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyc

�
��4]c@shdZddlmZddlmZddlmZddlmZddlmZddlmZddlm	Z	dd	lm
Zdd
lm
Z
ddlmZddlmZdd	lm
Z
ejejjd
d�de	jfd��Y��Zdejfd��YZdefd��YZdee
fd��YZd�Zdefd��YZdS(s�Dynamic collection API.

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

i(t
attributes(texc(t
interfaces(t
object_mapper(tobject_session(t
properties(t
strategies(tutil(tQueryi(tlogtlazytdynamict
DynaLoadercBseZd�ZRS(c
Cs�t|_|js+tjd|j��n5|jjtjtj	fkr`t
jd|j�ntj
|j|dtdtd|jjd|jjd|jj�dS(NstOn relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.s�On relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.  This warning will be an exception in a future release.t	useobjectt
impl_classt
target_mappertorder_bytquery_class(tTruetis_class_leveltuselistRtInvalidRequestErrortparent_propertyt	directionRt	ONETOMANYt
MANYTOMANYRtwarnRt_register_attributetDynamicAttributeImpltmapperRR(tselfR((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytinit_class_attribute s&			(t__name__t
__module__R(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRsRcBseZeZeZeZeZeZdd�Z
ejd�Z
dejd�Zejd��Zejd��Zdd�Zdd�Zd�Zdejdeed�Zd	�Zd
�Zejd�Zejd�Zejd
�Zejd�Zejd�Zejd�ZRS(c	Kswtt|�j|||||�||_||_|sFt|_n-t|j�krd||_nt	|�|_dS(N(
tsuperRt__init__RRt
AppenderQueryRt
AppenderMixintmrotmixin_user_query(	Rtclass_tkeyttypecallabletdispatchRRRtkw((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR#Es		cCs7|tj@s#|j|tj�jS|j||�SdS(N(RtSQL_OKt_get_collection_historytPASSIVE_NO_INITIALIZEtadded_itemsR(Rtstatetdict_tpassive((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytget\s
cCs=|tj@s |j||�jS|j||�}|jSdS(N(RR-R.R0tadded_plus_unchanged(RR1R2t	user_dataR3thistory((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytget_collectionds
cCstj|tj�S(N(RtEventt	OP_APPEND(R((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt
_append_tokenqscCstj|tj�S(N(RR9t	OP_REMOVE(R((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt
_remove_tokenuscCs�|dkr!|j||�}n|j|�x/|jjD]!}||||pV|j�}q;W|jr�|dk	r�|jtj	|�|t
�ndS(N(tNonet_modified_eventt	add_addedR+tappendR;ttrackparenttsethasparentRtinstance_stateR(RR1R2tvaluet	initiatortcollection_historytfn((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytfire_append_eventys
cCs�|dkr!|j||�}n|j|�|jrb|dk	rb|jtj|�|t�nx-|jj	D]}||||p�|j
�qoWdS(N(R>R?tadd_removedRBRCRRDtFalseR+tremoveR=(RR1R2RERFRGRH((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytfire_remove_event�s
cCs_|j|jkr.t||�|j|j<n|j||tj�t||j<|j|jS(N(R)tcommitted_statetCollectionHistoryR?Rt	NEVER_SETR(RR1R2((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR?�s

c	CsM|r|j|jkrdS|r2|dkr2dS|}	t|	�}
|jrktj|j||��}n|j||�}|js�|j}n|j	|j�}tj}
|j
|
�}|
|
�j|�}|j|�}x9|
D]1}||kr�|j|||dd|�q�q�Wx*|D]"}|j
|||dd|�q#WdS(NRG(tparent_tokenR>tlistthas_identityRtIdentitySetR4R?R0tuniontintersectiont
differenceRIRM(RR1R2RERFR3t	check_oldtpopt_adapttiterablet
new_valuestold_collectionRGtidsett	constantst	additionstremovalstmember((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytset�s@			

cOs
t��dS(N(tNotImplementedError(Rtargstkwargs((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytdelete�scCstd��dS(Ns7Dynamic attributes don't support collection population.(Rd(RR1R2RE((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytset_committed_value�scCs|j||�}|j�S(N(R.t
as_history(RR1R2R3tc((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytget_history�scCs;|j||�}g|jD]}tj|�|f^qS(N(R.t	all_itemsRRD(RR1R2R3Rjtx((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytget_all_pending�scCse|j|jkr%|j|j}nt||�}|jr]|tj@r]t||d|�S|SdS(Ntapply_to(R)RNRORSRtINIT_OK(RR1R3Rj((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR.�scCs)||k	r%|j||||�ndS(N(RI(RR1R2RERFR3((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRA�scCs)||k	r%|j||||�ndS(N(RM(RR1R2RERFR3((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRL�scCs |j||||d|�dS(NR3(RL(RR1R2RERFR3((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRYsN( R R!Rtuses_objectsRKtdefault_accepts_scalar_loadertsupports_populationt
collectionRR>R#RtPASSIVE_OFFR4R/R8Rtmemoized_propertyR;R=RIRMR?RcRgRhRkRnR.RARLRY(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR>s6

	-		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
}|jdk	r�|jj
|jf|_n|j|dt�|_|jjr�|jj|_ndS(Ntalias_secondary(R"R%R#RR>tobjtinstancetattrRt_propsR)t	secondaryRt
selectablet	_from_objt_with_parentRKt
_criterionRt	_order_by(RRzR1RyRtprop((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR#	s	cCsgt|j�}|dk	rI|jrI|jrI|j|krI|j�ntj|j�s_dS|SdS(N(RRyR>t	autoflushtflushtorm_utilRS(Rtsess((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytsessions		
cCsdS(N(R>(tsRm((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt<lambda>-tcCsW|j}|dkr@t|jjtj|j�tj�j	�St|j
|��SdS(N(R�R>titerRzR.RRDRyR/R0t_clone(RR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt__iter__/s		cCsZ|j}|dkr@|jjtj|j�tj�j|�S|j	|�j
|�SdS(N(R�R>RzR.RRDRyR/tindexedR�t__getitem__(RtindexR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR�;s		cCsW|j}|dkr@t|jjtj|j�tj�j	�S|j
|�j�SdS(N(R�R>tlenRzR.RRDRyR/R0R�tcount(RR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR�Es		cCs�|j}|dkr[t|�}|dkr[tjdtj|�|jjf��q[n|j	r�|j	|jj
d|�}n|j|jj
�}|j|_|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�(RyR>Rtorm_exctDetachedInstanceErrorR�tinstance_strRzR)RRtqueryR�R~R�(RR�RyR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR�Qs	%	cCsFx?|D]7}|jjtj|j�tj|j�|d�qWdS(N(RzRARRDRyt
instance_dictR>(Rtiteratortitem((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pytextendks
	cCs5|jjtj|j�tj|j�|d�dS(N(RzRARRDRyR�R>(RR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRAts
	cCs5|jjtj|j�tj|j�|d�dS(N(RzRLRRDRyR�R>(RR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRL|s
	N(R R!R>RR#R�tpropertyR�R�R�R�R�RARL(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR%s				
				R$cBseZdZRS(sBA dynamic query that supports basic collection storage operations.(R R!t__doc__(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR$�scCs*d|j}t|t|fi|d6�S(sAReturn a new class with AppenderQuery functionality layered over.tAppenderR(R ttypeR%(tclstname((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR'�s
ROcBs\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$R�RKRtOrderedIdentitySettunchanged_itemsR0t
deleted_itemsRt_reconcile_collection(RRzR1Rotcoll((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR#�scCst|jj|j��S(N(RRR0RUR�(R((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR5�scCs%t|jj|j�j|j��S(N(RRR0RUR�R�(R((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRl�scCs�|jrH|jj|j�}|jj|j�}|jj|�}n|j|j|j}}}tjt|�t|�t|��S(N(	R�R0RWR�R�RVRtHistoryRR(Rtaddedtdeletedt	unchanged((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRi�s	cCst|j�|S(N(RRR0(RR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR��scCs|jj|�dS(N(R0tadd(RRE((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyR@�scCs6||jkr"|jj|�n|jj|�dS(N(R0RLR�R�(RRE((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRJ�sN(R R!R�R>R#R�R5RlRiR�R@RJ(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyRO�s
	
		N(R�R�RRR�RRRRRRR�R�RR	tclass_loggertRelationshipPropertytstrategy_fortAbstractRelationshipLoaderRt
AttributeImplRtobjectR%R$R'RO(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/dynamic.pyt<module>
s(�	

Zerion Mini Shell 1.0