PK APOCALYPSE V1

APOCALYPSE V1

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

�

���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/

if you don't want to be vaporized in a nuclear explosion, i simply have to become nuclear myself… i am atomic