Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
dependency.cpython-313.pyc201 linesDownload Raw Back to __pycache__
1�

2��j����SrSSKJr SSKJr SSKJr SSKJr SSKJr SSKJr	 SS	K3Jr SS4K5Jr SSK6J
r
 SSKJr SS
KJr SSKJr "SS5r"SS\5r"SS\5r"SS\5r"SS\5r\
\\\\\0rg)zRelationship dependencies.�)�annotations�)�7attributes)�exc)�sync)�8unitofwork)�util)�9MANYTOMANY)�	MANYTOONE)�	ONETOMANY�)�sqlc��\rSrSrSr\S5rSrSrSr	Sr10SrS	rS11r
SrSrS
rSrSrSSjrSrSrSrg)�DependencyProcessor�c�(�XlURUlURUlURUlURUlUR12UlURUlURUlURUlURUl	UR(a[RUlO[RUlUR(a[RUlO[RUlURR<SUR <3UlUR UlURR$(d#[&R("SUR-5eg)N�_z|Can't build a DependencyProcessor for relationship %s. No target attributes to populate between parent and child are present)�prop�cascade�mapper�parent�	secondary�	direction�post_update�passive_deletes�passive_updates�enable_typechecksr�PASSIVE_NO_INITIALIZE�_passive_delete_flag�PASSIVE_OFF�_passive_update_flag�	_sort_key�key�sort_key�synchronize_pairs�sa_exc�
ArgumentError)�selfrs  �_D:\code\apps\devtools\python\user_packages\Python313\site-packages\sqlalchemy/orm/dependency.py�__init__�DependencyProcessor.__init__s���	��|�|����k�k����k�k��������������+�+���#�3�3���#�3�3���!%�!7�!7������(2�(H�(H�D�%�(2�(>�(>�D�%����(2�(H�(H�D�%�(2�(>�(>�D�%�#'�;�;�#8�#8�$�(�(�C��
��8�8����y�y�*�*��&�&�$�&*�i�i�0��
�+�c�4�[UR"U5$�N)�_direction_to_processorr)�clsrs  r)�from_relationship�%DependencyProcessor.from_relationship9s��&�t�~�~�6�t�<�<r,c�~�URRRUR5R	U5$)z�return True if the given object instance has a parent,13according to the ``InstrumentedAttribute`` handled by this14``DependencyProcessor``.15 16)r�
class_manager�get_implr#�	hasparent�r(�states  r)r6�DependencyProcessor.hasparent=s.���{�{�(�(�1�1�$�(�(�;�E�E�e�L�Lr,c�(�URUS5 g)z}establish actions and dependencies related to a flush.17 18These actions will operate on all relevant states in19the aggregate.20 21TN)�register_preprocessor�r(�uows  r)�per_property_preprocessors�.DependencyProcessor.per_property_preprocessorsEs��	�!�!�$��-r,c	���[R"XSS5n[R"XSS5n[R"XRR5n[R"XR22R5n[R"XRR5n[R"XR23R5nURUUUUUUU5 g�NFT)r�24ProcessAll�
SaveUpdateAllr�primary_base_mapperr�	DeleteAll�per_property_dependencies)r(r=�25after_save�
before_delete�parent_saves�child_saves�parent_deletes�
child_deletess        r)�per_property_flush_actions�.DependencyProcessor.per_property_flush_actionsNs����*�*�3�e�T�B�26�"�-�-�c��t�D�
�!�/�/����0�0�27��!�.�.����0�0�28��$�-�-����0�0�29��#�,�,����0�0�30�
�	
�&�&��������	31r,c��URRn[R"X5n[R"X5nU(a [R32"XSS5nSUlO[R33"XSS5nSUlXQR;aXaR;deUS4US4/n	Sn34OSn35U(d?[R"XRR5nS=p�X�R;aSn
O>[R"XRR5nS=p�X�R;aSn
UGH�nURURRRUURU(aURO[ R"5nU(dMlU(a6[R$"XSU5nW
(a[R&"X5nO5[R$"XSU5nW
(a[R("X5nU36(a~/n	UHvunnUUR*;aSnOLUR*UunnU(a[R&"UU5S4nO[R("UU5S4nU	R-U5 Mx W	HunnUR/UUUUWWUU5 M  GM� g)z�establish actions and dependencies related to a flush.37 38These actions will operate on all relevant states39individually.    This occurs only if there are cycles40in the 'aggregated' version of events.41 42TFN)NN)rrDrrCrErB�disabled�cyclesr�base_mapper�managerr#�impl�get_all_pending�dictrrr�ProcessState�DeleteState�SaveUpdateState�states�append�per_state_dependencies)r(r=rZ�isdelete�child_base_mapperrJrLrHrG�
child_actions�child_in_cyclesrIrK�parent_in_cyclesr8�sum_�child_state�child�child_action�deleted�listonly�
childisdeletes                      r)�per_state_flush_actions�+DependencyProcessor.per_state_flush_actionsjs���!�K�K�;�;�� �.�.�s�F��"�,�,�S�D�
�43�&�1�1�#�T�4�H�M�%)�M�"�#�.�.�s�%��F�J�"&�J���j�j�(�44!�45�46�2�2�2�*�5�1�M�4�3H�I�M�#�O�"�O��%�3�3��[�[�,�,��L�.2�1�N��z�z�)�#'� ��'�1�1�#�{�{�7N�7N�O�N�(,�,�L����+�#'� ��E��=�=����*�/�/�?�?���47�48� ��-�-�#�9�9�
�D���� *� 7� 7��4�� O�
�#�%/�%;�%;�C�%G�N��'�4�4�S��u�M�49�#�#-�#=�#=�c�#I�L�� "�
�*.�&�K��"�#�*�*�4�'3��.1�j�j��.E�+��(�"� *� 6� 6�s�K� H� $�,�L�!+� :� :�3�� L� %�,�L�"�(�(��6�+/�&0=�+��m��+�+�� �"� ��!��!�	�0=�_r,c��g�NF��r(�	uowcommitrZs   r)�presort_deletes�#DependencyProcessor.presort_deletes����r,c��grlrmrns   r)�
presort_saves�!DependencyProcessor.presort_saves�rrr,c��gr.rmrns   r)�process_deletes�#DependencyProcessor.process_deletes����r,c��gr.rmrns   r)�
process_saves�!DependencyProcessor.process_saves�ryr,c��U(aUR(a"[R[R-nOEUR[50La[RnO![R[R-nUH?nURXPRU5nU(dM(UR5(aM? g U=(a; URR(+=(a URUR;$)NT)rrr�INCLUDE_PENDING_MUTATIONSrr�PASSIVE_NO_FETCH_RELATEDr �get_attribute_historyr#�emptyr�_is_self_referentialr�mappers)r(rorZr]�passive�s�historys       r)�prop_has_changes�$DependencyProcessor.prop_has_changes�s����4�/�/��0�0��6�6�7�
��^�^�y�
(�!�9�9�G��&�&��)M�)M�M�
��A� �5�5�a���7�K�G��w�w�}�}����
��5��	�	�6�6�6�5��K�K�9�#4�#4�4�
r,c�R�URR(a'Uc$[R"SUR<35eUb�URRXR(+S9(d�URRUSS9(aP[R"SURURURRURS.-5e[R"SURURURRS.-5egg)Nz+Can't flush None value found in collection )�allow_subtypesTaEAttempting to flush an item of type %(x)s as a member of collection "%(y)s". Expected an object of type %(z)s or a polymorphic subclass of this type. If %(x)s is a subclass of %(z)s, configure mapper "%(zm)s" to load this subtype polymorphically, or set enable_typechecks=False to allow any subtype to be accepted for flush. )�x�y�z�zmz�Attempting to flush an item of type %(x)s as a member of collection "%(y)s". Expected an object of type %(z)s or a polymorphic subclass of this type.)r�r�r�)r�uselistr�51FlushErrorr�_canloadr�class_r7s  r)�_verify_canload�#DependencyProcessor._verify_canloads����9�9������.�.�#'�9�9�/��
��
�t�{�{�';�';��&<�&<�"<�(<�(52��{�{�#�#�E�$�#�?��n�n�=�#�\�\�!�Y�Y�!�[�[�/�/�"�k�k�	����$�n�n�!�#�\�\�!�Y�Y�!�[�[�/�/��	���-(53�
r,c��[5er.��NotImplementedError)r(r8rd�associationrow�	clearkeysros      r)�_synchronize� DependencyProcessor._synchronize1���!�#�#r,c	��URR(dg[[UR/URRVs/sHo"RPM sn-55nURSU4[5$s snf)N�reverse_key)r�_reverse_property�tuple�sortedr#�memo�set)r(r=�p�process_keys    r)�_get_reversed_processed_set�/DependencyProcessor._get_reversed_processed_set4sj���y�y�*�*����D�H�H�:��	�	�0K�0K� L�0K�1���0K� L�L�M�54���x�x���4�c�:�:��!Ms�Bc55��UHInU(aUcMURXRRVVs/sHupgUPM	 snn5  g gs snnfr.)�register_post_updaterr%)r(r8ro�related�
is_m2o_deleter��l�rs        r)�_post_update� DependencyProcessor._post_update=sL���A� �A�M��.�.��)�)�*E�*E�F�*E�$�!�A�*E�F�����Gs�Ac��[5er.r��r(ror8s   r)�_pks_changed� DependencyProcessor._pks_changedEr�r,c�R�URR<SUR<S3$)N�(�))�	__class__�__name__r)r(s r)�__repr__�DependencyProcessor.__repr__Hs���>�>�2�2�D�I�I�>�>r,)rr!rrrr#rrrrrrrr$N)F)r��56__module__�__qualname__�__firstlineno__r*�classmethodr1r6r>rMrirprtrwr{r�r�r�r�r�r�r��__static_attributes__rmr,r)rrsk���:�=��=�M�.�57�8p�d��
�
��@'�R$�;��$�?r,rc�D�\rSrSrSrSrSrSrSrSr	Sr58S	rS59rg)�OneToManyDPiLc60�t�UR(a~[R"XRRS5n[R"XRRS5n	UR61R
X64X&4Xh4Xy4X�4X�4/5 gUR62R
X&4Xc4Xe4X44XT4Xs4Xu4/5 grA�rr�
PostUpdateAllrrD�dependencies�update)63r(r=rIrJrKrLrGrH�child_post_updates�child_pre_updatess64          r)rF�%OneToManyDP.per_property_dependenciesMs������!+�!9�!9��[�[�4�4�e�"��!+� 8� 8��[�[�4�4�d�!��
���#�#� �-�!�.��4�"�6�&�7�&�6�
�	
�
���#�#�!�.��-��/� �1�"�3�"�0�"�2��65
r,c	��UR(a�[R"XRRS5n	[R"XRRS5n66U(dIU(a UR67R
XE4XY4/5 gUR68R
X%4XE4XY4/5 gU(a UR69R
Xj4X�4/5 gUR70R
Xj4X�4/5 gU(d"UR71R
X%4XT4X$4/5 gUR72R
Xd4XC4/5 grAr�)r(r=�save_parent�
delete_parentrerGrHr]rhr�r�s           r)r\�"OneToManyDP.per_state_dependenciesvsN�����!+�!9�!9��[�[�4�4�e�"��!+� 8� 8��[�[�4�4�d�!��� ��$�$�+�+�)�6�'�<����$�$�+�+�(�5�)�6�'�<���!��$�$�+�+�*�>�.�>����$�$�+�+�*�>�.�>�������#�#� �-��.� �/��
�
���#�#��.��0M�N�
r,c�(�URR(+=(a URS:X+nUH�nURX@RUR735nU(dM2URH\nUcMURU5SLdMURR(aURUSS9 MKURU5 M^ U(dM�URH#nUcMURUSURS9 M% M� g)N�allFT�r]�delete��	operationr)rr�rr�r#rrfr6�
delete_orphan�register_object�	unchangedr�r(rorZ�should_null_fksr8r�rds       r)rp�OneToManyDP.presort_deletes�s���74���#�#�#�I�D�,@�,@�E�(I�	��E��5�5��x�x��!:�!:��G��w�$�_�_�E��(�T�^�^�E�-B�e�-K��<�<�5�5�%�5�5�e�d�5�K�%�5�5�e�<�-�#�?�!(�!2�!2�� �,�%�5�5� %���	�	�6��"3�r,c75��URSU4[5nURR(+=(a URS:X+nUGH�nURX5nU(aUR(a"[R[R-nO![R[R-nURXPRU5nU(GaURH$n	U	cMURU	SSURS9 M& UR!UR5 UR"H�n	URR(d'U(aURU	SSURS9 MCMEUR%U	5SLdM[URU	SSURS9 UR&R)SU	5Hup�p�URUSS	9 M M� U(dGM�U(dGM�UR*H/n	U	cMURU	SURS76URS9 M1 GM� g)N�children_addedr�T�add)�
cancel_deleter�rFr��r]r�rr�z	pk changer�)r�r�rr�rr�rrrr~r r�r#�addedr�rr�rfr6r�cascade_iteratorr�)r(rorZr�r�r8�pks_changedr�r�rd�c�m�st_�dct_s              r)rt�OneToManyDP.presort_saves�s
��"���)9�4�(@�#�F�����*�*�*�
2��(�(�E�1�	�77�E��+�+�I�=�K��$�"6�"6��4�4� �:�:�;���*�*� �:�:�;��78 �5�5�e�X�X�w�O�G��$�]�]�E��(�!�1�1�!�*.�&+�!%���	2��+��%�%�g�m�m�4�$�_�_�E��<�<�5�5�*�%�5�5� %�).�*2�%)�Y�Y�	6��+�����.�%�7�!�1�1�!�%)�&.�!%���	2��04�{�{�/K�/K�$�e�0�O�A�#�&�5�5�c�D�5�I�0�!-�*�{��7�!(�!2�!2�� �,�%�5�5� %� %� $� 4� 4�*5�%)�Y�Y�6��"3�er,c79��UR(dURS:XGdgURSU4[5nUGHGnUR	X@R80UR5nU(dM3URHbnUcMURU5SLdMURXFSSUS5 UR(dMFU(dMOURXaU/5 Md UR(dURR(aM�[UR5RU5HLnUcMURXFSSUS5 UR(dM0U(dM9URXaU/5 MN GMJ gg)Nr�r�FT)rrr�r�r�r#rrfr6r�r�rr�r��81difference)r(rorZr�r8r�rds       r)rw�OneToManyDP.process_deletessM�����4�#7�#7�5�#@�&�^�^�-=�t�,D�c�J�N���#�9�9��8�8�T�%>�%>����7�!(����!�-� $���u� 5�� >� �-�-� %�d�D�)�U�� $�/�/�/�E�E� $� 1� 1�%�U�G� L�"1��'�'�t�|�|�/B�/B�/B�%(��):�):�%;�%F�%F�*�&�E� %�0� $� 1� 1�$)�$��i��!"�$(�#3�#3�#3���$(�$5�$5�(-�5�'�%&�&�# �$Ar,c82���URR(+=(a URS:X+nUGH1nURX@R[83R5nU(dM7URHCnURXFSSUS5 UcMUR(dM0URXaU/5 ME URHVnU(dMURR(aM)URU5(aMAURXFSSUS5 MX URX5(dGM	URHnURXFSSUS5 M GM4 g)Nr�FT)rr�rr�r#rrr�r�rr�rfr6r�r�r�s       r)r{�OneToManyDP.process_savesBs1�����*�*�*�
2��(�(�E�1�	�84�E��5�5��x�x��!A�!A��G��w�$�]�]�E��%�%��d�E�9�e���(�T�-=�-=�-=��)�)�%�U�G�D�+�%�_�_�E�'�� $��� :� :� :� $���u� 5� 5��)�)�!�$��i���
-��$�$�Y�6�6�!(�!2�!2���)�)�!�$��y�$��"3�/r,c85��UnUnURU5 Ub'UR(dURU5(agU(a6[R"X�R86URR5 g[R"UURUUR87URRUUR=(a U5 gr.)r�r�88is_deletedr�clearrrr%�populaterr)	r(r8rdr�r�ror��source�dests	         r)r��OneToManyDP._synchronizeds����������U�#��<�� � �Y�%9�%9�$�%?�%?����J�J�t�[�[�$�)�)�*E�*E�F��M�M����������	�	�+�+���$�$�4��
r,c�n�[R"XURURR5$r.�r�source_modifiedrrr%r�s   r)r��OneToManyDP._pks_changed{�*���#�#��d�k�k�4�9�9�+F�+F�89�	90r,rmN)
r�r�r�r�rFr\rprtrwr{r�r�r�rmr,r)r�r�Ls0��'�R?�B�6B�H%&�X �D�.91r,r�c�J�\rSrSrSrSrSrSrSrSr	Sr92SS93jrSrg	)
�ManyToOneDPi�c��[RX5 URRH'nURR[
U55 M) gr.)rr*r�self_and_descendants�_dependency_processorsr[�DetectKeySwitch)r(rrs   r)r*�ManyToOneDP.__init__�s=���$�$�T�0��k�k�6�6�F��)�)�0�0���1F�G�7r,c94�l�UR(a�[R"XRRS5n[R"XRRS5n	UR95R
X64X&4Xh4Xi4Xy4X�4X�4/5 gUR96R
X64Xb4X%4XE4/5 grA�rrr�rrDr�r�)97r(r=rIrJrKrLrGrH�parent_post_updates�parent_pre_updatess98          r)rF�%ManyToOneDP.per_property_dependencies�s������",�":�":��[�[�4�4�e�#��",�!9�!9��[�[�4�4�d�"��
���#�#� �-�!�.��5��4�"�7�'�7�'�8��99
�
���#�#� �-��.�!�1�#�3�	�
r,c	��UR(a�U(dt[R"XRRS5n	U(a UR100R
XY4X�4/5 gUR101R
X%4XE4XY4/5 g[R"XRRS5n102UR103R
Xj4X�4X�4/5 gU(dEU(d UR104R
XE4XR4/5 gUR105R
XR4/5 gU(aUR106R
X44/5 ggrAr)r(r=r�r�rerGrHr]rhrrs           r)r\�"ManyToOneDP.per_state_dependencies�s@������&0�&>�&>����8�8�%�'�#�!��$�$�+�+�'�=�0�?����$�$�+�+�(�5�)�6�'�=���&0�%=�%=����8�8�$�&�"�� � �'�'�&�;�+�;�+�:���� �� � �'�'�"�/�*�1J�K��� � �'�'�*�)B�(C�D��� � �'�'�-�)F�(G�H�r,c	��URR(dURR(a�UH�nURX0RUR1075nU(dM2URR(aUR
5nOUR5nUH\nUcMURUSSURS9 URRSU5nUHup�p�URU108SS9 M M^ M� gg)NTr�r�r�)rr�r�r�r#r�sum�non_deletedr�rrr�)r(rorZr8r��todeleterd�tr�r�r�r�s            r)rp�ManyToOneDP.presort_deletes�s����<�<���$�,�,�"<�"<���#�9�9��8�8�T�%>�%>����7��|�|�1�1�#*�;�;�=��#*�#6�#6�#8��!)�� �=�$�!�1�1�!�%)�&.�!%���	2��!�K�K�8�8��5�I��/0�O�A�#�%�5�5�c�D�5�I�01�"*� �#=r,c	���UH�nURUSURS9 URR(dM;UR	X0R109UR5nU(dMjURHmnURU5SLdMURUSSURS9 URRSU5nUHupxp�URU	SS9 M Mo M� g)Nr�r�FTr�r�r�)r�rrr�r�r#rrfr6rr�)r(rorZr8r�rdr110r�r�r�r�s           r)rt�ManyToOneDP.presort_saves�s����E��%�%�e�u�4�9�9�%�M��|�|�)�)�)�#�9�9��8�8�T�%>�%>����7�!(�����>�>�%�0�E�9�%�5�5� %�)-�*2�%)�Y�Y�	6��!%��� <� <�X�u� M�A�34���c� )� 9� 9�#�� 9� M�45�"1�r,c��UR(a�URR(d�URS:Xd�UH�nUR	USSSU5 U(dM!UR(dM4URX0RUR5nU(dMcURX1UR5SS9 M� gggg)Nr�T)r�)111rrr�rr�r�r#rr�r)r(rorZr8r�s     r)rw�ManyToOneDP.process_deletess�������L�L�.�.��(�(�E�1�112 ���!�!�%��t�T�9�E��5�T�-�-�-�'�=�=��x�x��)B�)B��G��w��)�)�!�g�k�k�m�4�*�� �2�/�
r,c113��UH�nURX0R[R5nU(dM6UR(a)URHnURX5SSUS5 M O'UR(aURUSSSUS5 UR(dM�URX1UR55 M� g)NFr�Tr�)114r�r#rrr�r�rfrr�r)r(rorZr8r�rds      r)r{�ManyToOneDP.process_saves's����E��5�5��x�x��!A�!A��G��w��=�=�!(�����)�)�!�$��y�%��"/��_�_��%�%��t�T�4��H���#�#�#��%�%�e����
�F�r,Nc	�T�Ub'UR(dURU5(agUbeUbbURRU5(dB[R115"S[R"U5<SU<SUR<S35 gU(dUc6[R"XRURR5 gURU5 [R"UURUURURRUS5 g)N�Object of type � not in session, � operation along '�' won't proceedF)rr��session�_contains_stater	�warn�116mapperutil�state_class_strrrr�rr%r�r�r�r(r8rdr�r�ror�s       r)r��ManyToOneDP._synchronize9s����=�� � �Y�%9�%9�%�%@�%@��
�!��!��%�%�5�5�e�<�<��I�I��-�-�e�4�i����L�
�117
���
��J�J�u�k�k�4�9�9�+F�+F�G�� � ��'��M�M����������	�	�+�+���
r,rmr.)
r�r�r�r�r*rFr\rprtrwr{r�r�rmr,r)r�r��s6��H�118%�N6I�pJ�0N�*�(G�2�&r,r�c�Z�\rSrSrSrSrSrSrSrSr	Sr119S	rS120rSr
SrS
rSrg)r�ibaxFor many-to-one relationships with no one-to-many backref,121searches for parents through the unit of work when a primary122key has changed and updates them.123 124Theoretically, this approach could be expanded to support transparent125deletion of objects referenced via many-to-one as well, although126the current attribute system doesn't do enough bookkeeping for this127to be efficient.128 129c���URR(a4UR(agSSURR5;agURUS5 g)NFc3�:# �UHnURv� M g7fr.)r)�.0rs  r)�	<genexpr>�=DetectKeySwitch.per_property_preprocessors.<locals>.<genexpr>ss���� ;���(�(� ;�s�)rr�rr;r<s  r)r>�*DetectKeySwitch.per_property_preprocessorsnsO���9�9�&�&��#�#���� $�	�	� ;� ;�����!�!�$��.r,c���[R"XRR5n[R"XSS5nUR130R
X#4/5 grl)rrCrrRrBr�r�)r(r=rIrGs    r)rM�*DetectKeySwitch.per_property_flush_actions{sJ��!�/�/��[�[�5L�5L�M���*�*�3�e�U�C�131������,�!;� <�=r,c��gr.rm)r(r=rZr]s    r)ri�'DetectKeySwitch.per_state_flush_actions�ryr,c��gr.rmrns   r)rp�DetectKeySwitch.presort_deletes�ryr,c�J�UR(dURX!5 ggr.�r�_process_key_switches)r(r=rZs   r)rt�DetectKeySwitch.presort_saves�s ���#�#�
�&�&�v�3�$r,c�l�U(d-UR(aURX5n[U5$grl)r�_key_switchers�bool)r(r=rZr]�ds     r)r�� DetectKeySwitch.prop_has_changes�s)���D�0�0��#�#�C�0�A���7�N�r,c��er.rmrns   r)rw�DetectKeySwitch.process_deletes�s���ur,c�L�UR(deURX!5 gr.r,rns   r)r{�DetectKeySwitch.process_saves�s!��132�#�#�#�#��"�"�6�5r,c���URSU4S5up4URU5nUHDnXe;dM133URX5(aURU5 M3URU5 MF U$)N�pk_switchersc�*�[5[54$r.)r�rmr,r)�<lambda>�0DetectKeySwitch._key_switchers.<locals>.<lambda>�s��S�U�C�E�Nr,)r��unionr�r�)r(r=rZ�switched�notswitched�	allstatesr�s       r)r0�DetectKeySwitch._key_switchers�sm�� #���
�T�"�$:�!134����N�N�;�/�	��A��!��$�$�S�,�,��L�L��O��O�O�A�&���r,c135��URX!5nU(GalURRR5GHBn[	UR136URR1375(dM5URnURUR5RXEURS9nU[RLdM�UcM�URR(aU(dM�USnOUn[R "U5nX�;dM�UR#USUR$5 [&R("UUR*UURURR,UUR$5 GME gg)N)r�rF)r0r�identity_map�138all_states�139issubclassr�rrVr5r#�getr!r�PASSIVE_NO_RESULTrr��instance_stater�rrr�rr%)	r(�deplistro�	switchersr8�dict_r��related_obj�
related_states	         r)r-�%DetectKeySwitch._process_key_switches�s3���'�'�	�;�	��#�*�*�7�7�B�B�D��!�%�,�,����0B�0B�C�C���140�141���.�.����2�6�6��$�*C�*C�7����:�#?�#?�?��+��y�y�(�(�&�$�&-�a�j��&-��$.�$=�$=�k�$J�M�$�1�!�1�1�!�5�$�*>�*>���
�
�)� �K�K�!� �K�K� �I�I�7�7�%� �0�0��-E�r,c��[UR5=(a6 [R"XURUR142R5$r.)r1r#rr�rrr%r�s   r)r��DetectKeySwitch._pks_changed�s9���E�I�I��143�4�#7�#7��d�k�k�4�9�9�+F�+F�$144�	145r,rmN)r�r�r�r��__doc__r>rMrirprtr�rwr{r0r-r�r�rmr,r)r�r�bs?��	�/�>�146
�
�4���6��#�J147r,r�c�J�\rSrSrSrSrSrSrSrSr	Sr148S	rS149rSr
g)
�ManyToManyDPi�c150�V�URRX&4X64Xe4Xr4Xt4Xu4Xs4/5 gr.�r�r�)r(r=rIrJrKrLrGrHs        r)rF�&ManyToManyDP.per_property_dependencies�sI��	������*��)��+��-��/��.��,�

�	151r,c	���U(dGU(a URRX%4XT4/5 gURRX%4XE4/5 gURRXd4Xc4/5 gr.rU)	r(r=r�r�rerGrHr]rhs	         r)r\�#ManyToManyDP.per_state_dependencies�st����� � �'�'�!�.��0J�K��� � �'�'�!�.��0J�K��
���#�#��.��0N�O�
r,c��UR(d0UH)nURX0RUR5 M+ ggr.)rr�r#r)r(rorZr8s    r)rp�ManyToManyDP.presort_deletess;���#�#� ���/�/��8�8�T�%>�%>�� �	$r,c	�b�UR(dKUHEnURX5(dMURX0R[R1525 MG URR(dgUH�nURX0R[R5nU(dM6URHknURU5SLdMURUSSURS9 URRSU5Hupgp�URUSS9 M Mm M� g)NFTr�r�r�)rr�r�r#rr rr�rrfr6r�rrr�)153r(rorZr8r�rdr�r�r�r�s154          r)rt�ManyToManyDP.presort_savess���#�#� ���$�$�Y�6�6��3�3��x�x��)?�)?�� ��|�|�)�)���E��5�5��x�x��!A�!A��G��w�$�_�_�E��~�~�e�,��5�!�1�1�!�%)�&.�!%���	2��04�{�{�/K�/K�$�e�0�O�A�#�&�5�5�c�D�5�I�0�-�r,c155�^�/n/n/nURU5n[5nUH�mURTURUR5nU(dM3UR5HCn	U	bUb156TU	4U;aM0n157UR
TU	U158SUS5(dM2URU1595 ME URU4SjUR555 M� UbURU5 URXXS5 g)NFr�c3�*># �UHoT4v� M160 g7fr.rm�r!r�r8s  �r)r"�/ManyToManyDP.process_deletes.<locals>.<genexpr>Ys����C�/B�!�u�:�/B���)161r�r�r�r#r�	non_addedr�r[r��	_run_crud)r(rorZ�secondary_delete�secondary_insert�secondary_update�	processed�tmpr�rdr�r8s           @r)rw�ManyToManyDP.process_deletes:s����������4�4�Y�?�	��e���E� �5�5��t�x�x��!:�!:��G��w�$�.�.�0�E��}�!�-�5�%�.�I�2M� �%'�N��,�,���&��!� �
��!�$�+�+�N�;�1�"�162�163�C�w�/@�/@�/B�C�C�1�4� ����S�!�����)9�	164r,c165��^
�/n/n/nURU5n[5nUGHm
UR(+=(a URUT
5nU(a"[R166[R-n	O![R[R-n	URT
URU	5n167U168(dM�U169RH?nUb170T
U4U;aM0nURT
X�SUS5(dM.URU5 MA U171RH@nUb172T
U4U;aM0nURT
UUSUS5(dM/URU5 MB URU
4SjU173RU174R-55 U(dGMyU175RH�n0n[ R"T
UR"USUR$R&5 [ R"UUR(USUR$R*5 URU5 M� GM UbURU5 UR-XXS5 g)NFr�r�c3�*># �UHoT4v� M176 g7fr.rmr_s  �r)r"�-ManyToManyDP.process_saves.<locals>.<genexpr>�s����O�/N�!�u�:�/N�ra�old_)r�r�rr�rr r~rr�r#r�r�r[rfr�r�rrrr%r�secondary_synchronize_pairsrc)r(rorZrdrerfrgrh�need_cascade_pksr�r�rdr�r8s             @r)r{�ManyToManyDP.process_savesbs=����������4�4�Y�?�	��e���E�#'�#7�#7�7� �D�<M�<M��5�=�� ��*�*� �:�:�;���4�4� �:�:�;�� �5�5�e�T�X�X�w�O�G��w�$�]�]�E� �,�%���9�1L� �%'�N��,�,��u�e�Y����!�$�+�+�N�;�+�%�_�_�E� �,�%���9�1L� �%'�N��,�,���&��!� �
��!�$�+�+�N�;�-��177�178�O�w�}�}�w���/N�O�O�#�#�!(�!2�!2��)+�����!� �K�K�*�"� �I�I�7�7�����!� �K�K�*�"� �I�I�A�A��)�/�/��?�#"3�W�|� ����S�!�����)9�	179r,c
�v�URRUR5nU(Ga"USnURR	5R[R"URRVs/sHAnURU;dMU[R"URURS9:HPMC sn65nURX�5n	U	R5(a\U	R[U5:waC[ R""SURR$[U5U	R4-5eU(Ga%USnURR'5R[R"URRVs/sHDnURU;dMU[R"SUR-URS9:HPMF sn65nURX�5n	U	R5(a\U	R[U5:waC[ R""SURR$[U5U	R4-5eU(a,URR)5nURX�5 ggs snfs snf)Nr)�type_zRDELETE statement on table '%s' expected to delete %d row(s); Only %d were matched.rmzRUPDATE statement on table '%s' expected to update %d row(s); Only %d were matched.)�transaction�180connectionrrr��wherer�and_r�r#�	bindparam�type�execute�supports_sane_multi_rowcount�rowcount�lenr�StaleDataError�descriptionr��insert)181r(rorerfrdrtr�r��	statement�results182          r)rc�ManyToManyDP._run_crud�sM���*�*�5�5�d�k�k�B�183��-�a�0�N����-�-�/�5�5����"&���!1�!1��!1�A��5�5�N�2�@��S�]�]�1�5�5����?�?�!1����I� �'�'�	�D�F��3�3�5�5��/�/�S�)9�%:�:��(�(�7����2�2��,�-���������-�a�0�N����-�-�/�5�5����"&���!1�!1��!1�A��5�5�N�2�I��S�]�]�6�A�E�E�>����H�H�!1����I� �'�'�	�D�F��3�3�5�5��/�/�S�)9�%:�:��(�(�7����2�2��,�-������������-�-�/�I����y�;���a��4s�>J1�0J1�(J6�3J6c	���URU5 UcgUbsURRU5(dSUR(dA[R184"S[R"U5<SU<SUR<S35 g[R"XRX0RR5 [R"UURUURR5 g)NFrrrrT)r�rrrfr	rrrrr�
populate_dictrr%rrnrs       r)r��ManyToManyDP._synchronize�s���	
���U�#��=����Y�%6�%6�%F�%F�u�%M�%M��=�=��	�	�"�1�1�%�8�)�T�Y�Y�P��185�����;�;��	�	�0K�0K�	186�	
�����K�K���I�I�1�1�		187�r,c�n�[R"XURURR5$r.r�r�s   r)r��ManyToManyDP._pks_changedr�r,rmN)r�r�r�r�rFr\rprtrwr{rcr�r�r�rmr,r)rSrS�s6��188�6�2189� J�D&190�PK191�Z;<�z�@192r,rSN)rQ�193__future__r�rrrrr	r�194interfacesr195rrr&rrr�r�r�rSr/rmr,r)�<module>r�s���!�"����� �"�!�!����n?�n?�b	r196�%�r197�j	^�%�^�Br198�)�r199�jx200�&�x201�x	�{�
�{����r,
codekingpro/portable-devtools · Team Ai