+
    il                       R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RI	H
t
 ^RI	Ht ^R	I	Ht ^R
I	Ht ^R	I	Ht ^RIHt ]'       d%   ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt R t ! R R4      t ! R R4      t ! R R]4      t ! R R4      t  ! R R]] 4      t! ! R R] 4      t" ! R R ] 4      t# ! R! R"] 4      t$ ! R# R$] 4      t% ! R% R&] 4      t& ! R' R(] 4      t'R)# )*zThe 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.

)annotations)Any)Dict)Optional)Set)TYPE_CHECKING
attributes)exc)util)event)topological)DependencyProcessor)MapperProperty)Mapper)Session)SessionTransaction)InstanceStatec           	     "  a VP                   oV3R lpV3R lpV3R lp\        P                  ! V RVRRR7       \        P                  ! V RVRRRR7       \        P                  ! V R	VRRRR7       \        P                  ! V R
VRRRR7       R# )zTEstablish event listeners on object attributes which handle
cascade-on-set/append.

c                  < Vf   R # V P                   pV'       d   VP                  '       d   VP                  R4       V P                  P                  P
                  S,          p\        P                  ! V4      pVP                  P                  '       d:   SVP                  8X  d)   VP                  V4      '       g   VP                  V4       V# )Nzcollection append)session_warn_on_events_flush_warningmanagermapper_propsr	   instance_state_cascadesave_updatekey_contains_state_save_or_update_statestateitem	initiatorkwsessprop
item_stater   s   &&&,   ڂC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\orm\unitofwork.pyappend$track_cascade_events.<locals>.append2   s     <}}#####$78==''..s3D#2248J )))IMM),,Z88**:6    c                n  < Vf   R # V P                   pV P                  P                  P                  S,          pV'       d8   VP                  '       d&   TP                  VP                  '       d   RMR4       Ve   V\        P                  Jd   V\        P                  Jd   VP                  P                  '       dn   \        P                  ! V4      pVP                  P                  V4      '       d5   V'       d$   WdP                  9   d   VP                  V4       R # RVn        R # R # R # R # R # R # )Nzcollection removezrelated attribute deleteT)r   r   r   r   r   r   uselistr	   	NEVER_SETPASSIVE_NO_RESULTr   delete_orphanr   
_is_orphan_newexpunge_orphaned_outside_of_sessionr"   s   &&&,   r*   remove$track_cascade_events.<locals>.removeI   s    <}}}}##**3/D(((<<< $/ J000J888+++ $2248J{{%%j11J))3LL& ?CJ; 2 , 9 1 r-   c                  < W!J d   V# V P                   pV'       EdZ   VP                  '       d   VP                  R 4       V P                  P                  P
                  S	,          pVel   \        P                  ! V4      pVP                  P                  '       d:   S	VP                  8X  d)   VP                  V4      '       g   VP                  V4       Ve   V\        P                  Jd   V\        P                  Jdu   VP                  P                  '       dY   \        P                  ! V4      pWP                   9   d3   VP                  P#                  V4      '       d   VP%                  V4       V# )zrelated attribute set)r   r   r   r   r   r   r	   r   r   r   r   r    r!   r0   r1   r2   r4   r3   r5   )
r#   newvalueoldvaluer%   r&   r'   r(   newvalue_stateoldvalue_stater   s
   &&&&,    r*   set_"track_cascade_events.<locals>.set_k   s     O}}4#####$;<==''..s3D#!+!:!:8!DMM---	- 00@@..~> $J$8$88J$@$@@MM/// ",!:!:8!D!YY.4;;3I3I"4 4 LL*r-   append_wo_mutationT)rawinclude_keyr+   )rA   retvalrB   r7   setN)r   r   listen)
