
    [h                    d    d Z ddlmZ ddlmZ ddlmZ ddlmZ d Z	d Z
d	 Zd
 Zd Zd Zd ZdS )zgprivate module containing functions used for copying data
between instances based on join conditions.

    )annotations   )exc)util)PassiveFlagc           
     \   | j         }|j         }|D ]\  }	}
	 |j        |	         }| j        |j                 j                            | |t          j                  }n0# t          j	        $ r}t          d||	||
|           Y d }~nd }~ww xY w	 |j        |
         }|j        |j                 j                            |||d            n0# t          j	        $ r}t          d||	||
|           Y d }~nd }~ww xY w|r0|	j        r)|
j        r"|
                    |	          rd|j        d||
f<   d S )NFTpk_cascaded)dict_columntopropertymanagerkeyimplgetr   PASSIVE_OFFr   UnmappedColumnError_raise_col_to_propsetprimary_key
references
attributes)sourcesource_mapperdestdest_mappersynchronize_pairs	uowcommitflag_cascaded_pkssource_dict	dest_dictlrpropvalueerrs                 b/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/sqlalchemy/orm/sync.pypopulater&      s    +K	I! B B1	M 215DN48,155[%< EE & 	M 	M 	MumQQLLLLLLLL	M	L03DL"'++D)UDIIII& 	L 	L 	Lt]A{AsKKKKKKKK	L 	B	B 	B Q		B >BI -q!9:9B Bs0   AAB	+BB	:CC5C00C5c           
     >   |D ]\  }}	 |j         |         }| |j                 }n0# t          j        $ r}t	          d|||||           Y d }~nd }~ww xY w	 |j         |         }|| |j        <   j# t          j        $ r}t	          d|||||           Y d }~d }~ww xY wd S )NFT)r   r   r   r   r   )r   r   r   r    r!   r"   r#   r$   s           r%   bulk_populate_inherit_keysr(   A   s    ! N N1	O 215D)EE& 	O 	O 	OumQq#NNNNNNNN	O	N 215D$)K!!& 	N 	N 	Nt]A}aMMMMMMMM	NN Ns,   $AAAA--B<BBc                f   |D ]\  }}|j         rS|                    | | j        |          t          j        vr+t          d| d| dt          j        |            d          	 |                    | | j        |d            ~# t          j	        $ r}t          dd ||||           Y d }~d }~ww xY wd S )NzDependency rule on column 'z)' tried to blank-out primary key column 'z' on instance ''T)r   _get_state_attr_by_columnr
   orm_util	_none_setAssertionError	state_str_set_state_attr_by_columnr   r   r   )r   r   r   r    r!   r$   s         r%   clearr1   Q   s   ! C C1M		55dDIqII%& & !Ia I II I-5-?-E-EI I I  
	C11$	1dKKKK& 	C 	C 	CtT1k1cBBBBBBBB	CC Cs   #BB.B))B.c           
     H   |D ]\  }}	 |                     |                                 |          }|                    | | j        |t          j                  }n0# t          j        $ r}	t          d||d ||	           Y d }	~	nd }	~	ww xY w|||j	        <   ||||j	        z   <   d S N)passiveF)
_get_committed_attr_by_columnobjr+   r
   r   r   r   r   r   r   )
r   r   r   
old_prefixr   r    r!   oldvaluer#   r$   s
             r%   updater9   c   s    ! , ,1	F$BB

a H ";;Q0G <  EE & 	F 	F 	FumQaEEEEEEEE	FQU#+Z!%  , ,s   AAB)BBc           
         |D ]i\  }}	 |                     | | j        |t          j                  }n0# t          j        $ r}t          d||d ||           Y d }~nd }~ww xY w|||j        <   jd S r3   )r+   r
   r   r   r   r   r   r   )r   r   dict_r   r    r!   r#   r$   s           r%   populate_dictr<   r   s    !  1	F!;;Q0G <  EE & 	F 	F 	FumQaEEEEEEEE	F ae s   (2AAAc           
        |D ]\  }}	 |j         |         }n0# t          j        $ r}t          d||d||           Y d}~nd}~ww xY w|                     ||j        t          j                  }t          |j	                  r dS dS )zpreturn true if the source object has changes from an old to a
    new value on the given synchronize pairs

    FNT)
r   r   r   r   get_attribute_historyr   r   PASSIVE_NO_INITIALIZEbooldeleted)	r   r   r   r   r    r!   r"   r$   historys	            r%   source_modifiedrC   ~   s    
 "  1	F 215DD& 	F 	F 	FumQaEEEEEEEE	F11DHk?
 
    	44	 us   A?Ac           	     |    | rt          j        d|d|d          |t          j        d|d|d|d          |)Nz0Can't execute sync rule for destination column 'z'; mapper 'z' does not map this column.  Try using an explicit `foreign_keys` collection which does not include this column (or use a viewonly=True relation).z+Can't execute sync rule for source column 'zx' does not map this column.  Try using an explicit `foreign_keys` collection which does not include destination column 'z$' (or use a viewonly=True relation).)r   r   )isdestr   source_columnr   dest_columnr$   s         r%   r   r      sw      %%
 -8KK	F
 
 	 %% }}mmm[[[:
 
 	    N)__doc__
__future__r    r   r   r,   baser   r&   r(   r1   r9   r<   rC   r    rH   r%   <module>rN      s    
 # " " " " "                  (B (B (BVN N N C C C$, , ,	 	 	  &    rH   