Ë
    ðmxi  ã                  óŒ   — d dl mZ d dlZddlmZ ddlmZ  e	«       Z
 G d„ d«      Z e	«       Z G d„ d	«      Z G d
„ dee«      Zy)é    )ÚannotationsNé   )Úexc)ÚWriteOnlyCollectionc                  ó   — e Zd Zd„ Zd„ Zy)ÚBasicEntityc                óN   — |j                  «       D ]  \  }}t        | ||«       Œ y ©N)ÚitemsÚsetattr)ÚselfÚkwÚkeyÚvalues       úR/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/testing/entities.pyÚ__init__zBasicEntity.__init__   s'   € ØŸ(™(›*ò 	&‰JˆC�Ü�D˜#˜uÕ%ñ	&ó    c                ó  — t        | «      t        v rt        j                  | «      S t        j	                  t        | «      «       	 | j
                  j                  ›ddj                  t        | j                  j                  «       «      D �cg c]$  }|j                  d«      s|›dt        | |«      ›�‘Œ& c}«      ›d�t        j                  t        | «      «       S c c}w # t        j                  t        | «      «       w xY w)Nú(z, Ú_ú=ú))ÚidÚ_repr_stackÚobjectÚ__repr__ÚaddÚ	__class__Ú__name__ÚjoinÚsortedÚ__dict__ÚkeysÚ
startswithÚgetattrÚremove)r   r   s     r   r   zBasicEntity.__repr__   sÁ   € Üˆd‹8”{Ñ"Ü—?‘? 4Ó(Ð(Ü�‰œ˜4›Ô!ð	)à—‘×(Ó(Ø—	‘	ô $*¨$¯-©-×*<Ñ*<Ó*>Ó#?öàØ"Ÿ~™~¨cÔ2ò $'¬°°cÔ(:Ò;òõð	ô ×Ñœr $›xÕ(ùòøô ×Ñœr $›xÕ(ús   ÁAC# Â)CÂ6	C# ÃC# Ã# DN)r   Ú
__module__Ú__qualname__r   r   © r   r   r   r      s   „ ò&ó)r   r   c                  ó   — e Zd Zd„ Zd„ Zy)ÚComparableMixinc                ó&   — | j                  |«       S r
   )Ú__eq__)r   Úothers     r   Ú__ne__zComparableMixin.__ne__/   s   € Ø—;‘;˜uÓ%Ð%Ð%r   c                óÖ  — || u ry| j                   |j                   k(  syt        | «      t        v ryt        j                  t        | «      «       	 	 t        j
                  j                  j                  | «      j                  }|€| }|}n|�|}| }n| }|}t        |j                  «      D �]
  }|j                  d«      rŒt        ||«      }t        |t         «      rŒ3	 t        ||«      }t+        |d«      r˜t        |t,        «      sˆt+        |d«      rDt+        |d«      s8t        |«      t        |«      k7  sŒŒ t        j)                  t        | «      «       yt/        |«      t/        |«      k7  sŒÄ t        j)                  t        | «      «       y|€Œç||k7  sŒí t        j)                  t        | «      «       y 	 t        j)                  t        | «      «       y# t        j
                  j                  j                  $ r d}Y �Œ�w xY w# t"        t$        j&                  f$ r" Y  t        j)                  t        | «      «       yw xY w# t        j)                  t        | «      «       w xY w)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   r.   Úself_keyÚaÚbÚattrr   Úbattrs           r   r-   zComparableMixin.__eq__2   s  € ð �D‰=ØØ—‘ 5§?¡?Ò2Øäˆd‹8Ô'Ñ'ØÜ×ÑœR ›XÔ&ð.	.ð ÜŸ6™6×,Ñ,×;Ñ;¸DÓA×EÑE�ð ˆ}Ø�Ø‘ØÐ%Ø�Ø‘à�Ø�ä˜QŸZ™ZÓ(ó %�Ø—?‘? 3Ô'Øä  4Ó(�ä˜eÔ%8Ô9Øð!ä# A tÓ,�Eô ˜5 *Ô-´jÀÌÔ6LÜ˜u mÔ4¼WØ˜vô>ô   ›;¬$¨u«+Ó5Ø#(ô ×#Ñ#¤B t£HÕ-ô ˜u›:¬¨U«Ó3Ø#(ô ×#Ñ#¤B t£HÕ-ð	 Ñ(¨U°e«^Ø$ô ×#Ñ#¤B t£HÕ-ð;%ð6 ä×#Ñ#¤B t£HÕ-øôU —6‘6—:‘:×&Ñ&ò  Ø“ð ûô2 '¬×(DÑ(DÐEò !Ù ô  ×#Ñ#¤B t£HÕ-ð#!ûô" ×#Ñ#¤B t£HÕ-úsz   Á3G ÂAI Ã H
Ã,AI Ä8I ÅI Å0I ÆI ÆI ÆI Æ9I Ç)HÈI ÈHÈI È
IÈ#I ÉIÉI É I(N)r   r'   r(   r/   r-   r)   r   r   r+   r+   .   s   „ ò&ó>.r   r+   c                  ó   — e Zd Zd„ Zy)ÚComparableEntityc                ó,   — t        | j                  «      S r
   )Úhashr   )r   s    r   Ú__hash__zComparableEntity.__hash__t   s   € Ü�D—N‘NÓ#Ð#r   N)r   r'   r(   rJ   r)   r   r   rG   rG   s   s   „ ó$r   rG   )Ú
__future__r   Ú
sqlalchemyr4   Ú r   r<   Úorm.writeonlyr   r@   r   r   r3   r+   rG   r)   r   r   ú<module>rO      sI   ðõ #ã Ý Ý /á‹e€÷)ñ )ñ0 “5Ð ÷B.ñ B.ôJ$�¨õ $r   