descriptorr(   r+   r7   r>   r   s   &&   @r*   track_cascade_eventsrG   +   s    
 ((C. CD"H 
LL(&d 
LLHf$t 
LLHf$t 
LLE4T$Dr-   c                     ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R	]R
&   R R lt]R 4       tR tR t	R t
R t]P                  3R ltR tR tR#R R lltR tR t]P*                  R 4       tR tR tR tR R ltR  R! ltR"tR# )$UOWTransactionr   r   r   transactionzDict[str, Any]r	   z7util.defaultdict[Mapper[Any], Set[DependencyProcessor]]depsz6util.defaultdict[Mapper[Any], Set[InstanceState[Any]]]mappersc                   V ^8  d   QhRR/# )   r   r    )formats   "r*   __annotate__UOWTransaction.__annotate__   s     +K +K +Kr-   c                	   Wn         / V n        \        P                  ! \        4      V n        \        P                  ! \        4      V n        / V n        / V n        \	        4       V n	        / V n
        \        P                  ! R  4      V n        R# )c                 *    \        4       \        4       3# N)rD   rO   r-   r*   <lambda>)UOWTransaction.__init__.<locals>.<lambda>   s    CE35>r-   N)r   r	   r   defaultdictrD   rK   rL   presort_actionspostsort_actionsdependenciesstatespost_update_states)selfr   s   &&r*   __init__UOWTransaction.__init__   sw      $$S)	
 '',
  "
 !#  E
  #'"2"23I"Jr-   c                	,    \        V P                  4      # rU   )boolr\   r^   s   &r*   has_workUOWTransaction.has_work   s    DKK  r-   c                    VP                   '       d$    VP                  V\        P                  4       R# R#   \        P
                   d!    T P                  P                  T.4        R# i ; i)zJReturn ``True`` if the given state is expired and was deleted
previously.
TF)expired_load_expiredr	   PASSIVE_OFForm_excObjectDeletedErrorr   _remove_newly_deletedr^   r#   s   &&r*   was_already_deleted"UOWTransaction.was_already_deleted   s[     ===##E:+A+AB  -- 22E7;s    8 1A-,A-c                b    WP                   9   ;'       d    V P                   V,          ^ ,          # )zSReturn ``True`` if the given state is marked as deleted
within this uowtransaction.r\   rm   s   &&r*   
is_deletedUOWTransaction.is_deleted   s'     #==E(:1(==r-   c                	x    WP                   9   d   V P                   V,          # V! 4       ;V P                   V&   pV# rU   r   )r^   r   	callable_rets   &&& r*   memoUOWTransaction.memo   s5    //!??3'')24DOOC 3Jr-   c                \    V P                   V,          ^ ,          pVR3V P                   V&   R# )z;Remove pending actions for a state from the uowtransaction.TNrq   )r^   r#   isdeletes   && r*   remove_state_actions#UOWTransaction.remove_state_actions   s*     ;;u%a(&-Er-   c                x   RW3pW@P                   9   Ed   V P                   V,          w  rVpV\         P                  ,          '       g   V\         P                  ,          '       d   VP                  V,          P                  pVP	                  VVP
                  \         P                  \         P                  ,          \         P                  ,          4      pV'       d$   VP                  '       d   VP                  4       pMTpWVV3V P                   V&   V# VP                  V,          P                  pVP	                  VVP
                  V\         P                  ,          \         P                  ,          4      pV'       d$   VP                  '       d   VP                  4       pMTpWVV3V P                   V&   V# )zGFacade to attributes.get_state_history(), including
caching of results.history)r	   SQL_OKr   implget_historydictri   LOAD_AGAINST_COMMITTEDNO_RAISEuses_objectsas_state)	r^   r#   r   passivehashkeyr~   state_historycached_passiver   s	   &&&&     r*   get_attribute_history$UOWTransaction.get_attribute_history   so    e) oo%59__W5M2GN
 #Z%6%666j////}}S)..**JJ** 778 ))* t000$+$4$4$6M$+M,3G+L($ ! ==%**D &&

