o
     h                     @  sH  d Z ddlmZ ddlmZ ddlmZ ddlmZ G dd	 d	eZ	G d
d deZ
G dd deZG dd de	ZG dd deZG dd deZG dd deZG dd deZG dd dZG dd dZG dd deeZG dd dZG d d! d!ZG d"d# d#ZG d$d% d%ZG d&d' d'ZG d(d) d)ZG d*d+ d+Zd,S )-zOClasses used in pickling tests, need to be at the module level for
unpickling.
    )annotations   )ComparableEntity   )Column)Stringc                   @     e Zd ZdS )UserN__name__
__module____qualname__ r   r   P/var/www/html/venv/lib/python3.10/site-packages/sqlalchemy/testing/pickleable.pyr	          r	   c                   @  r   )OrderNr
   r   r   r   r   r      r   r   c                   @  r   )	DingalingNr
   r   r   r   r   r      r   r   c                   @  r   )	EmailUserNr
   r   r   r   r   r   !   r   r   c                   @  r   )AddressNr
   r   r   r   r   r   %   r   r   c                   @  r   )Child1Nr
   r   r   r   r   r   *   r   r   c                   @  r   )Child2Nr
   r   r   r   r   r   .   r   r   c                   @  r   )ParentNr
   r   r   r   r   r   2   r   r   c                   @  s   e Zd ZdddZdS )ScreenNc                 C     || _ || _d S N)objparent)selfr   r   r   r   r   __init__7      
zScreen.__init__r   r   r   r   r   r   r   r   r   r   6   s    r   c                   @  s   e Zd ZeeZdS )MixinN)r   r   r   r   r   email_addressr   r   r   r   r!   <       r!   c                   @  r   )AddressWMixinNr
   r   r   r   r   r$   @   r   r$   c                   @  s$   e Zd ZdddZejZdd ZdS )Fooim stuffc                 C  s   d| _ || _|| _d S )Nzim datadatastuffmoredata)r   r*   r)   r   r   r   r   E   s   
zFoo.__init__c                 C  s$   |j | j ko|j| jko|j| jkS r   r'   r   otherr   r   r   __eq__L   
   

z
Foo.__eq__N)r&   )r   r   r   r   object__hash__r-   r   r   r   r   r%   D   s    
r%   c                   @  s*   e Zd Zdd ZejZdd Zdd ZdS )Barc                 C  r   r   xyr   r3   r4   r   r   r   r   U   r   zBar.__init__c                 C  $   |j | j u o|j| jko|j| jkS r   	__class__r3   r4   r+   r   r   r   r-   [   r.   z
Bar.__eq__c                 C     d| j | jf S NzBar(%d, %d)r2   r   r   r   r   __str__b      zBar.__str__N)r   r   r   r   r/   r0   r-   r<   r   r   r   r   r1   T   s
    r1   c                   @     e Zd Zdd Zdd ZdS )	OldSchoolc                 C  r   r   r2   r5   r   r   r   r   g   r   zOldSchool.__init__c                 C  r6   r   r7   r+   r   r   r   r-   k   r.   zOldSchool.__eq__N)r   r   r   r   r-   r   r   r   r   r?   f       r?   c                   @  s   e Zd Zdd ZdS )OldSchoolWithoutComparec                 C  r   r   r2   r5   r   r   r   r   t   r   z OldSchoolWithoutCompare.__init__Nr    r   r   r   r   rA   s   r#   rA   c                   @  r>   )BarWithoutComparec                 C  r   r   r2   r5   r   r   r   r   z   r   zBarWithoutCompare.__init__c                 C  r9   r:   r2   r;   r   r   r   r<   ~   r=   zBarWithoutCompare.__str__N)r   r   r   r   r<   r   r   r   r   rB   y   r@   rB   c                   @  ,   e Zd Zdd Zdd Zdd Zdd Zd	S )
NotComparablec                 C  
   || _ d S r   r(   r   r(   r   r   r   r         
zNotComparable.__init__c                 C     t | S r   idr;   r   r   r   r0         zNotComparable.__hash__c                 C     t S r   NotImplementedr+   r   r   r   r-         zNotComparable.__eq__c                 C  rM   r   rN   r+   r   r   r   __ne__   rP   zNotComparable.__ne__Nr   r   r   r   r0   r-   rQ   r   r   r   r   rD      
    rD   c                   @  rC   )
BrokenComparablec                 C  rE   r   rF   rG   r   r   r   r      rH   zBrokenComparable.__init__c                 C  rI   r   rJ   r;   r   r   r   r0      rL   zBrokenComparable.__hash__c                 C     t r   NotImplementedErrorr+   r   r   r   r-      rP   zBrokenComparable.__eq__c                 C  rU   r   rV   r+   r   r   r   rQ      rP   zBrokenComparable.__ne__NrR   r   r   r   r   rT      rS   rT   N)__doc__
__future__r   entitiesr   schemar   typesr   r	   r   r   r   r   r   r   r   r   r!   r$   r%   r1   r?   rA   rB   rD   rT   r   r   r   r   <module>   s.   		