https://t.me/AnonymousX5
Server : Apache
System : Linux cvar2.toservers.com 3.10.0-962.3.2.lve1.5.73.el7.x86_64 #1 SMP Wed Aug 24 21:31:23 UTC 2022 x86_64
User : njnconst ( 1116)
PHP Version : 8.4.18
Disable Function : NONE
Directory :  /proc/self/root/lib64/python2.7/site-packages/sqlalchemy/orm/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyc
�
���\c@sxdZddlmZddlmZddlmZddlmZddlmZddlmZddlm	Z	d	�Z
d
efd��YZdefd
��YZ
de
fd��YZdefd��YZde
efd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZd S(!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(t
attributes(texc(tpersistence(tutili(tevent(ttopologicalcs�|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(s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytappend s		cs�|dkrdS|j}|jjj�}|rZ|jrZ|j|jrPdnd�n|dk	r�|tj	k	r�|tj
k	r�|jjr�tj
|�}|jj|�r�|r�||jkr�|j|�q�t|_q�ndS(Nscollection removesrelated attribute delete(RRR
RRRR	tuselistRt	NEVER_SETtPASSIVE_NO_RESULTRt
delete_orphanR
t
_is_orphant_newtexpungetTruet_orphaned_outside_of_session(RRRRRR(R(s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytremove6s"	
c	s-||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(RRR	R
RRRRR
RRRRRRRRRR RR!(RtnewvaluetoldvalueRRRtnewvalue_statetoldvalue_state(R(s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytset_Xs,			RtrawtretvalR$tsetN(RRtlistenR"(t
descriptorRRR$R)((Rs?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyttrack_cascade_eventss	"%tUOWTransactioncBs�eZd�Zed��Zd�Zd�Zd�Zd�Ze	j
d�Zd�Zd�Z
eeeddd	�Zd
�Zd�Zejd��Zd
�Zd�Zd�Zd�Zd�ZRS(cCsv||_i|_tjt�|_tjt�|_i|_i|_t�|_	i|_
tjd��|_dS(NcSst�t�fS(N(R,(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt<lambda>�s(RRRtdefaultdictR,tdepstmapperstpresort_actionstpostsort_actionstdependencieststatestpost_update_states(tselfR((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt__init__�s					cCs
t|j�S(N(tboolR8(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pythas_work�scCsR|jrNy|j|tj�WqNtjk
rJ|jj|g�tSXnt	S(sVreturn true if the given state is expired and was deleted
        previously.
        (
texpiredt
_load_expiredRtPASSIVE_OFFtorm_exctObjectDeletedErrorRt_remove_newly_deletedR"tFalse(R:R((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytwas_already_deleted�s	cCs||jko|j|dS(sWreturn true if the given state is marked as deleted
        within this uowtransaction.i(R8(R:R((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt
is_deleted�scCs6||jkr|j|S|�|j|<}|SdS(N(R(R:Rt	callable_tret((s?/usr/lib64/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(R8R"(R:Rtisdelete((s?/usr/lib64/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_historytdictR@tLOAD_AGAINST_COMMITTEDtuses_objectstas_state(	R:RRtpassivethashkeyRLt
state_historytcached_passiveRN((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytget_attribute_history�s,
cCs|tf|jkS(N(R"R5(R:t	processor((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pythas_depscCs8||f}||jkr4t||�|j|<ndS(N(R5t
Preprocess(R:RYt
fromparentR((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytregister_preprocessors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_strRDR8R
RR4t_per_mapper_flush_actionstaddR"(R:RRJtlistonlyt
cancel_deletet	operationRR((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytregister_objects	cCs@|jjj}|j|\}}|j|�|j|�dS(N(R
Rtbase_mapperR9Rctupdate(R:Rtpost_update_colsRR8tcols((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytregister_post_update-s
cCs�t||j�}t||j�}|jj||f�x|jD]}|j|�qDWx6|jD]+}|jrzqen|j	}|j|�qeWdS(N(
t
SaveUpdateAllRht	DeleteAllR7Rct_dependency_processorstper_property_preprocessorst
relationshipstviewonlyt_dependency_processor(R:RtsavestdeletestdepR((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRb3s		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(RtgetRR(ttup((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR1Ls(RtPopulateDict(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt_mapper_for_depAs
cCs6|j}g|D]"}||jj|fr|^qS(smFilter the given list of InstanceStates to those relevant to the
        given DependencyProcessor.

        (RzR
R(R:RvR8tmapper_for_depts((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytfilter_states_for_depOs	ccsZ||f}xG|jjD]9}x0|j|D]!}|j||kr-|Vq-q-WqWdS(N(Rhtself_and_descendantsR4R8(R:RRJRdtchecktupR((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytstates_for_mapper_hierarchyWs
c	s�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(R:(s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pys	<genexpr>wsiiN(R"RDtlistR5tvaluestexecuteRtfind_cyclesR7R6tcyclesRPRtdisabledt
issupersetR$RcR,t
difference(R:RHtactionR�tconverttedgeRvta((R:s?/usr/lib64/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_subsetsR7tpoptexecute_aggregatetsortR�(R:R6R)tnR�((s?/usr/lib64/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((R�R|RJRd((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pys	<genexpr>�s(R8R,titemsR�RRCt_register_persistent(R:R8tisdeltother((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pytfinalize_flush_changes�s	N(t__name__t
__module__R;tpropertyR=RERFRIRKRtPASSIVE_NO_INITIALIZERXRZR]RDRRgRlRbRtmemoized_propertyRzR}R�R�R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR0�s,	-				.							4	tIterateMappersMixincBseZd�ZRS(cs@�jr/t��fd��jjjD��S�jjjSdS(Nc3s+|]!}�j|�jfr|VqdS(N(Rztdependency_processor(R�tm(R:tuow(s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pys	<genexpr>�s(R\titerR�tparentR~R(R:R�((R:R�s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt_mappers�s
	(R�R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��sR[cBs eZdZd�Zd�ZRS(R�R\t	processedtsetup_flush_actionscCs+||_||_t�|_t|_dS(N(R�R\R,R�RDR�(R:R�R\((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;�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�R4R�R�R8RcR�tpresort_deletesRit
presort_savesR�tprop_has_changesR"RDtper_property_flush_actions(R:R�t
delete_statestsave_statesRRRJRd((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s2		 
		(sdependency_processors
fromparents	processedssetup_flush_actions(R�R�t	__slots__R;R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR[�s	tPostSortReccBs eZdZd�Zd�ZRS(R�cGsR|f|}||jkr'|j|Stj|�|j|<}t|_|SdS(N(R6tobjectt__new__RDR�(tclsR�targsRRH((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s
	cCs|j|�dS(N(R�(R:R�trecs((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�s(sdisabled(R�R�R�R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s		t
ProcessAllcBs;eZdZd�Zd�Zd�Zd�Zd�ZRS(	R�RJR\cCs9||_||_||_|j|jjj|�dS(N(R�RJR\R3R�RhRc(R:R�R�RJR\((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;s
			cCsE|j|�}|jr.|jj||�n|jj||�dS(N(t	_elementsRJR�tprocess_deletest
process_saves(R:R�R8((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�s	cCs
tg�S(N(R�(R:R�((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�scCsd|jj|j|jfS(Ns%s(%s, isdelete=%s)(t	__class__R�R�RJ(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt__repr__%s	ccsgx`|j|�D]O}xF|j|D]7}|j|\}}||jkr$|r$|Vq$q$WqWdS(N(R�R4R8RJ(R:R�RRRJRd((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�,s
(sdependency_processorsisdeletes
fromparent(R�R�R�R;R�R�R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�s				t
PostUpdateAllcBs eZdZd�Zd�ZRS(RRJcCs||_||_dS(N(RRJ(R:R�RRJ((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;7s	cCsf|j|j\}}g|D]&}|j|d|jkr|^q}tj|j|||�dS(Ni(R9RR8RJRtpost_update(R:R�R8RkR|((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�;s3(smappersisdelete(R�R�R�R;R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�4s	RmcBs2eZdZd�Zd�Zd�Zd�ZRS(RcCs"||_||jkst�dS(N(RRhtAssertionError(R:R�R((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;Es	cCs,tj|j|j|jtt�|�dS(N(Rtsave_objRR�RD(R:R�((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�Isc	cs�t|j|jtt��}|jj}t||�}x8|D]0}t||�}|jj||f�|Vq@Wx=|j	|jD]+}|j
||�}|j||t�q�WdS(N(R�R�RRDRhRntSaveUpdateStateR7RcR3R}R�(	R:R�R8Rht
delete_allRR�Rvtstates_for_prop((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�Ps
	cCsd|jj|jfS(Ns%s(%s)(R�R�R(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�as(smapper(R�R�R�R;R�R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRmBs
			RncBs2eZdZd�Zd�Zd�Zd�ZRS(RcCs"||_||jkst�dS(N(RRhR�(R:R�R((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;hs	cCs,tj|j|j|jtt�|�dS(N(Rt
delete_objRR�R"RD(R:R�((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�lsc	cs�t|j|jtt��}|jj}t||�}x8|D]0}t||�}|jj	||f�|Vq@Wx=|j
|jD]+}|j||�}|j||t�q�WdS(N(
R�R�RR"RDRhRmtDeleteStateR7RcR3R}R�(	R:R�R8Rhtsave_allRR�RvR�((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR�ss
	cCsd|jj|jfS(Ns%s(%s)(R�R�R(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s(smapper(R�R�R�R;R�R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyRnes
			tProcessStatecBs)eZdZd�Zd�Zd�ZRS(R�RJRcCs||_||_||_dS(N(R�RJR(R:R�R�RJR((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;�s		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�RJtdifference_updateRR�R�(	R:R�R�tcls_R�RJtrtour_recsR8((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s			

&cCs,d|jj|jtj|j�|jfS(Ns%s(%s, %s, delete=%s)(R�R�R�R`t	state_strRRJ(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s
	(sdependency_processorsisdeletesstate(R�R�R�R;R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s		R�cBs)eZdZd�Zd�Zd�ZRS(RRcCs||_|jj|_dS(N(RRRh(R:R�R((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;�s	cCs�|j}|j}g|D]*}|j|kr|j|kr|^q}|j|�tj||jgg|D]}|j^qo|�dS(N(R�RR�RR�R(R:R�R�R�RR�R�((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s		7
cCs d|jjtj|j�fS(Ns%s(%s)(R�R�R`R�R(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s	(sstatesmapper(R�R�R�R;R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s		R�cBs)eZdZd�Zd�Zd�ZRS(RRcCs||_|jj|_dS(N(RRRh(R:R�R((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR;�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�RR�RRR�R8(	R:R�R�R�RR�R�R8R|((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s		7
&cCs d|jjtj|j�fS(Ns%s(%s)(R�R�R`R�R(R:((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s	(sstatesmapper(R�R�R�R;R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyR��s		N(t__doc__tRRRARRR`RRR/R�R0R�R[R�R�R�RmRnR�R�R�(((s?/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.pyt<module>s(	i�=2(###

https://t.me/AnonymousX5 - 2025