334%%&G 4,,, ' 0 0 2 '(/'HDOOG$r-   c                	$    VR 3V P                   9   # )T)rY   )r^   	processors   &&r*   has_depUOWTransaction.has_dep*  s    4 D$8$888r-   c                	`    W3pW0P                   9  d   \        W4      V P                   V&   R # R # rU   )rY   
Preprocess)r^   r   
fromparentr   s   &&& r*   register_preprocessor$UOWTransaction.register_preprocessor-  s0    %***(29(ID  % +r-   Nc               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )rN   r#   zInstanceState[Any]rz   rb   listonlycancel_delete	operationzOptional[str]r(   zOptional[MapperProperty]returnrO   )rP   s   "r*   rQ   rR   2  sP        !    	 
   !  '  
 r-   c           	     	.   V P                   P                  V4      '       gP   VP                  '       g<   Ve8   \        P                  ! R\
        P                  ! V4      : RV: RV: R24       R# WP                  9  dl   VP                  P                  pWpP                  9  d   V P                  V4       V P                  V,          P                  V4       W#3V P                  V&   R# V'       g"   V'       g	   V'       d   VR3V P                  V&   R# )NzObject of type z not in session, z operation along 'z' will not proceedFT)r   r    deletedr   warnorm_utilstate_class_strr\   r   r   rL   _per_mapper_flush_actionsadd)r^   r#   rz   r   r   r   r(   r   s   &&&&&&& r*   register_objectUOWTransaction.register_object2  s     ||++E22 ===Y%:		  //6	4I
 #]]))F\\)..v6LL $$U+"*!5DKK  ]&.%6E"r-   c                	    VP                   P                  P                  pV P                  V,          w  rEVP	                  V4       VP                  V4       R # rU   )r   r   base_mapperr]   r   update)r^   r#   post_update_colsr   r\   colss   &&&   r*   register_post_update#UOWTransaction.register_post_updateT  sB    %%11..v6

5$%r-   c                	b   \        WP                  4      p\        WP                  4      pV P                  P	                  W#34       VP
                   F  pVP                  V 4       K  	  VP                   F4  pVP                  '       d   K  VP                  pVP                  V 4       K6  	  R # rU   )
SaveUpdateAllr   	DeleteAllr[   r   _dependency_processorsper_property_preprocessorsrelationshipsviewonly_dependency_processor)r^   r   savesdeletesdepr(   s   &&    r*   r   (UOWTransaction._per_mapper_flush_actionsZ  s    d$6$67D"4"45u./00C**40 1 ((D}}},,C**40	 )r-   c                0    \         P                  ! R 4      # )zreturn 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.

c                    V ^ ,          P                   P                  V ^,          P                  4      V ^,          P                  J # )    )r   getr   r(   )tups   &r*   rV   0UOWTransaction._mapper_for_dep.<locals>.<lambda>s  s,    A))#a&**5QDr-   )r   PopulateDictrc   s   &r*   _mapper_for_depUOWTransaction._mapper_for_deph  s       D
 	
r-   c                    V P                   pV Uu. uF+  qCVP                  P                  V3,          '       g   K)  VNK-  	  up# u upi )z]Filter the given list of InstanceStates to those relevant to the
given DependencyProcessor.

)r   r   r   )r^   r   r\   mapper_for_depss   &&&  r*   filter_states_for_dep$UOWTransaction.filter_states_for_depv  s@    
 --!M6aQYY5E5Es4K%L%L6MMMs
   &AAc              #  	   "   W#3pVP                   P                   F;  pV P                  V,           F!  pV P                  V,          V8X  g   K  Vx  K#  	  K=  	  R # 5irU   )r   self_and_descendantsrL   r\   )r^   r   rz   r   checktupr#   s   &&&&  r*   states_for_mapper_hierarchy*UOWTransaction.states_for_mapper_hierarchy~  sO     '((==Ff--;;u%1K . >s   AAAc           	         Rp\        V P                  P                  4       4       F  pVP                  V 4      '       g   K  RpK   	  V'       d   KR   \        P
                  ! T P                  \        T P                  P                  4       4      4      ;T n        pT'       Ed~   T Uu/ uF  qD\        TP                  T 4      4      bK  	  pp\        T P                  4       EF:  pRT9   gJ   T^ ,          P                  '       g1   T^,          P                  '       g   TP                  T4      '       d   T P                  P                  T4       Kq  T^ ,          T9   dW   T P                  P                  T4       YV^ ,          ,           F&  pT P                  P                  Yv^,          34       K(  	  K  T^,          T9   g   K  T P                  P                  T4       YV^,          ,           F'  pT P                  P                  T^ ,          T34       K)  	  EK=  	  T P                  P                  4        Uu0 uF  qP                  '       d   K  TkK  	  upP                  T4      # u upi u upi )zmGenerate the full, unsorted collection of PostSortRecs as
well as dependency pairs for this UOWTransaction.

TFN)listrY   valuesexecuter   find_cyclesr[   rZ   cyclesrD   per_state_flush_actionsdisabled
issupersetr7   r   
difference)	r^   rv   actionr   recconvertedger   as	   &        r*   _generate_actions UOWTransaction._generate_actions  s    Ct33::<=>>$''C > 3  +66tD$9$9$@$@$BC 
 	
