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@@sGdZddlmZddlmZddlmZmZddlmZ	ddlm
Z
ddlmZmZdd	l
mZmZdd
lmZddlZejƒZd„Zejd
ƒed„ƒZd„Zdddd„Zdddd„Zddddd„Zd„Zd„Zd„Zd„Z 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_importi(tutili(t
attributestexc(tstrategy_options(t	_none_sett	state_str(t_SET_DEFERRED_EXPIREDt_DEFER_FOR_STATE(RNc	#@stƒ|_g|jD]}|j^q‰tˆk}t|jƒdkoY|jdj}|rƒ|rqt}qƒ‡fd†}nyNttg|jD]}|j	|||ƒ^q–Œƒ\}}	|sÞt
jd|	ƒ}
nxïtrÏi|_
|jr|j|jƒ}|s$Pq$n|jƒ}|rV|d}g|D]}
||
ƒ^q;}n8g|D]+}
|
g|D]}||
ƒ^qmƒ^q]}|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@std„t|ˆƒDƒƒS(Ncs@s!|]\}}||ƒVqdS(N((t.0txtfn((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pys	<genexpr>.s(ttupletzip(trow(t
filter_fns(sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt	filter_fn-stresultN(t
_new_runidtrunidt	_entitiesRtidtlentsupports_single_entitytlistR
t
row_processorRtlightweight_named_tupletTruetpartialst
_yield_pert	fetchmanytfetchalltunique_listt	Exceptiontclosetraise_from_cause(tquerytcursortcontexttenttfilteredt
single_entityRtquery_entitytprocesstlabelstkeyed_tupletfetchtprocRtrowsterr((RsK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt	instancessH	4			
"5
		
ssqlalchemy.orm.queryc	C@s×|j}|r|jƒn|j}z¡t|_t|jƒdk}|rºt|jd|jƒr«g|D]6}|jt	j
|ƒt	j|ƒd|diƒ^ql}q»t|ƒ}ngt
|jƒD]$\}	}
t|
|jƒrÊ|	^qÊ}g}g|jD]}|j^q}
tjd|
ƒ}x|D]…}t|ƒ}x]|D]U}	||	dk	rK|jt	j
||	ƒt	j||	ƒd|diƒ||	<qKqKW|j||ƒƒq2Wt|ƒSWd||_XdS(s:Merge a result into this :class:`.Query` object's Session.iitloadt
_recursiveRN(tsessiont
_autoflusht	autoflushtFalseRRt
isinstancet
_MapperEntityt_mergeRtinstance_statet
instance_dictRt	enumeratet_label_nameRRtNonetappendtiter(tquerylibR$titeratorR3R5R7R)tinstanceRtitetmapped_entitiesR'tkeysR-Rtnewrow((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytmerge_resultYs8	
		C

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_maptgetR@RR<texpiredtSQL_OKtPASSIVE_NO_RESULTtRELATED_OBJECT_OKt
_load_expiredtorm_exctObjectDeletedErrort_remove_newly_deleted(R5tkeytpassiveREtstate((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytget_from_identity„s	

c	C@sí|dk	r|d}nd}|dkrD|jƒ}|jƒn|jƒ}|dk	rD|jƒ}|j\}}	d|krÜtgt|j|ƒD]%\}
}|dkr™|	|
j^q™ƒ}t	j
||ƒ}n|j|tt
ƒ}||_tgt||jƒD]\}
}|	|j|
f^qƒ}||_n|dk	rht}|j|ƒ}n*|jdk	rŒt}|j|_nt
}|jdt|ƒd|d|d|ƒd|_y|jƒSWntjk
rèdSXdS(s.Load the given identity key from the database.itpopulate_existingt
version_checktonly_load_propst
refresh_stateN(R@t_clonet_get_conditiont_mapper_zerot_get_clausetsetR
tprimary_keyRVtsql_utiltadapt_criterion_to_nullt
_adapt_clauseRR8t
_criteriontdictt_paramst
with_lockmodet_for_update_argt_get_optionstboolt	_order_bytoneRSt
NoResultFound(R$RVR]tlockmodeR\tidenttqtmapperRat_get_paramstcoltvaluetnonestid_valRctparamsR[((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt
load_on_ident¡sN

>	8		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_setupsR\tcolumn_collectiontmemoized_populators(
t_iterate_polymorphic_propertiest_polymorphic_propertiesRbRRVtsetupR@tpolymorphic_ontcolumnsRA(R&RtR*tpathtadapterR}twith_polymorphicR\tpolymorphic_discriminatortkwtpoly_propertiestquick_populatorsRwtpd((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt_setup_entity_queryàs:	
c	@s%ˆj‰
ˆr2gˆ
D]}	ˆj|	^q‰
nˆj‰tjtƒ‰ˆj}
ˆ	dk	r|
j‡fd†ˆ	Dƒƒ}
n|j	ˆj
dtƒ}xÿ|
D]÷}||kr{||}
|
tkrèˆdj
|j|jfƒq—|
tkrˆdj
|jtfƒq—ˆr'ˆj|
}
n|j|
tƒ}|r\ˆdj
|j|fƒq—|jˆ|ˆ|ˆˆƒq |jˆ|ˆ|ˆˆƒq Wˆj‰
ˆ
rÒˆjjjrɈjj|n|‰nˆjj‰ˆjpíˆj‰tˆjjjƒ‰tˆjjj ƒ‰t
j!‰t
j"‰ˆjj#‰ˆj$‰ˆj%‰ˆrzˆj‰ˆdkr€ˆj&ˆƒ‰q€nd‰ˆj'r•tj(‰n	tj‰‡‡‡‡‡‡‡‡‡‡	‡
‡‡‡
‡‡‡‡‡‡‡fd†}ˆj)r!|r!ˆr!t*|ˆˆ|||ˆƒ}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(Rt(sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pys	<genexpr>'sR|tnewtexpiretquickc@sÁˆrBˆ}|jƒ}ˆ|ƒ}|jˆk}t}t}nˆtgˆ
D]}||^qOƒf}ˆj|ƒ}|dk	rãˆ|ƒ}ˆ|ƒ}|jˆk}|}t}ˆrR|rRtˆ|||ˆƒqRnoˆ|dƒr÷dSt}t}t}ˆjj	ƒ}ˆ|ƒ}ˆ|ƒ}||_
ˆ|_ˆj||ƒ|s^ˆr2|rˆ
rˆ
|_
ˆ|_ntˆ|||||ˆˆƒ|r½|rɈrÉ|jjj|ˆƒn"ˆrë|jjj|ˆˆ	ƒnˆsú|jr/ˆrˆ	r|j|ˆ	ƒq,|j|ˆƒq/q½n‹|j}	|ˆjk}|sa|	saˆdr½tˆ|||||	ˆƒ}
|r½ˆr§|jjj|ˆ|
ƒn|j||
ƒq½n|S(Niteager(tobjRRR8RRMR@t_validate_version_idt
class_managertnew_instanceRVt
session_idt_add_unpresenttload_optionst	load_patht_populate_fulltmanagertdispatchR3trefreshtmodifiedt_committ_commit_alltunloadedRt_populate_partial(RRXREtdict_tisnewtcurrentloadtloaded_instancetcolumntidentitykeyR¢tto_load(R…R&tidentity_classR=R<tis_not_primary_keytload_evtRšRtR\tpk_colsRZt
populatorstpropagate_optionstrefresh_evttrefresh_identity_keyR]RR—tsession_identity_mapR[(sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt	_instancehst	&
			
	N(+RcRƒt_identity_classtcollectionstdefaultdictRt	_prop_setR@tintersectionRMRRRRARVt_deferred_column_loaderRR8t_gettertcreate_row_processorR°R$t
_current_pathR„R5RLRZtalways_refreshRmR•RR3RžR<R=thash_keyR[Rt_identity_key_from_statetallow_partial_pkst
issupersettpolymorphic_mapt_decorate_polymorphic_switch(RtR&RR„R…R\R]R‡t_polymorphic_fromtctpropsRŠtpropRvtgetterR´((R…R&R«R=R<R¬R­RšRtR\R®RZR¯R°R±R²R]RR—R³R[sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt_instance_processor
sl	#		


	(							KlcC@sF|r|j|_x(|dD]\}}	|	|ƒ||<qW|rŠxx|dD]5\}}
|j|dƒ|
rN|jj|ƒqNqNWn4x1|dD]%\}}
|
r•|jj|ƒq•q•Wx(|dD]\}}||||ƒqÉWxV|dD]\}}||||ƒqôWn+x(|dD]\}}||||ƒq"WdS(NR‘RRtdelayedtexisting(RtpopR@texpired_attributestadd(R&RRXR¤R¥R§RZR¯RVRÉtset_callablet	populator((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyR›Þs$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(NRÌR‘RRRËR’(RRÍR@RÎRÏ(R&RRXR¤R¥R¢R¯RªRVRÑRÉRÐ((sK/home/tvault/.virtenv/lib/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_colR@Rƒt_get_state_attr_by_columnRStStaleDataErrorR(RtRXR¤RR…RÒ((sK/home/tvault/.virtenv/lib/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ÃtKeyErrortAssertionErrorR@RÊ(t
discriminatort
sub_mapper(R…R&RtR„R(sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytconfigure_subclass_mapper<s
	c@s=|ˆ}|dk	r3ˆ|}|r3||ƒSnˆ|ƒS(N(R@(RR×R´(tinstance_fntpolymorphic_instancesR‚(sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytpolymorphic_instanceOs


(R@R‚RƒRtPopulateDict(	RÚR&RtRR„R‡R…RÙRÜ((R…R&RÚRtR„RÛR‚RsK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyRÄ/s			c

C@sÑ|j}|s+tjdt|ƒƒ‚nt|jƒ}t}|jr¿|jr¿|j	||ƒ}|dk	r¿t|j|ƒj
tj|ƒjdƒƒj|ƒdd|d|ƒ}q¿n|tkr©|rÝ|j}ncg|jD]}|j|j^qç}	|jj|	ƒr1tjdt|ƒƒ‚n|j|ƒ}tj|ƒrY|jshtj|ƒr‚tjdt|ƒƒ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*R\R]s_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( R5RStDetachedInstanceErrorRRmRVR8tinheritstconcretet_optimized_get_statementR@R{R$toptionsRtLoadtundefertfrom_statementRct_columntopropertyRÎR¹tsa_exctInvalidRequestErrorRÀRtissubsetRÁRÂRtwarn_limitedRT(
RtRXtattribute_namesR5thas_keyRt	statementtidentity_keyRvtpk_attrs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pytload_scalar_attributesYsR	#

("t__doc__t
__future__RtRRRRStsqlRdRRRtbaseRRRèR¶tcounterRR2tdependenciesRRKRYR@R{RŒRÊR›R£R”RÄRñ(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/loading.pyt<module>s4	;*	@+Í		!		*