
    ,h                        S SK Jr  S SKrSSKJr  SSKJr  \	" 5       r
 " S S5      r\	" 5       r " S S	5      r " S
 S\\5      rg)    )annotationsN   )exc)WriteOnlyCollectionc                       \ rS rSrS rS rSrg)BasicEntity   c                N    UR                  5        H  u  p#[        XU5        M     g N)itemssetattr)selfkwkeyvalues       S/var/www/auris/envauris/lib/python3.13/site-packages/sqlalchemy/testing/entities.py__init__BasicEntity.__init__   s    ((*JCDu% %    c                *   [        U 5      [        ;   a  [        R                  U 5      $ [        R	                  [        U 5      5         U R
                  R                  < SSR                  [        U R                  R                  5       5       Vs/ s H-  nUR                  S5      (       a  M  U< S[        X5      < 3PM/     sn5      < S3[        R                  [        U 5      5        $ s  snf ! [        R                  [        U 5      5        f = f)N(z, _=))id_repr_stackobject__repr__add	__class____name__joinsorted__dict__keys
startswithgetattrremove)r   r   s     r   r   BasicEntity.__repr__   s    d8{"??4((4!	)((		 $*$--*<*<*>#?#?C"~~c2 <3(:;#?	 r$x( r$x(s%   AC2 C-.C-
C2 -C2 2 D N)r!   
__module____qualname____firstlineno__r   r   __static_attributes__r*   r   r   r   r      s    &)r   r   c                       \ rS rSrS rS rSrg)ComparableMixin.   c                .    U R                  U5      (       + $ r   )__eq__)r   others     r   __ne__ComparableMixin.__ne__/   s    ;;u%%%r   c                6   XL a  gU R                   UR                   :X  d  g[        U 5      [        ;   a  g[        R                  [        U 5      5          [        R
                  R                  R                  U 5      R                  nUc  U nUnOUb  UnU nOU nUn[        UR                  5       GH2  nUR                  S5      (       a  M  [        X55      n[        U[         5      (       a  M>   [        XE5      n[+        US5      (       a  [        U[,        5      (       d  [+        US5      (       aK  [+        US5      (       d:  [        U5      [        U5      :w  a     [        R)                  [        U 5      5        gM  [/        U5      [/        U5      :w  a     [        R)                  [        U 5      5        gGM  Uc  GM  Xg:w  d  GM    [        R)                  [        U 5      5        g    [        R)                  [        U 5      5        g! [        R
                  R                  R                   a    Sn GNf = f! ["        [$        R&                  4 a"       [        R)                  [        U 5      5        gf = f! [        R)                  [        U 5      5        f = f)z'Deep, sparse compare.

Deeply compare two entities, following the non-None attributes of the
non-persisted object, if possible.

TFNr   __iter____getitem__r%   )r    r   _recursion_stackr   saorm
attributesinstance_stater   r   NO_STATElistr$   r&   r'   
isinstancer   AttributeErrorsa_excUnboundExecutionErrorr(   hasattrstrset)r   r4   self_keyabattrr   battrs           r   r3   ComparableMixin.__eq__2   s     =5??2d8''RX&.	. 66,,;;DAEE }%QZZ(??3''(e%899!#A,E 5*--j6L6Lum44Wv> >  ;$u+5#( ##BtH- 6 u:U3#( ##BtH- 4 (U^$ ##BtH-; )6 ##BtH-U 66::&&   2 '(D(DE !   ##BtH-#!" ##BtH-sn   3H A'I8 0H9;A!I8 ;I8 5I8 >I8 I8 &I8 *H62I8 5H66I8 9I5I8 4I55I8 8 Jr*   N)r!   r+   r,   r-   r5   r3   r.   r*   r   r   r0   r0   .   s    &>.r   r0   c                      \ rS rSrS rSrg)ComparableEntitys   c                ,    [        U R                  5      $ r   )hashr    )r   s    r   __hash__ComparableEntity.__hash__t   s    DNN##r   r*   N)r!   r+   r,   r-   rS   r.   r*   r   r   rO   rO   s   s    $r   rO   )
__future__r   
sqlalchemyr;    r   rC   orm.writeonlyr   rG   r   r   r:   r0   rO   r*   r   r   <module>rY      sI    #   /e) )0 5 B. B.J$ $r   