f 6 HNGMS44T:;;v   T../DLAw'''Aw'''((..%%,,T2!W&%%,,T2&Aw//))--sGn=  0!W&%%,,T2&Aw//))--tAwn=  0 0$ ,,335
5!ZZAA5

*V
	10
s   *#I/?I4I4c                   V ^8  d   QhRR/# rN   r   NonerO   )rP   s   "r*   rQ   rR     s     " " "r-   c                	   V P                  4       p\        VR  R7      pV P                  '       da   \        P                  ! V P
                  V4       F9  p\        V4      pV'       g   K  VP                  4       pVP                  W4       K-  	  R# \        P                  ! V P
                  V4       F  pVP                  V 4       K  	  R# )c                    V P                   # rU   )sort_key)r$   s   &r*   rV   (UOWTransaction.execute.<locals>.<lambda>  s    T]]r-   )r   N)r   sortedr   r   sort_as_subsetsr[   rD   popexecute_aggregatesortr   )r^   rZ   subsetr>   nr   s   &     r*   r   UOWTransaction.execute  s    113!*
 ;;;%55!!#3 6{d
A''3 #''(9(9;KLD! Mr-   c                   V ^8  d   QhRR/# r   rO   )rP   s   "r*   rQ   rR     s     5 5 5r-   c                   V P                   '       g   R# \        V P                   4      pV P                   P                  4        UUUu0 uF  w  pw  r4V'       g   K  VkK  	  ppppVP                  V4      pV'       d   V P                  P                  V4       V'       d   V P                  P                  V4       R# R# u upppi )zMark 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.

N)r\   rD   itemsr   r   rl   _register_persistent)r^   r\   r   rz   r   isdelothers   &      r*   finalize_flush_changes%UOWTransaction.finalize_flush_changes  s     {{{T[[!/3{{/@/@/B
/B+1*xhAA/B 	 
 !!%(LL..u5LL--e4 
s   CC)
r	   r   r[   rK   rL   r]   rZ   rY   r   r\   )FFFNN)__name__
__module____qualname____firstlineno____annotations__r_   propertyrd   rn   rr   rw   r{   r	   PASSIVE_NO_INITIALIZEr   r   r   r   r   r   r   memoized_propertyr   r   r   r   r   r   __static_attributes__rO   r-   r*   rI   rI      s    ##
AACC+KZ ! !
>. #-"B"B3j9J
 D&1 

 
N 2h"65 5r-   rI   c                       ] tR tRtRtR tRtR# )IterateMappersMixini  c                	   a a S P                   '       d5   \        V V3R  lS P                  P                  P                   4       4      # S P                  P
                  P                  # )c              3  v   <"   T F.  pSP                   VSP                  3,          '       g   K*  Vx  K0  	  R # 5irU   )r   dependency_processor).0mr^   uows   & r*   	<genexpr>/IterateMappersMixin._mappers.<locals>.<genexpr>  s6      NA&&4+D+D'EFF Ns   '9
9)r   iterr   parentr   r   r^   r  s   ffr*   _mappersIterateMappersMixin._mappers  sR    ??? 2299NN   ,,33HHHr-   rO   N)r   r   r   r   	__slots__r  r   rO   r-   r*   r   r     s    IIr-   r   c                  &    ] tR tRtRtR tR tRtR# )r   i  c                	J    Wn         W n        \        4       V n        R V n        R# FN)r   r   rD   	processedsetup_flush_actions)r^   r   r   s   &&&r*   r_   Preprocess.__init__   s    $8!$#( r-   c                	f   \        4       p\        4       pV P                  V4       F  pVP                  V,          P                  V P                  4       FN  pVP
                  V,          w  rgV'       d   K"  V'       d   VP                  V4       K=  VP                  V4       KP  	  K  	  V'       d7   V P                  P                  W4       V P                  P                  V4       V'       d7   V P                  P                  W4       V P                  P                  V4       V'       g	   V'       d{   V P                  '       gg   V P                  P                  WR 4      '       g#   V P                  P                  WR4      '       d#   V P                  P                  V4       R V n        R # R# )TF)rD   r  rL   r   r  r\   r   r   presort_deletesr   presort_savesr  prop_has_changesper_property_flush_actions)r^   r  delete_statessave_statesr   r#   rz   r   s   &&      r*   r   Preprocess.execute  s@   emmC(FV,77G'*zz%'8$x%))%0#. H ) %%55cINN!!-0%%33CENN!!+.K+++))::  ,,==e  ))DDSI+/(r-   )r   r   r  r  N)r   r   r   r   r
  r_   r   r   rO   r-   r*   r   r     s    I)!r-   r   c                  &    ] tR tRtRtR tR tRtR# )PostSortReci*  c                	    V 3V,           pW1P                   9   d   VP                   V,          # \        P                  V 4      ;VP                   V&   pR Vn        V# )F)rZ   object__new__r   )clsr  argsr   rv   s   &&*  r*   r  PostSortRec.__new__-  sT    ftm&&&'',,.4nnS.AAC  % CLJr-   c                	(    V P                  V4       R # rU   )r   )r^   r  recss   &&&r*   r   PostSortRec.execute_aggregate6  s    Sr-   rO   N)r   )r   r   r   r   r
  r  r   r   rO   r-   r*   r  r  *  s    Ir-   r  c                  8    ] tR tRtR	tR tR tR tR tR t	Rt
R# )

ProcessAlli:  c                	    W n         R V P                   P                  V3V n        W0n        W@n        VP                  VP
                  P                  ,          P                  V4       R# )r%  N)r   r   rz   r   rK   r  r   r   )r^   r  r   rz   r   s   &&&&&r*   r_   ProcessAll.__init__=  sY    $8!%%..

 !$%,,889== 	
r-   c                	    V P                  V4      pV P                  '       d   V P                  P                  W4       R # V P                  P	                  W4       R # rU   )	_elementsrz   r   process_deletesprocess_saves)r^   r  r\   s   && r*   r   ProcessAll.executeJ  sA    $===%%55cB%%33C@r-   c                	    \        . 4      # rU   )r  r  s   &&r*   r   "ProcessAll.per_state_flush_actionsQ  s    
 Bxr-   c                	n    V P                   P                  : R V P                  : RV P                  : R2# )(z, isdelete=))	__class__r   r   rz   rc   s   &r*   __repr__ProcessAll.__repr__X  s)    NN##%%MM
 	
r-   c              #  	   "   V P                  V4       FR  pVP                  V,           F8  pVP                  V,          w  rEW@P                  8X  g   K*  V'       d   K4  Vx  K:  	  KT  	  R # 5irU   )r  rL   r\   rz   )r^   r  r   r#   rz   r   s   &&    r*   r)  ProcessAll._elements_  sR     mmC(FV,,'*zz%'8$}},XXK - )s   AA,A,A,)r   r   rz   r   N)r   rz   r   r   )r   r   r   r   r
  r_   r   r   r3  r)  r   rO   r-   r*   r%  r%  :  s!    LI
