o
    Rc                     @   sZ  d Z ddlmZ ddlmZ ddlmZ G dd dejZG dd	 d	ejZ	G d
d dejZ
G dd deZG dd dejZG dd dejZG dd dejZG dd dejZG dd deZG dd deZG dd deej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ZG d&d' d'eZG d(d) d)eZd*S )+zOClasses used in pickling tests, need to be at the module level for
unpickling.
   )fixtures   )Column)Stringc                   @      e Zd ZdS )UserN__name__
__module____qualname__ r   r   ?D:\Flask\env\Lib\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   .   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__3      
zScreen.__init__r   r	   r
   r   r   r   r   r   r   r   2   s    r   c                   @   s   e Zd ZeeZdS )MixinN)r	   r
   r   r   r   Zemail_addressr   r   r   r   r   8       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   A   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__H   
   

z
Foo.__eq__N)r#   )r	   r
   r   r   object__hash__r*   r   r   r   r   r"   @   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   r0   r1   r   r   r   r   Q   r   zBar.__init__c                 C   $   |j | j u o|j| jko|j| jkS r   	__class__r0   r1   r(   r   r   r   r*   W   r+   z
Bar.__eq__c                 C      d| j | jf S NzBar(%d, %d)r/   r   r   r   r   __str__^      zBar.__str__N)r	   r
   r   r   r,   r-   r*   r9   r   r   r   r   r.   P   s
    r.   c                   @      e Zd Zdd Zdd ZdS )	OldSchoolc                 C   r   r   r/   r2   r   r   r   r   c   r   zOldSchool.__init__c                 C   r3   r   r4   r(   r   r   r   r*   g   r+   zOldSchool.__eq__N)r	   r
   r   r   r*   r   r   r   r   r<   b       r<   c                   @   s   e Zd Zdd ZdS )OldSchoolWithoutComparec                 C   r   r   r/   r2   r   r   r   r   p   r   z OldSchoolWithoutCompare.__init__Nr   r   r   r   r   r>   o   r    r>   c                   @   r;   )BarWithoutComparec                 C   r   r   r/   r2   r   r   r   r   v   r   zBarWithoutCompare.__init__c                 C   r6   r7   r/   r8   r   r   r   r9   z   r:   zBarWithoutCompare.__str__N)r	   r
   r   r   r9   r   r   r   r   r?   u   r=   r?   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   idr8   r   r   r   r-         zNotComparable.__hash__c                 C      t S r   NotImplementedr(   r   r   r   r*         zNotComparable.__eq__c                 C   rJ   r   rK   r(   r   r   r   __ne__   rM   zNotComparable.__ne__Nr	   r
   r   r   r-   r*   rN   r   r   r   r   rA   ~   
    rA   c                   @   r@   )
BrokenComparablec                 C   rB   r   rC   rD   r   r   r   r      rE   zBrokenComparable.__init__c                 C   rF   r   rG   r8   r   r   r   r-      rI   zBrokenComparable.__hash__c                 C      t r   NotImplementedErrorr(   r   r   r   r*      rM   zBrokenComparable.__eq__c                 C   rR   r   rS   r(   r   r   r   rN      rM   zBrokenComparable.__ne__NrO   r   r   r   r   rQ      rP   rQ   N)__doc__ r   Zschemar   typesr   ZComparableEntityr   r   r   r   r   r   r   r   r,   r   r   r!   r"   r.   r<   r>   r?   rA   rQ   r   r   r   r   <module>   s,   	