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    
idna / lib / python2.7 / site-packages / sqlalchemy / orm / unitofwork.pyc
Size: Mime:
ó
‹EYc@sVdZddlmZmZddlmZddlmZmZmZddlZd„Z	d	e
fd
„ƒYZde
fd„ƒYZd
efd„ƒYZ
de
fd„ƒYZdeefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdS(sïThe internals for the unit of work system.

The session's flush() process passes objects to a contextual object
here, which assembles flush tasks based on mappers and their properties,
organizes them in order of dependency, and executes.

i(tutiltevent(ttopologicali(t
attributestpersistenceRiÿÿÿÿNcs—|j‰‡fd†}‡fd†}‡fd†}tj|d|dtdtƒtj|d|dtdtƒtj|d|dtdtƒd	S(
s\Establish event listeners on object attributes which handle
    cascade-on-set/append.

    cs¥|dkrdS|j}|r¡|jr8|jdƒn|jjjˆ}tj|ƒ}|j	j
r¡|js~ˆ|jkr¡|j
|ƒr¡|j|ƒq¡n|S(Nscollection append(tNonetsessiont_warn_on_eventst_flush_warningtmanagertmappert_propsRtinstance_statet_cascadetsave_updatetcascade_backrefstkeyt_contains_statet_save_or_update_state(tstatetitemt	initiatortsesstpropt
item_state(R(sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytappends		cs­|dkrdS|j}|r©|jjjˆ}|jrZ|j|jrPdndƒntj	|ƒ}|j
jr©||jkr©|jj
|ƒr©|j|ƒq©ndS(Nscollection removesrelated attribute delete(RRR	R
RRRtuselistRRR
t
delete_orphant_newt
_is_orphantexpunge(RRRRRR(R(sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytremove1s		
cs-||kr|S|j}|r)|jr8|jdƒn|jjjˆ}|dk	r­tj|ƒ}|j	j
r­|jsŠˆ|jkr­|j
|ƒr­|j|ƒq­n|dk	r)|tjk	r)|tjk	r)|j	jr)tj|ƒ}||jkr&|jj|ƒr&|j|ƒq&q)n|S(Nsrelated attribute set(RRRR	R
RRRRR
RRRRRt	NEVER_SETtPASSIVE_NO_RESULTRRRR(RtnewvaluetoldvalueRRRtnewvalue_statetoldvalue_state(R(sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytset_Gs,		RtrawtretvalRtsetN(RRtlistentTrue(t
descriptorRRRR&((RsN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyttrack_cascade_eventss	 tUOWTransactioncBsÅeZd„Zed„ƒZd„Zd„Zd„Zej	d„Z
d„Zd„Ze
e
e
ddd„Zd	„Zd
„Zejd„ƒZd„Zd
„Zd„Zd„Zd„ZRS(cCsv||_i|_tjtƒ|_tjtƒ|_i|_i|_tƒ|_	i|_
tjd„ƒ|_dS(NcSstƒtƒfS(N(R)(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt<lambda>˜s(RRRtdefaultdictR)tdepstmapperstpresort_actionstpostsort_actionstdependencieststatestpost_update_states(tselfR((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt__init__ms					cCs
t|jƒS(N(tboolR6(R8((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pythas_workšscCs||jko|j|dS(sWreturn true if the given state is marked as deleted
        within this uowtransaction.i(R6(R8R((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt
is_deletedžscCs6||jkr|j|S|ƒ|j|<}|SdS(N(R(R8Rt	callable_tret((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytmemo¤scCs(|j|d}|tf|j|<dS(s;remove pending actions for a state from the uowtransaction.iN(R6R+(R8Rtisdelete((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytremove_state_actions«sc	Cs.d||f}||jkrÁ|j|\}}}|tj@r*|tj@r*|j|j}|j||jtjtjBƒ}|rŸ|jrŸ|j	ƒ}n|}|||f|j|<q*ni|j|j}|j||j|tjBƒ}|r|jr|j	ƒ}n|}|||f|j|<|S(sOfacade to attributes.get_state_history(), including
        caching of results.thistory(
RtSQL_OKR	timpltget_historytdicttPASSIVE_OFFtLOAD_AGAINST_COMMITTEDtuses_objectstas_state(	R8RRtpassivethashkeyRBt
state_historytcached_passiveRD((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytget_attribute_history²s,


cCs|tf|jkS(N(R+R3(R8t	processor((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pythas_depÜscCs8||f}||jkr4t||ƒ|j|<ndS(N(R3t
Preprocess(R8RPt
fromparentR((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytregister_preprocessorßscCsã|jj|ƒsR|jrN|dk	rNtjdtj|ƒ||fƒntS||j	kr¶|j
j}||jkrŒ|j
|ƒn|j|j|ƒ||f|j	|<n)|rß|sÉ|rß|tf|j	|<ntS(NsJObject of type %s not in session, %s operation along '%s' will not proceed(RRtdeletedRRtwarntorm_utiltstate_class_strtFalseR6R	R
R2t_per_mapper_flush_actionstaddR+(R8RR@tlistonlyt
cancel_deletet	operationRR
((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytregister_objectäs	cCs@|jjj}|j|\}}|j|ƒ|j|ƒdS(N(R	R
tbase_mapperR7R[tupdate(R8Rtpost_update_colsR
R6tcols((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytissue_post_updateûs
cCs˜t||jƒ}t||jƒ}|jj||fƒx|jD]}|j|ƒqDWx6|jD]+}|jrzqen|j	}|j|ƒqeWdS(N(
t
SaveUpdateAllR`t	DeleteAllR5R[t_dependency_processorstper_property_preprocessorst
relationshipstviewonlyt_dependency_processor(R8R
tsavestdeletestdepR((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRZs		cCstjd„ƒS(sreturn a dynamic mapping of (Mapper, DependencyProcessor) to
        True or False, indicating if the DependencyProcessor operates
        on objects of that Mapper.

        The result is stored in the dictionary persistently once
        calculated.

        cSs(|djj|djƒ|djkS(Nii(RtgetRR(ttup((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR/s(RtPopulateDict(R8((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt_mapper_for_deps
cCs6|j}g|D]"}||jj|fr|^qS(smFilter the given list of InstanceStates to those relevant to the
        given DependencyProcessor.

        (RrR	R
(R8RnR6tmapper_for_depts((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytfilter_states_for_deps	ccsZ||f}xG|jjD]9}x0|j|D]!}|j||kr-|Vq-q-WqWdS(N(R`tself_and_descendantsR2R6(R8R
R@R\tchecktupR((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytstates_for_mapper_hierarchy%s
csëxRtrTt}x5tˆjjƒƒD]}|jˆƒr%t}q%q%W|sPqqWtjˆjtˆj	jƒƒƒˆ_
}|r³t‡fd†|Dƒƒ}xtˆjƒD]ú}d|ksí|dj
sí|dj
sí|j|ƒrˆjj|ƒq²|d|krVˆjj|ƒx‰||dD] }ˆjj||dfƒq/Wq²|d|kr²ˆjj|ƒx3||dD] }ˆjj|d|fƒq…Wq²q²Wntgˆj	jƒD]}|j
sÆ|^qƃj|ƒS(s}Generate the full, unsorted collection of PostSortRecs as
        well as dependency pairs for this UOWTransaction.

        c3s*|] }|t|jˆƒƒfVqdS(N(R)tper_state_flush_actions(t.0trec(R8(sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pys	<genexpr>EsiiN(R+RYtlistR3tvaluestexecuteRtfind_cyclesR5R4tcyclesRFRtdisabledt
issupersetRR[R)t
difference(R8R>tactionR€tconverttedgeRnta((R8sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt_generate_actions,s<	

!(cCs’|jƒ}|jraxvtj|j|ƒD]/}x&|rY|jƒ}|j||ƒq4Wq+Wn-x*tj|j|ƒD]}|j|ƒqwWdS(N(	RˆR€Rtsort_as_subsetsR5tpoptexecute_aggregatetsortR~(R8R4R&tnR{((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR~_s
		
		
cCs€|js
dSt|jƒ}td„|jjƒDƒƒ}|j|ƒ}|rc|jj|ƒn|r||jj|ƒndS(sémark processed objects as clean / deleted after a successful
        flush().

        this method is called within the flush() method after the
        execute() method has succeeded and the transaction has been committed.

        Ncss'|]\}\}}|r|VqdS(N((RzRtR@R\((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pys	<genexpr>„s(R6R)titemsRƒRt_remove_newly_deletedt_register_newly_persistent(R8R6tisdeltother((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytfinalize_flush_changesws	N(t__name__t
__module__R9tpropertyR;R<R?RARtPASSIVE_NO_INITIALIZERORQRTRYRR_RdRZRtmemoized_propertyRrRuRxRˆR~R“(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR.ls&	-			)							3	tIterateMappersMixincBseZd„ZRS(cs@ˆjr/t‡‡fd†ˆjjjDƒƒSˆjjjSdS(Nc3s+|]!}ˆj|ˆjfr|VqdS(N(Rrtdependency_processor(Rztm(R8tuow(sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pys	<genexpr>’s(RStiterRštparentRvR
(R8Rœ((R8RœsN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt_mapperss
	(R”R•RŸ(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR™ŽsRRcBseZd„Zd„ZRS(cCs+||_||_tƒ|_t|_dS(N(RšRSR)t	processedRYtsetup_flush_actions(R8RšRS((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9›s		cCsUtƒ}tƒ}xz|j|ƒD]i}x`|j|j|jƒD]E}|j|\}}|sB|rw|j|ƒq‡|j|ƒqBqBWq"W|r»|jj||ƒ|jj	|ƒn|rç|jj
||ƒ|jj	|ƒn|só|rM|jrI|jj||t
ƒs-|jj||tƒrI|jj|ƒt
|_nt
StSdS(N(R)RŸR2RƒR R6R[Rštpresort_deletesRat
presort_savesR¡tprop_has_changesR+RYtper_property_flush_actions(R8Rœt
delete_statestsave_statesR
RR@R\((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR~¡s2		 
		(R”R•R9R~(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRRšs	tPostSortReccBs)eZeZd„Zd„Zd„ZRS(cGsI|f|}||jkr'|j|Stj|ƒ|j|<}|SdS(N(R4tobjectt__new__(tclsRœtargsRR>((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRªÆs

cCs|j|ƒdS(N(R~(R8Rœtrecs((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR‹ÐscCs0d|jjdjd„|jjƒDƒƒfS(Ns%s(%s)t,css|]}t|ƒVqdS(N(tstr(Rztx((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pys	<genexpr>Ös(t	__class__R”tjoint__dict__R}(R8((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt__repr__Ós	(R”R•RYRRªR‹R´(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR¨Ãs	
	t
ProcessAllcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs9||_||_||_|j|jjj|ƒdS(N(RštdeleteRSR1RžR`R[(R8RœRšR¶RS((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9Ûs
			cCsE|j|ƒ}|jr.|jj||ƒn|jj||ƒdS(N(t	_elementsR¶Rštprocess_deletest
process_saves(R8RœR6((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR~âs	cCs
tgƒS(N(R(R8Rœ((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRyéscCsd|jj|j|jfS(Ns%s(%s, delete=%s)(R±R”RšR¶(R8((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR´ðs	ccsgx`|j|ƒD]O}xF|j|D]7}|j|\}}||jkr$|r$|Vq$q$WqWdS(N(RŸR2R6R¶(R8RœR
RR@R\((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR·÷s
(R”R•R9R~RyR´R·(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRµÚs
				tIssuePostUpdatecBseZd„Zd„ZRS(cCs||_||_dS(N(R
R@(R8RœR
R@((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9s	cCsf|j|j\}}g|D]&}|j|d|jkr|^q}tj|j|||ƒdS(Ni(R7R
R6R@Rtpost_update(R8RœR6RcRt((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR~s3(R”R•R9R~(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRºÿs	RecBs#eZd„Zd„Zd„ZRS(cCs"||_||jkst‚dS(N(R
R`tAssertionError(R8RœR
((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9s	cCs,tj|j|j|jttƒ|ƒdS(N(Rtsave_objR
RxRY(R8Rœ((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR~sc	cs»t|j|jttƒƒ}|jj}t||ƒ}x;|D]3}t|||ƒ}|jj||fƒ|Vq@Wx=|j	|jD]+}|j
||ƒ}|j||tƒqˆWdS(N(R|RxR
RYR`RftSaveUpdateStateR5R[R1RuRy(	R8RœR6R`t
delete_allRR„Rntstates_for_prop((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRys	
	(R”R•R9R~Ry(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRes		RfcBs#eZd„Zd„Zd„ZRS(cCs"||_||jkst‚dS(N(R
R`R¼(R8RœR
((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9)s	cCs,tj|j|j|jttƒ|ƒdS(N(Rt
delete_objR
RxR+RY(R8Rœ((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR~-sc	cs»t|j|jttƒƒ}|jj}t||ƒ}x;|D]3}t|||ƒ}|jj	||fƒ|Vq@Wx=|j
|jD]+}|j||ƒ}|j||tƒqˆWdS(N(
R|RxR
R+RYR`RetDeleteStateR5R[R1RuRy(	R8RœR6R`tsave_allRR„RnRÀ((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRy4s	
	(R”R•R9R~Ry(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRf(s		tProcessStatecBs#eZd„Zd„Zd„ZRS(cCs||_||_||_dS(N(RšR¶R(R8RœRšR¶R((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9Fs		c	CsÁ|j}|j}|j}g|D]9}|j|kr"|j|kr"|j|kr"|^q"}|j|ƒ|jgg|D]}|j^q~}|r­|j||ƒn|j||ƒdS(N(R±RšR¶tdifference_updateRR¸R¹(	R8RœR­tcls_RšR¶trtour_recsR6((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR‹Ks			

&cCs,d|jj|jtj|jƒ|jfS(Ns%s(%s, %s, delete=%s)(R±R”RšRWt	state_strRR¶(R8((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR´Zs
	(R”R•R9R‹R´(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRÄEs		R¾cBs#eZd„Zd„Zd„ZRS(cCs||_||_dS(N(RR
(R8RœRR
((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9ds	cCs|j}|j}g|D]*}|j|kr|j|kr|^q}|j|ƒtj||jgg|D]}|j^qo|ƒdS(N(R±R
RÅRR½R(R8RœR­RÆR
RÇRÈ((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR‹hs		

		cCs d|jjtj|jƒfS(Ns%s(%s)(R±R”RWRÉR(R8((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR´ts	(R”R•R9R‹R´(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR¾cs		RÂcBs#eZd„Zd„Zd„ZRS(cCs||_||_dS(N(RR
(R8RœRR
((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR9|s	c	Cs·|j}|j}g|D]*}|j|kr|j|kr|^q}|j|ƒ|jgg|D]}|j^qf}tj|g|D]}|j|drŒ|^qŒ|ƒdS(Ni(R±R
RÅRRRÁR6(	R8RœR­RÆR
RÇRÈR6Rt((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR‹€s		

&	'cCs d|jjtj|jƒfS(Ns%s(%s)(R±R”RWRÉR(R8((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR´Œs	(R”R•R9R‹R´(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRÂ{s		(t__doc__tRRRRRRWt	itertoolsR-R©R.R™RRR¨RµRºReRfRÄR¾RÂ(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt<module>s"	Vÿ#)%