A
 r-   r%  c                  P    ] tR tRtRtR t]P                  ! R4      R 4       tRt	R# )PostUpdateAllig  c                	F    W n         W0n        R VP                  V3V n        R# )r8  N)r   rz   	_sort_keyr   )r^   r  r   rz   s   &&&&r*   r_   PostUpdateAll.__init__j  s      (&*:*:HEr-   sqlalchemy.orm.persistencec                	2   \         P                  P                  pVP                  V P                  ,          w  r4V Uu. uF/  qQP
                  V,          ^ ,          V P                  8X  g   K-  VNK1  	  ppVP                  V P                  W1V4       R# u upi r   N)r   	preloadedorm_persistencer]   r   r\   rz   post_update)r^   r  persistencer\   r   r   s   &&    r*   r   PostUpdateAll.executeo  so    nn44--dkk:#IVzz!}Q'74=='H!!VIV$? Js   *B-B)rz   r   r   N)r   rz   r   )
r   r   r   r   r
  r_   r   preload_moduler   r   rO   r-   r*   r8  r8  g  s/    0IF
 
56@ 7@r-   r8  c                  \    ] tR tRtRtR t]P                  ! R4      R 4       tR t	R t
RtR# )	r   ix  c                	Z    W n         R VP                  3V n        W"P                  J g   Q hR# )r   Nr   r:  r   r   r^   r  r   s   &&&r*   r_   SaveUpdateAll.__init__{  s+    (&*:*:;+++++r-   r<  c                	    \         P                  P                  P                  V P                  VP                  V P                  R R 4      V4       R# r  )r   r?  r@  save_objr   r   r  s   &&r*   r   SaveUpdateAll.execute  s:    &&//KK++DKKF	
r-   c              #  	  "   \        VP                  V P                  R R 4      4      pV P                  P                  p\	        W4      pV F.  p\        W4      pVP                  P                  Wd34       Vx  K0  	  VP                  V P                  ,           F&  pVP                  Wr4      pVP                  WR 4       K(  	  R# 5ir  )r   r   r   r   r   SaveUpdateStater[   r   rK   r   r   )	r^   r  r\   r   
delete_allr#   r   r   states_for_props	   &&       r*   r   %SaveUpdateAll.per_state_flush_actions  s     ++DKKF
 kk--s0
