%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/strategies.pyc

�
��4]c	@@s�dZddlmZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
dd	lmZdd
lmZddlm
Z
ddlmZdd
lmZddlmZddl	mZddl	mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZ ddlm!Z!e"e"e"e"e#e"d�Z$ej%j&de#de#�defd��Y�Z'ej(ej%j&de)de#�d efd!��Y��Z*ej(ej%j&d"e)�d#e*fd$��Y��Z+ej(ej%j&de)de)�ej%j&d%e)�d&efd'��Y���Z,d(e-fd)��YZ.d*efd+��YZ/ej(ej0j&d%e)�d,efd-��Y��Z1ej(ej0j&d.d/�ej0j&d.e"�d0e/fd1��Y���Z2ej(ej0j&d.e)�ej0j&d.d2�ej0j&d.d3�ej0j&d.d4�ej0j&d.d5�d6e/ej3fd7��Y������Z4d8e-fd9��YZ5ej0j&d.d:�d;e/fd<��Y�Z6ej(ej0j&d.d=�d>e/fd?��Y��Z7ej(ej0j&d.d@�ej0j&d.e#�dAe/fdB��Y���Z8ej(ej0j&d.dC�dDe/ej3fdE��Y��Z9dF�Z:dS(GsWsqlalchemy.orm.interfaces.LoaderStrategy
   implementations, and related MapperOptions.i(tabsolute_importNi(t
attributes(texc(t
interfaces(tloading(t
properties(tquery(t
unitofwork(tutil(t_DEFER_FOR_STATE(t_SET_DEFERRED_EXPIRED(tLoaderStrategy(tStrategizedProperty(t_state_session(t
InstanceState(t	_none_set(taliasedi(tevent(tinspect(tlog(tsql(tvisitorsc	@s�ttj|jdg��}
g}|o0|j�|rR|jrR|jt�n|j|j	j
kr�|j	j
|j\��|j��fd��n|r�|jtj�n|r�|j
��r�|j��fd��q�nx�|jD]�}||jj|j�kr�|jj|j�r�tj|j|jd|d�d|d|d|
d	|o{|jp{|jtjkd
|d|d|d
|d|p�|jd|j|	�}
x|D]}||
|�q�Wq�q�WdS(Ntdefaultc@stj||j���S(N(torm_utilt_validator_eventstkey(tdesctprop(tfntopts(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt<lambda>Bsc@stj|���S(N(Rtbackref_listeners(RR(tbackreftuselist(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRPstparent_tokenR!tcompare_functiont	useobjectt	extensionttrackparentttypecallablet	callable_tactive_historyt
impl_classtsend_modified_eventstdoc(tlistRtto_listR%R!t
single_parenttappendtsingle_parent_validatorRtparentt
validatorsRttrack_cascade_eventstback_populatestself_and_descendantst_propstgett
class_managert_attr_has_implRtregister_attribute_impltclass_t	directionRt	ONETOMANYtviewonlyR,(RtmapperR$R#R'R(tproxy_propertyR)R*tkwt
attribute_exttlisten_hookstmRthook((R RRR!sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt_register_attribute)sP
				
t
instrumenttdeferredtUninstrumentedColumnLoadercB@s2eZdZdZd�Zdd�Zd�ZRS(s�Represent a non-instrumented MapperProperty.

    The polymorphic_on argument of mapper() often results in this,
    if the argument is against the with_polymorphic selectable.

    tcolumnscC@s,tt|�j||�|jj|_dS(N(tsuperRJt__init__tparent_propertyRK(tselfR2tstrategy_key((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�sc	K@s;x4|jD])}|r&|j|}n|j|�q
WdS(N(RKR0(	ROtcontexttquery_entitytpathtloadopttadaptertcolumn_collectiontkwargstc((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytsetup_query�s
cC@sdS(N((RORQRSRTR@tresultRUt
populators((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytcreate_row_processor�s(RKN(t__name__t
__module__t__doc__t	__slots__RMtNoneRYR\(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRJs
	tColumnLoadercB@s8eZdZdZd�Zd�Zd�Zd�ZRS(s8Provide loading behavior for a :class:`.ColumnProperty`.RKtis_compositecC@sAtt|�j||�|jj|_t|jd�|_dS(Ntcomposite_class(RLRbRMRNRKthasattrRc(ROR2RP((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�scK@skx4|jD])}	|r&|j|	}	n|j|	�q
W|jd}
|rZ|j|
}
n|
||j<dS(Ni(RKR0RN(RORQRRRSRTRURVtmemoized_populatorsRWRXtfetch((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRY�s
c	C@svt|_|jdj}|jjpJ|jdjpJ|jt|j�k}t	|j|dt
d|jd|�dS(NiR$R#R)(tTruetis_class_levelRKttypeRNR)tprimary_keytversion_id_coltsetRGtFalsetcompare_values(ROR@tcoltypeR)((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytinit_class_attribute�s		c
C@s~xw|jD]R}|r&|j|}n|j|t�}	|	r
|dj|j|	f�Pq
q
W|dj|jtf�dS(Ntquicktexpire(RKt_getterRnR0RRh(
RORQRSRTR@RZRUR[tcoltgetter((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\�s(RKRc(R]R^R_R`RMRYRqR\(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRb�s			tquery_expressiontExpressionColumnLoadercB@s,eZd�Zd�Zd�Zd�ZRS(cC@stt|�j||�dS(N(RLRxRM(ROR2RP((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�scK@s�|r�d|jkr�|jdg}	x1|	D])}
|rH|j|
}
n|j|
�q,W|	d}|ry|j|}n|||j<ndS(Nt
expressioni(t
local_optsRKR0RN(RORQRRRSRTRURVRfRWRKRXRg((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRY�s

cC@s�|r�d|jkr�|jdg}xw|D]R}	|rH|j|	}	n|j|	t�}
|
r,|dj|j|
f�Pq,q,W|dj|jtf�ndS(NRyRrRs(RzRKRtRnR0RRh(RORQRSRTR@RZRUR[RKRuRv((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\s
c	C@s<t|_t|j|dtd|jdjjdt�dS(NR$R#itaccepts_scalar_loader(RhRiRGRNRnRKRjRo(ROR@((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRqs	(R]R^RMRYR\Rq(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRx�s			t
do_nothingtDeferredColumnLoadercB@sDeZdZdZd�Zd�Zd�Zd	d�Zd�Z	RS(
sAProvide loading behavior for a deferred :class:`.ColumnProperty`.RKtgroupcC@s\tt|�j||�t|jd�r:td��n|jj|_|jj|_dS(NRds8Deferred loading for composite types not implemented yet(RLR}RMReRNtNotImplementedErrorRKR~(ROR2RP((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM,sc	C@sP|js2|jj}|dj|j|f�n|dj|jtf�dS(NtnewRs(RiRNt_deferred_column_loaderR0RRn(	RORQRSRTR@RZRUR[tset_deferred_for_local_state((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\5s	cC@sEt|_t|j|dtd|jdjjd|jdt�dS(NR$R#iR(texpire_missing(	RhRiRGRNRnRKRjRot_load_for_state(ROR@((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRqEs		c	
	K@s�|r3d|jkr3t|j�j|jj�ss|r^|jr^|jjd|jt�ss|r�|j	|kr�|j
jdtfdtff�j
||||||||	�n&|jr�t||j
<n
t||j
<dS(Ntundefer_pkssundefer_group_%sRIRH(RzRmRKtintersectionR2t_should_undefer_in_wildcardR~R8RnRRNt
_get_strategyRhRYRiR
R	(
RORQRRRSRTRURVRftonly_load_propsRB((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRYQs,			
	c
C@sQ|jstjS|tj@s$tjS|jj}|jr�g|jD]B}t	|t
�rCt	|jt�rC|j|jkrC|j^qC}n|jg}g|D]}||j
kr�|^q�}t|�}|dkrtjdtj|�|jf��n|j|�}	tj|	|jd|d|�dkrJtj|��ntjS(NsfParent instance %s is not bound to a Session; deferred load operation of attribute '%s' cannot proceedR�t
refresh_state(RRt
ATTR_EMPTYtSQL_OKtPASSIVE_NO_RESULTtmanagerR@R~titerate_propertiest
isinstanceRtstrategyR}t
unmodifiedR
Ratorm_exctDetachedInstanceErrorRt	state_strRRt
load_on_identtObjectDeletedErrortATTR_WAS_SET(
ROtstatetpassivetlocalparenttpttoloadtkR~tsessionR((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s0	
	
$(	(RKR~N(
R]R^R_R`RMR\RqRaRYR�(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR}$s				&tLoadDeferredColumnscB@s&eZdZd�Zejd�ZRS(s7serializable loader object used by DeferredColumnLoadercC@s
||_dS(N(R(ROR((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�scC@s?|j}|jj}|j|}|jt}|j||�S(N(RR�R@R7t_strategiesR}R�(ROR�R�RR�RR�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt__call__�s
	

(R]R^R_RMRtPASSIVE_OFFR�(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s	tAbstractRelationshipLoadercB@seZdZdZd�ZRS(s0LoaderStratgies which deal with related objects.R@ttargetR!tentitycC@sYtt|�j||�|jj|_|jj|_|jj|_|jj|_dS(N(RLR�RMRNR@R�R�R!(ROR2RP((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�s
(R@R�R!R�(R]R^R_R`RM(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��stDoNothingLoadercB@seZdZRS(s�Relationship loader that makes no change to the object's state.

    Compared to NoLoader, this loader does not initialize the
    collection/attribute to empty/none; the usual default LazyLoader will
    take effect.

    (R]R^R_(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s	tlazytnoloadtNoLoadercB@s&eZdZdZd�Zd�ZRS(sYProvide loading behavior for a :class:`.RelationshipProperty`
    with "lazy=None".

    cC@s/t|_t|j|dtd|jj�dS(NR$R'(RhRiRGRNtcollection_class(ROR@((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRq�s	c	@s-�fd�}|dj�j|f�dS(Nc@s<�jr+|jj�j�j||�n
d|�j<dS(N(R!R�tget_implRt
initializeRa(R�tdict_trow(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytinvoke_no_load�s	"R�(R0R(	RORQRSRTR@RZRUR[R�((ROsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\�s((R]R^R_R`RqR\(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s	
tselecttraisetraise_on_sqltbaked_selectt
LazyLoadercB@s�eZdZdZd
�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ejd�d��Z
ejd�d��Zd�ZRS(s|Provide loading behavior for a :class:`.RelationshipProperty`
    with "lazy=True", that is loads when first accessed.

    t
_lazywheret_rev_lazywheretuse_gettis_aliased_classt_bind_to_colt_equated_columnst_rev_bind_to_colt_rev_equated_columnst_simple_lazy_clauset
_raise_alwayst
_raise_on_sqlt_bakerycC@s�tt|�j||�|jddk|_|jddk|_t|j�j|_|j	j
}|j�\|_|_
|_|jdt�\|_|_|_|jjd||j�|jo|jo|jjdj|jdtd|jj�|_|jr�x[t|j�D]J}||jjkrx/|jj|D]}|j||j|<qHWqqW|jjd	|�ndS(
NR�R�R�treverse_directions%s lazy loading clause %situse_proxiestequivalentss2%s will use query.get() to optimize instance loads(RLR�RMt
strategy_optsR�R�RR�R�RNt_join_conditiontcreate_lazy_clauseR�R�R�RhR�R�R�tloggertinfoR!t_get_clausetcompareR@t_equivalent_columnsR�R-(ROR2RPtjoin_conditionRuRX((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRMs*$

			cC@sit|_|jjp1|jjtjk	p1|j}t|j|dtd|j	d|jj
d|�dS(NR$R(R'R)(RhRiRNR)R=Rt	MANYTOONER�RGR�R�(ROR@R)((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRq9s	
		c@st|j|j}�g�d�}tj|ii|d6���fd�}tj|ii|d6�}|�fS(NcS@s
t|_dS(N(Rntunique(t	bindparam((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytvisit_bindparamVsR�c@sd|j�kr2�j|j�|jdf�n.|jdkr`�j|jd|jf�ndS(N(t_identifying_keyR0RRatcallabletvalue(R�(tbind_to_coltparams(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�[s

(R�R�Rttraversetcloned_traverse(ROt	criterionR�((R�R�sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt"_memoized_attr__simple_lazy_clauseQs	cC@s|j\}}|dkrGtj|g|D]\}}}|^q+�S|jj}|j�}	tj|	�}
|tj	@r�|tj	N}ni}xv|D]n\}}}|dk	r�|r�|tj
@r�|j||
||�}q�|j||
||�}n|||<q�W||fS(N(
R�Ratsql_utiltadapt_criterion_to_nullRNR2tobjRt
instance_dicttINIT_OKtLOAD_AGAINST_COMMITTEDt#_get_committed_state_attr_by_columnt_get_state_attr_by_column(ROR�R�R�t
param_keysRtidentR�R@toR�R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt_generate_lazy_clausems&&
cC@stjd||f��dS(Ns&'%s' is not available due to lazy='%s'(tsa_exctInvalidRequestError(ROR�R�R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt_invoke_raise_load�scC@s�|jr2|jjr!|js+|jr2tjS|j}d}|tj@rZ|j	sn|tj
@ru|rutjS|jr�|tj
@r�|j||d�nt|�}|s�|tj
@r�tjStjdtj|�|jf��n|j	r�|j|||�}tj|kr$tjStj|kr:tjStj|�rMdS|j�j|j|d|d|�}|dk	r�|S|tj@s�|tj@r�tjSn|j||||�S(NR�sbParent instance %s is not bound to a Session; lazy load operation of attribute '%s' cannot proceedR�tlazy_loaded_from(RRNtload_on_pendingt
_load_pendingt
session_idRR�RaR�R�tNON_PERSISTENT_OKR�R�tNO_RAISER�R
R�R�RR�t_get_ident_for_use_gett	NEVER_SETRt
issupersetRt_identity_lookupR�tRELATED_OBJECT_OKt_emit_lazyload(ROR�R�tpendingtprimary_key_identityR�tinstance((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��sP





		
cC@sm|jj}|tj@r%|j}n	|j}|j}g|jjD]%}||||j|d|�^qDS(NR�(	R�R@RR�R�R�tdictRkR�(ROR�R�R�tinstance_mappertget_attrR�tpk((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s
		ssqlalchemy.ext.bakedcC@s|jdd�S(Ntsizei2(tbakery(ROtbaked((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt_memoized_attr__bakery�sssqlalchemy.orm.strategy_optionsc@s��j�fd���}|jd��j��jjsP|jdt�n�jjdk	r{|j�fd��n�j}|s�|t	j
@r�|jd��n�jr��j�j}|j
�j|�n�jr6�jr�j�|d�n||�j�fd��j|j�j�|�S�jjr[|j�fd��nx^�jjD]P��jtjkrh�jrht�jt�rh|j��fd	��qhqhW�j�|�\��|r�tj t!j"�j#��rdSntj t!j$�j#��rdS�jr:�j�|d�n|j�fd
���fd�}	||�j�fd��j|	�j%�}
�j&r�|
St'|
�}|r�|d
kr�tj(d�j�n|
dSdSdS(Nc@s|j�j�S(N(RR�(R�(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRtcS@s|j�jt�S(N(t_adapt_all_clausest_with_invoke_all_eagersRn(tq((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR	Rtfullc@s|j�j�jj�S(N(tselect_fromR@RNt	secondary(R(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRscS@s
|jt�S(N(t	autoflushRn(R((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRRR�c@s
|j��S(N(t_set_lazyload_from(R(R�(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR-Rc@s|jtj�jj��S(N(torder_byRR.RN(R(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR5sc@s/|j�jj|j�j�j�j��S(N(toptionstLoadtfor_existing_patht
_current_pathR2tlazyloadR(R(trevtstrategy_options(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRDs	c@s
|j��S(N(tfilter(R(tlazy_clause(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRWRc@s�j|j��|_|S(N(tupdatet_params(R(R�(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytset_default_params[s	c@s
|j��S(N(R	(R(R�(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRbRisKMultiple rows returned with uselist=False for lazily-loaded attribute '%s' i()R�tadd_criteriaRNtbake_queriestspoilRhRRaRRtNO_AUTOFLUSHtload_optionst	load_patht_add_lazyload_optionsR�R�R�twith_post_criteriat_load_on_pk_identityRR@R
t_reverse_propertyR=RR�t_use_getR�R�R�R�Rthas_intersectionRRtvaluest
_never_settallR!tlentwarn(RORR�R�R�R�RR�teffective_pathRRZtl((RR�RROR�RsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��sj

						c
@s�|j�|jsPtj|jt�|���}|dj|j|f�n>|jsb|jr��fd�}	|dj|j|	f�ndS(NR�c@s|j|��dS(N(t_reset(R�R�R�(R(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytreset_for_lazy_callable�s	(	RRiRt"_instance_level_callable_processorR9tLoadLazyAttributeR0tpopulate_existingtalways_refresh(
RORQRSRTR@RZRUR[tset_lazy_callableR+((RsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\vs		
(R�R�R�R�R�R�R�R�R�R�R�R�(R]R^R_R`RMRqR�R�R�R�R�RtdependenciesRR�R\(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s.
	*			 		F	�R-cB@s&eZdZd�Zejd�ZRS(s-serializable loader object used by LazyLoadercC@s||_|j|_dS(N(RRP(RORtinitiating_strategy((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�s	cC@sB|j}|jj}|j|}|j|j}|j||�S(N(RR�R@R7R�RPR�(ROR�R�RR�RR�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s
	
(R]R^R_RMRR�R�(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR-�s	t	immediatetImmediateLoadercB@s/eZdZd�Zddd�Zd�ZRS(cC@s|jjd�j|�dS(NR�R�(R�R�((R�R�(RNR�Rq(ROR@((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRq�s		c	K@sdS(N((	RORQR�RSRTRURVtparentmapperRW((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRY�sc	@s-�fd�}|dj�j|f�dS(Nc@s |j�j�j||�dS(N(R�RR8(R�R�R�(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytload_immediate�stdelayed(R0R(	RORQRSRTR@RZRUR[R6((ROsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\�s(N(R]R^R`RqRaRYR\(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR4�s
	tsubquerytSubqueryLoadercB@s�eZdZd�Zd�Zddd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
e
fd��YZd�Zd
�Zd�ZRS(t
join_depthcC@s,tt|�j||�|jj|_dS(N(RLR9RMRNR:(ROR2RP((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�scC@s|jjd�j|�dS(NR�R�(R�R�((R�R�(RNR�Rq(ROR@((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRq�s		cK@s4|jjsdS|jjr/|jjd�n||j}|j|jdd�}	|	dk	rl|	j}
n	|j}
|jjdt	j
j�}||}|j|jd�s
|j
r�|jjr�|jjjnd|jd|j
kr
dSq
|j|j�r
dSn|j|�\}}
}|jjdtf|j�}|j|||
||j�}|jj|
�}i|dtf6|d	6|_|jt�}|j||�\}}}|j|�}|j|�}|j|||||
�}|j||||
�}|j|�}|j |jd|�dS(
NR8tpath_with_polymorphict
subquery_pathtloaderiit
orig_query(R<N(R<N(!Rt_enable_eagerloadst
_yield_pert
_no_yield_perRNR8RRaR�RtPathRegistrytroottcontainsR:Rtlengthtcontains_mapperR@t
_get_leftmostR9t_generate_from_original_querytentity_zeroR�t_attributest_set_enable_single_critRnt_prep_for_joinsR
tadd_columnst_apply_joinst_setup_optionst_setup_outermost_orderbyRm(RORQR�RSRTRURVR5RWtwith_poly_infoteffective_entityt	subq_pathtleftmost_mappert
leftmost_attrtleftmost_relationshipR>t
left_aliasRtto_joint
local_attrtparent_alias((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRY�sZ
		
		

cC@s�|j}tj|d�}|jj|�rW|j|dkrW|j|j}}n||d}}|j}g|D]&}t|dj|j	|j
�^qx}|||fS(Nii(RSRt_class_to_mapperR2tisaRNt
local_columnstgetattrR�t_columntopropertyR(RORStsubq_mapperRTt
leftmost_propt
leftmost_colsRXRU((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRG9s		0c
C@so|j�jd�}|jsg|jttg|jD] }|ddk	r4|d^q4��t�n|j	|�}|j
|�|j}	|	tkr�t|_
nU|	dkr�xFtd�|D��D]+}
t|�j|
j�s�t|_
Pq�q�Wn|jtkr|j|_n|jdkrA|jdkrAd|_n|j�j�}tj||dt�}|S(NR�cs@s|]}|jVqdS(N(ttable(t.0RX((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pys	<genexpr>}stuse_mapper_path(t_clonet	correlateRat	_from_objt_set_select_fromR-Rmtcolumn_descriptionsRnt_adapt_col_listt
_set_entitiestdistinct_target_keyRht	_distinctR�Rkt	_order_byR
t_limitt_offsettwith_labelsR8RtAliasedClass(
ROR>RTRURVtorig_entityRtentttarget_colsRmtttembed_qRW((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRHQs6
	
#

		cC@s:g}t|j��}x{t|�D]m\}\}}|dkrv||ddj}|j|�rm|n|}	n|}	|j|	|jf�q%Wt|�dkr�|}
nAt|dd�}|j	r�|j
}
ntj|j
dt
�}
|jj}g|D]"}
t|
|jj|
j�^q}|||
fS(Niiii����Re(R-tpairst	enumerateR@R\R0RR&RR�R�RRsRhRNR]R^R2R_(RORWRSRXRytiR@Rtprev_mappert	to_appendRZR�t
local_colsRXRY((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRL�s&		,cC@s�t|�}|dkr>t||dd�j|�g}ny|dkr�t||dd�j|�t||dd�j|�g}n*|dkr�g|dd!D]C}t|d�js�tj|d�n
|dj|df^q�}g}	xl|rd|jd�}t|d|d�}
|rE|
j|dd�}
n|
j|�}
|	j	|
�q�Wt||dd�j|	dj
�g|	t||dd�j|�g}nx#|D]}
|j|
dt�}q�W|S(Niiii����tfrom_joinpoint(
R&R^tof_typeRR�RRsR�tpopR0R2tjoinRh(RORRXRWRZRRtltjtitemtmiddletinnertattr((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRN�s0&T	+
cC@s=|j|�}|j|j�}|jr9|j|_n|S(N(t_with_current_patht_conditional_optionst
_with_optionst_populate_existing(RORRSR>RR((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRO�s
	cC@sP|jjrL|jd}|jjtj|jj��}|j|�}n|S(Ni(RNR
Rht_target_adaptertcopy_and_processRR.(RORt	eagerjointeager_order_by((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRP�s
	t_SubqCollectionscB@s8eZdZdZd�Zd�Zd�Zd�ZRS(s�Given a :class:`.Query` used to emit the "subquery load",
        provide a load interface that executes the query at the
        first moment a value is needed.

        cC@s
||_dS(N(tsubq(ROR�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRMscC@s/|jdkr|j�n|jj||�S(N(t_dataRat_loadR8(RORR((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR8s
cC@s/td�tj|jd��D��|_dS(Ncs@s8|].\}}|g|D]}|d^qfVqdS(iN((RdR�tvtvv((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pys	<genexpr> scS@s|dS(Ni((tx((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR!R(R�t	itertoolstgroupbyR�R�(RO((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�scC@s |jdkr|j�ndS(N(R�RaR�(ROR�R�R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR=$sN(	R]R^R_RaR�RMR8R�R=(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�
s			cC@s9|jj|jjjs/tjd|��n||j}|j|j	d�}|dkradS|j|jkstd��|jj
}	|j|j	d�}
|
dkr�|j|�}
|j|j	d|
�n|r�g|	D]}|j|^q�}	n|jr|j||
|	|�n|j||
|	|�dS(NsJ'%s' does not support object population - eager loading cannot be applied.R8slSubquery session doesn't refer to that of our context.  Are there broken context caching schemes being used?tcollections(R2R9Rtimpltsupports_populationR�R�RNR8RRaR�tAssertionErrorR]R�RmRKR!t_create_collection_loadert_create_scalar_loader(RORQRSRTR@RZRUR[R�R~R�RX((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\(s,

	#	c@s����fd����fd�}|dj�j�f�|dj�j|f�|jr�|dj�j�jf�ndS(Nc@sR�jtg�D]}||^q�d�}|j�j�j|||�dS(N((R8ttupleR�Rtset_committed_value(R�R�R�Rut
collection(R�R~RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytload_collection_from_subqWs)c@s&�j|kr"�|||�ndS(N(R(R�R�R�(R�RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt&load_collection_from_subq_existing_row_sR�texistingteager(R0Rtinvoke_all_eagersR=(RORQR�R~R[R�((R�R�R~ROsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�Ts
	c@s����fd����fd�}|dj�j�f�|dj�j|f�|jr�|dj�j�jf�ndS(Nc@s��jtg�D]}||^q�d�}t|�dkrUtjd��n|d}|j�j�j|||�dS(NisLMultiple rows returned with uselist=False for eagerly-loaded attribute '%s' i(N(	R8R�RaR&RR'R�RR�(R�R�R�RuR�tscalar(R�R~RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytload_scalar_from_subqns)
c@s&�j|kr"�|||�ndS(N(R(R�R�R�(R�RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt"load_scalar_from_subq_existing_row{sR�R�R�(R0RR�R=(RORQR�R~R[R�((R�R�R~ROsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�ks

	(R:N(R]R^R`RMRqRaRYRGRHRLRNRORPtobjectR�R\R�R�(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR9�s		[		A	/	4	
		,	tjoinedtJoinedLoadercB@s�eZdZdZd�Zd�Zdded�Zd�Z	d�Z
d�Zd	�Zd
�Z
ed�Zd�Zd
�Zd�Zd�ZRS(scProvide loading behavior for a :class:`.RelationshipProperty`
    using joined eager loading.

    R:t_aliased_class_poolcC@s5tt|�j||�|jj|_g|_dS(N(RLR�RMRNR:R�(ROR2RP((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM�scC@s|jjd�j|�dS(NR�R�(R�R�((R�R�(RNR�Rq(ROR@((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRq�s		c	
K@s�|jjsdS|jjr8|jr8|jjd�n||j}d}
|rc|j||�nt}|tk	r�|j	|||||�\}}}
n�|j
|jd�s�|jr�|j
d|jkr�dSq�|j|j�r�dSn|j||||||||�\}}}
}|j|jdd�}|dk	rP|j}
nd}
||j}tj||j||||
d|
d|jd|�|dk	r�dt|j�kr�tjd	��ndS(
s@Add a left outer join to the statement that's being constructed.Nsjoined collectionR=iR;twith_polymorphicR5tchained_from_outerjoins�Detected unaliased columns when generating joined load.  Make sure to use aliased=True or flat=True when using joined loading with with_polymorphic().(RR?R@R!RARNRat_init_user_defined_eager_procRnt$_setup_query_on_user_defined_adapterRDRR:RERFR@t_generate_row_adapterR8twith_polymorphic_mappersR�Rt_setup_entity_queryRmtsecondary_columnsR�R�(RORQRRRSRTRURVR5R�RWR�tuser_defined_adaptertclausestadd_to_collectionRQ((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRY�s\
!	
	c	C@s2d|jkrtS|jj}|j|jdt�}|tk	rG|S|jd}|d\}}|dk	r�t|t�r�|j	j
|�}ntj|d|j
j�}nf|j|jd�r�|j|jd�}tj|jd|j
j�}n|jjj|j
d�}|j|jd|�|S(Nteager_from_aliast user_defined_eager_row_processori����R�R;(RzRnRSR2R8RRaR�tstrR�taliasR�t
ColumnAdapterR@R�RDRt
ORMAdapterR�Rt_polymorphic_adaptersRm(	RORTRQRSRUR�troot_mapperRRQ((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s2
	cC@s�|j|j|�}|rI|rI|j|�}|j|jd|�n%|rn|}|j|jd|�n|j}|||fS(NR�(t_get_entity_clausesRtwrapRmRtprimary_columns(RORQR�RSRUR�R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�*s

	cC@s�t|j�jr't|j�j}nd}d|f}||jkr\d|j|<}n|j|d|j|<}|t|j�kr�tj	|j
d|dk	r�|jdt�nddtdt�}t|�jj
|jj|�n|j|S(Ntjoinedloader_aciiR�tflatRe(RR�R�t
selectableRaRR&R�RRsR@R�RhRXR0(RORQtalt_selectableRtidxtto_adapt((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt_gen_pooled_aliased_classDs"		c	C@sG|j|jdd�}	|	r*|	j}
n|j|�}
t|
�jd|ftj|
d|j	j
dtdtdt�}|j
dk	s�t�|jjr�t|_n|dk	r�|jjd|jj�n	|jj}|s�t}n|jj|j||||||||f	�|j}
|j|jd|�|||
|fS(	NR;tjoinedloader_ormadapterR�tadapt_requiredtallow_label_resolvetanonymize_labelst	innerjointeager_row_processor(R8RRaR�R�Rt_memoRR�R@R�RhRnt
aliased_classR�RNR!tmulti_row_eager_loadersRzR�tcreate_eager_joinsR0t_create_eager_joinR�Rm(RORQR�RSRTRURVR5R�RQR�R�R�R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�gsB		'		
	c	
C@s	|dkr|j}	n|}	|jo0|jj}
d}||jkr�|
r�|jr�tj|j|j	�}t
|�dkr�tjd��n|r�|j|d}
|d|
}}q�n|dkr�||j	}}n|jj
||�}|r�t|dd�r_t|j�j|	j|j�r5|	n|j�}t|j|j|j�}q�ttj|j|j	dt�|j|j�}n	|j}|jdk	s�t�|p�|p�|dkp�|jj}|r4tj||j|d|p|jjp|ot|tj �d|jd	|j�}n|j!||||�}||j|<|j	|_"|s�x^tj#|jj$�D]D}|	j%j&j'|�r�|r�|j(|}n|j)j*|�q�q�Wn|jj+r|j,|j-j.t/j0|jj+��7_,ndS(
Nis�Can't identify which query entity in which to joined eager load from.   Please use an exact match when specifying the join path.iR�Retunnestedtisoutert
_left_memot_right_memo(1RaR@R�Rt_should_nest_selectableteager_joinstfrom_clauseR�t#find_left_clause_that_matches_givenR�R&R�R�t
setdefaultR^RR�t_entity_for_mapperR\R2R�RRNRRsRhR�RItrepresents_outer_joint_ORMJoinR�RtJoint_splice_nested_inner_jointstop_ont
_find_columnstprimaryjointpersist_selectableRXtcontains_columnRKR�R0R
R�R�R�RR.(RORQRRRSRUR5R�R�R�R�tshould_nest_selectabletquery_entity_keytindexestclausetdefault_towrapttowraptefmtonclausetattach_on_outsideR�Ru((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s�					
		c	C@s�|tkr't|tj�s�t�n�t|tjj�rX|j||j	|||�St|tj�s�|d|kr�tj||j
|dtd|d|dj�SdSn|j||j
|||j�}|dkr/t}|j||j|||j�}|dkr5|tk	s(td��dSnt}|r�|jra|jra|j|�}q�tj|j||jd|jd|j�}n-tj||j
|jd|jd|j�}|j|_|S(Ni����R�R�R�i����s9assertion failed attempting to produce joined eager loads(RnR�RR�R�RR�tFromGroupingR�telementR�R@RatrightR�tleftR�RhR�t_splice_into_centerR�R�(	RORStjoin_objR�R�tsplicingttarget_jointright_spliceR�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�6sV					cC@s�|r|j||�nt}|tk	rl|}|jrT|rT|j|j�}q�|jr�|j}q�n%|j|jd�}|dkr�tS|jj||�r�|StSdS(NR�(	R�RnRUR�R8RRaR@t_result_has_identity_key(RORQRZRURSRTR�t	decorator((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt_create_eager_adapter|s	cC@s�|jj|jjjs/tjd|��n||j}|j|||||�}	|	t	k	r�|j}
t
j|j||||j
|	�}|js�|j||
||�q�|j||
||�n+|jjd�j|||||||�dS(NsJ'%s' does not support object population - eager loading cannot be applied.R�R�(R�R�((R�R�(R2R9RR�R�R�R�RNR�RnRt_instance_processorR@R�R!R�R�R�R\(RORQRSRTR@RZRUR[tour_patht
eager_adapterRt	_instance((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\�s,

	
				c@s����fd�}���fd�}�fd�}|dj|j|f�|dj|j|f��jr�|dj|j|f�ndS(Nc@sftj||��}tj|d�}|�j|�f<�|�}|dk	rb|j|�ndS(Ntappend_without_event(Rtinit_state_collectionRtUniqueAppenderRaR0(R�R�R�R�tresult_listtinst(RRQR(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt#load_collection_from_joined_new_row�sc@s�|�f�jkr+�j|�f}n:tj||��}tj|d�}|�j|�f<�|�}|dk	r�|j|�ndS(NR(RRRRRaR0(R�R�R�RR�R(RRQR(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt(load_collection_from_joined_existing_row�sc@s�|�dS(N((R�R�R�(R(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt load_collection_from_joined_exec�sR�R�R�(R0RR�(RORQRRR[RRR	((RRQRsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s


	
c@s���fd�}���fd�}�fd�}|dj�j|f�|dj�j|f�|jr�|dj�j|f�ndS(Nc@s�|�|�<dS(N((R�R�R�(RR(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytload_scalar_from_joined_new_row�sc@sM�|�}�|kr?||�k	rItjd��qIn
||�<dS(NsLMultiple rows returned with uselist=False for eagerly-loaded attribute '%s' (RR'(R�R�R�R�(RRRO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt$load_scalar_from_joined_existing_row�sc@s�|�dS(N((R�R�R�(R(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytload_scalar_from_joined_execsR�R�R�(R0RR�(RORQRRR[R
RR((RRROsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s
	
(R:R�N(R]R^R_R`RMRqRaRnRYR�R�R�R�R�R�R�R\R�R�(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR��s"		U	0		#	@	�E		'	,tselectintSelectInLoadercB@s�eZdZejdddd	d
ddg�Zd
Zd�Zd�Zd�Z	d�Z
d�Zej
d�d��Zd�Zej
d�d��Zd�Zd�ZRS(R:t	omit_joint
_parent_aliast_query_infot_fallback_query_infoR�t	queryinfotload_only_childtload_with_jointin_exprtpk_colstzero_idxtchild_lookup_colsi�cC@stt|�j||�|jj|_|jjtjk}|jjdk	ra|jj|_nX|jj
d�}|r�|j|_n1|jj
dj|jdtd|jj�|_|jr�|r�|j�|_|j�|_q
|j�|_n|j�|_dS(NR�R�iR�R�(R�R�((R�R�(RLRRMRNR:R=RR�RRaR�R�R2R�R�R�RhR�t_init_for_omit_join_m2oRt_init_for_joinRt_init_for_omit_join(ROR2RPtis_m2ot
lazyloader((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRM+s&				c@s�t�jjj���j��fd�t��D��g�jjD]}|�krH�|^qH}}t|�dkr�t	j
|�}t}n|d}t}�j
tt|||d�S(Nc3@s>|]4}�jjj|d�D]}|�|fVqqdS(N((R2R�R8(RdR�tequiv(tpk_to_fkRO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pys	<genexpr>Lsii(R�RNR�tlocal_remote_pairsRR-R2RkR&Rttuple_RnRht
query_infoRa(RORuRtfk_colsRR((R ROsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRGs3	
cC@s�|jj}t|�dkr6tj|�}t}n|d}t}|jjd�}g|D]}|j	|^q_}|j
tt||||�S(NiiR�R�(R�R�((R�R�(R@RkR&RR"RnRhRNR�R�R#(RORRRRR�tlookup_cols((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR]s	
 cC@s�t|jj�|_t|j�}g|jjD]}|j|�^q1}t|�dkrvtj	|�}t
}n|d}t}|jt
t|||d�S(Nii(RR2R<RRRkt_adapt_elementR&RR"RnRhR#Ra(ROtpa_inspRuRRR((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRms(	
cC@s|jjd�j|�dS(NR�R�(R�R�((R�R�(RNR�Rq(ROR@((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRq{s		ssqlalchemy.ext.bakedcC@s|jdd�S(NR�i2(R�(ROR�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�sc
C@sZ|jj|jjjs/tjd|��n|jjpDt	j
j|}t	j|d|j�shdSt
jj|||j�r�dS||j}	||j}
|	j|jdd�}|dk	r�|j}n	|j}|	j|jd�s.|jr|
jd|jkr+dSq.|
j|j�r.dSnt
jj|||j|j|j|�dS(NsJ'%s' does not support object population - eager loading cannot be applied.i����R;R=i(R2R9RR�R�R�R�RRRRBRCt_entity_isaRtPostLoadtpath_existsRNR8RRaR�RDR:RERFR@tcallable_for_patht_load_for_path(
RORQRSRTR@RZRUR[t
selectin_pathtpath_w_proptselectin_path_w_propRQRR((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR\�s<


			c@s<|r�j|krdS�j}|jr�tjt�}�j�x�|D]\�}	�j�t���fd�|j	D��}
t
j|
kr��j}Pnd|
krJ||
j��|	f�qJqJWn|jsg|D](\�}	�jd��j|	f^q�}n|j�|j�|js�t��}|jr�g�D]}|j|�^qH�|j���g�D]}|j|�^qy�q�n�j��fd���}
|js�|
j�fd��n%�j�|
j���fd��|jr!|
j�fd��n|
j��fd��|j}|
j|j|�j�|jry|
jd��n�jjr|js��jj�|jr�g�D]}|j|�^q��n|
j�fd	��q�fd
�}|
j|�n|jr"�j|||
|�n�j|||
|�dS(Nc3@s-|]#}�j��|dtj�VqdS(R�N(R�RtPASSIVE_NO_FETCH(Rdtlk(R@R�t
state_dict(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pys	<genexpr>�sic@s|jtjd����S(NR�(RtBundle(R�(RRR(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�sc@s
|j��S(N(R(R(RR(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR�Rc@s.|j��jt��jj�j���S(N(RR�R^RNRR�(R(RRtpaRO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR	sc@s%|j�jtjddt���S(Ntprimary_keyst	expanding(Rtin_RR�Rh(R(R(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR
	sc@s.|j�jtjddt���j��S(NR5R6(RR7RR�RhR
(R(RR(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR	s!cS@s
|j�S(N(R.(R((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR	Rc@s
|j��S(N(R
(R(R�(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR(	Rc@s5|jd}|j|jjtj�jj���S(Ni(RhR
R�R�RR.RN(RR�(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRP+	s
	( RRRR�tdefaultdictR-R2R�R�RRR�RRaR0RRRRR�R&R�RRRRR�RNR�R
t_load_via_childt_load_via_parent(ROR�RQRStstatest	load_onlyRRR#t
our_statest	overwritet
related_identtinspRuRR>telemRP((	R�RRRR@R4RROR�R2sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR,�sr					
	5				"(								%	cC@s|j}t|�}x�|r|d|j!}||j}d�||j�jdg|D]}|jrs|dn|^qZ�D�}	x�|D]x}|	|}
xe||D]Y\}}}
|
r�|j|kr�q�n|j|j�j|||s�|
n|
g�q�Wq�WqWdS(NicS@si|]\}}||�qS(((RdR�R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pys
<dictcomp>G	s	R5(	R!tsortedt
_chunksizeR�R�RRR�R�(ROR=R#RRQR!tour_keystchunkRtdatatrelated_objR�R�R>((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR9=	s"		
3

cC@sx|j}|rdnd}xV|rs|d|j!}||j}g|D]+\}}	}
}|jrm|dn|^qH}d�tj||j�jd|�d��D�}
x�|D]�\}}	}
}|r�|j|
kr�q�n|
j	||�}|rM|rMt
|�dkr'tjd|�n|	j
|j�j|	|
|d�q�|	j
|j�j|	|
|�q�WqWdS(NicS@s6i|],\}}g|D]}|d^q|�qS(i((RdR�R�R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pys
<dictcomp>i	s	R5cS@s|dS(Ni((R�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRl	RisLMultiple rows returned with uselist=False for eagerly-loaded attribute '%s' ((R!RaRCRR�R�R�R�RR8R&RR'R�R�(ROR=R#RRQR!t
_empty_resultRERR�R2R>R5RFR�((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR:[	s0		
5
(R:RRRRR�(R]R^R`R�t
namedtupleR#RCRMRRRRqRR1RR\R,R9R:(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyRs2						1�	c
@s{�fd���fd�}�fd�}tj|d|dtdtdt�tj|d|dtdtdt�dS(	Nc@sz|dk	rv|j�jkrv|jtj|��}|rv||k	rvtjdtj|�|j	�f��qvn|S(NssInstance %s is already associated with an instance of %s via its %s attribute, and is only allowed a single parent.(
RaRt	hasparentRtinstance_stateR�R�Rtinstance_strR<(R�R�toldvaluet	initiatorRJ(R(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt	_do_check�	s%c@s�||d|�S(N(Ra(R�R�RN(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR0�	sc@s�||||�S(N((R�R�RMRN(RO(sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pytset_�	sR0trawtretvalR)Rm(RtlistenRh(RRR0RP((RORsL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyR1�	s(;R_t
__future__RR�R�RRRR�RRRRRRRtbaseR	R
RRR�R
R�RRRRR�RRRR�RRaRnRGtColumnPropertytstrategy_forRJtclass_loggerRhRbRxR}R�R�R�tRelationshipPropertyR�R�t
MemoizedSlotsR�R-R4R9R�RR1(((sL/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/strategies.pyt<module>	s�M#B;�

+��������u

Zerion Mini Shell 1.0