E %S0F  &!56L  88DKK((C!77DO''eD )   CCc                	R    V P                   P                  : R V P                  : R2# r0  r1  r2  r   r   rc   s   &r*   r3  SaveUpdateAll.__repr__      >>22DKK@@r-   r   r   Nr   r   r   r   r
  r_   r   rD  r   r   r3  r   rO   r-   r*   r   r   x  s8    &I,
 
56
 7
E"Ar-   r   c                  \    ] tR tRtRtR t]P                  ! R4      R 4       tR t	R t
RtR# )	r   i  c                	Z    W n         R VP                  3V n        W"P                  J g   Q hR# )r   NrG  rH  s   &&&r*   r_   DeleteAll.__init__  s+    $f&6&67+++++r-   r<  c                	    \         P                  P                  P                  V P                  VP                  V P                  R R4      V4       R# TFN)r   r?  r@  
delete_objr   r   r  s   &&r*   r   DeleteAll.execute  s:    &&11KK++DKKuE	
r-   c              #  	  "   \        VP                  V P                  R R4      4      pV P                  P                  p\	        W4      pV F.  p\        W4      pVP                  P                  WF34       Vx  K0  	  VP                  V P                  ,           F&  pVP                  Wr4      pVP                  WR 4       K(  	  R# 5ir^  )r   r   r   r   r   DeleteStater[   r   rK   r   r   )	r^   r  r\   r   save_allr#   r   r   rP  s	   &&       r*   r   !DeleteAll.per_state_flush_actions  s     ++DKKuE
 kk-- 2E !,F  (!34L  88DKK((C!77DO''dC )rR  c                	R    V P                   P                  : R V P                  : R2# rT  rU  rc   s   &r*   r3  DeleteAll.__repr__  rW  r-   rX  NrY  rO   r-   r*   r   r     s8    &I,
 
56
 7
D"Ar-   r   c                  ,    ] tR tRtRtR tR tR tRtR# )ProcessStatei  c                	P    W n         R VP                  3V n        W0n        W@n        R# rh  N)r   r   rz   r#   )r^   r  r   rz   r#   s   &&&&&r*   r_   ProcessState.__init__  s%    $8!')=)F)FG 
r-   c                	   V P                   pV P                  pV P                  pV Uu. uF;  pVP                   VJ g   K  VP                  VJ g   K'  VP                  VJ g   K9  VNK=  	  ppVP                  V4       V P                  .V Uu. uF  qfP                  NK  	  up,           pV'       d   VP                  W4       R # VP                  W4       R # u upi u upi rU   )r2  r   rz   difference_updater#   r*  r+  )	r^   r  r"  cls_r   rz   rour_recsr\   s	   &&&      r*   r   ProcessState.execute_aggregate  s    ~~#88== 
{{d"  &&*>>  

h&	 A 	 
 	x(**( ;(Q( ;; 00= ..s;
 !<s   C CC$CCc                	    V P                   P                  : R V P                  : R\        P                  ! V P
                  4      : RV P                  : R2# )r0  z, z	, delete=r1  )r2  r   r   r   	state_strr#   rz   rc   s   &r*   r3  ProcessState.__repr__  s;    NN##%%tzz*MM	
 	
r-   )r   rz   r   r#   N)r   rz   r#   r   )	r   r   r   r   r
  r_   r   r3  r   rO   r-   r*   rh  rh    s    GI<$
r-   rh  c                  V    ] tR tRtRtR t]P                  ! R4      R 4       tR t	Rt
R# )	rN  i  c                	    W n         VP                  P                  V n        R V P                  P                  3V n        R# rj  r#   r   r   r:  r   r^   r  r#   s   &&&r*   r_   SaveUpdateState.__init__  s.    
ll..')>)>?r-   r<  c                	   \         P                  P                  pV P                  pV P                  pV Uu. uF(  qfP                  VJ g   K  VP                  VJ g   K&  VNK*  	  ppVP                  V4       TP                  YPP                  .V Uu. uF  qfP                  NK  	  up,           V4       R # u upi u upi rU   )r   r?  r@  r2  r   rm  rK  r#   )r^   r  r"  rB  rn  r   ro  rp  s   &&&     r*   r   !SaveUpdateState.execute_aggregate  s    nn44~~
!{{d2Aqxx67IAAt 	 
 	x(ZZLX#>XGGX#>>	
	

 $?s   B7B7B7B<c                	z    V P                   P                  : R \        P                  ! V P                  4      : R2# rT  r2  r   r   rs  r#   rc   s   &r*   r3  SaveUpdateState.__repr__  +    NN##tzz*
 	
r-   r   r   r#   Nr#   r   r   r   r   r   r   r
  r_   r   rD  r   r3  r   rO   r-   r*   rN  rN    s2    -I@
 
56

 7


r-   rN  c                  V    ] tR tRtRtR t]P                  ! R4      R 4       tR t	Rt
R# )	rb  i  c                	    W n         VP                  P                  V n        R V P                  P                  3V n        R# )rb  Nrw  rx  s   &&&r*   r_   DeleteState.__init__  s.    
ll..&(=(=>r-   r<  c                	   \         P                  P                  pV P                  pV P                  pV Uu. uF(  qfP                  VJ g   K  VP                  VJ g   K&  VNK*  	  ppVP                  V4       V P                  .V Uu. uF  qfP                  NK  	  up,           pTP                  YX U	u. uF&  qP                  V	,          ^ ,          '       g   K$  V	NK(  	  up	V4       R# u upi u upi u up	i r>  )	r   r?  r@  r2  r   rm  r#   r_  r\   )
r^   r  r"  rB  rn  r   ro  rp  r\   r   s
   &&&       r*   r   DeleteState.execute_aggregate
  s    nn44~~
!{{d2Aqxx67IAAt 	 
 	x(**( ;(Q( ;;;1**Q-*:*:QQ;S	

 !<;s#   C*C*C*C/4!C4
C4
c                	z    V P                   P                  : R \        P                  ! V P                  4      : R2# rT  r}  rc   s   &r*   r3  DeleteState.__repr__  r  r-   r  Nr  r  rO   r-   r*   rb  rb    s1    -I?
 
56
 7

r-   rb  N)(__doc__
__future__r   typingr   r   r   r   r    r	   r
   rj   r   r   r   r   
dependencyr   
interfacesr   r   r   r   r   r   r#   r   rG   rI   r   r   r  r%  r8  r   r   rh  rN  rb  rO   r-   r*   <module>r     s    #             /* +$odJ5 J5Z
I I/$ /d  * $k * Z@K @""AK "AJ"A "AJ!
; !
H
k 
8
+ 
r-   