B
    KLcF  ใ               @   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               @   s   e Zd ZdS )ฺUserN)ฺ__name__ฺ
__module__ฺ__qualname__ฉ r
   r
   ๚<lib/python3.7/site-packages/sqlalchemy/testing/pickleable.pyr      s   r   c               @   s   e Zd ZdS )ฺOrderN)r   r   r	   r
   r
   r
   r   r      s   r   c               @   s   e Zd ZdS )ฺ	DingalingN)r   r   r	   r
   r
   r
   r   r      s   r   c               @   s   e Zd ZdS )ฺ	EmailUserN)r   r   r	   r
   r
   r
   r   r      s   r   c               @   s   e Zd ZdS )ฺAddressN)r   r   r	   r
   r
   r
   r   r   !   s   r   c               @   s   e Zd ZdS )ฺChild1N)r   r   r	   r
   r
   r
   r   r   &   s   r   c               @   s   e Zd ZdS )ฺChild2N)r   r   r	   r
   r
   r
   r   r   *   s   r   c               @   s   e Zd ZdS )ฺParentN)r   r   r	   r
   r
   r
   r   r   .   s   r   c               @   s   e Zd ZdddZdS )ฺScreenNc             C   s   || _ || _d S )N)ฺobjฺparent)ฺselfr   r   r
   r
   r   ฺ__init__3   s    zScreen.__init__)N)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   s   r   c               @   s   e Zd ZdS )ฺAddressWMixinN)r   r   r	   r
   r
   r
   r   r   <   s   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 )N)r   r   r   )r   ฺotherr
   r
   r   ฺ__eq__H   s    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   s   || _ || _d S )N)ฺxฺy)r   r$   r%   r
   r
   r   r   Q   s    zBar.__init__c             C   s$   |j | j ko"|j| jko"|j| jkS )N)ฺ	__class__r$   r%   )r   r   r
   r
   r   r    W   s    z
Bar.__eq__c             C   s   d| j | jf S )NzBar(%d, %d))r$   r%   )r   r
   r
   r   ฺ__str__^   s    zBar.__str__N)r   r   r	   r   r!   r"   r    r'   r
   r
   r
   r   r#   P   s   r#   c               @   s   e Zd Zdd Zdd ZdS )ฺ	OldSchoolc             C   s   || _ || _d S )N)r$   r%   )r   r$   r%   r
   r
   r   r   c   s    zOldSchool.__init__c             C   s$   |j | j ko"|j| jko"|j| jkS )N)r&   r$   r%   )r   r   r
   r
   r   r    g   s    zOldSchool.__eq__N)r   r   r	   r   r    r
   r
   r
   r   r(   b   s   r(   c               @   s   e Zd Zdd ZdS )ฺOldSchoolWithoutComparec             C   s   || _ || _d S )N)r$   r%   )r   r$   r%   r
   r
   r   r   p   s    z OldSchoolWithoutCompare.__init__N)r   r   r	   r   r
   r
   r
   r   r)   o   s   r)   c               @   s   e Zd Zdd Zdd ZdS )ฺBarWithoutComparec             C   s   || _ || _d S )N)r$   r%   )r   r$   r%   r
   r
   r   r   v   s    zBarWithoutCompare.__init__c             C   s   d| j | jf S )NzBar(%d, %d))r$   r%   )r   r
   r
   r   r'   z   s    zBarWithoutCompare.__str__N)r   r   r	   r   r'   r
   r
   r
   r   r*   u   s   r*   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
ฺNotComparablec             C   s
   || _ d S )N)r   )r   r   r
   r
   r   r      s    zNotComparable.__init__c             C   s   t | S )N)ฺid)r   r
   r
   r   r"      s    zNotComparable.__hash__c             C   s   t S )N)ฺNotImplemented)r   r   r
   r
   r   r       s    zNotComparable.__eq__c             C   s   t S )N)r-   )r   r   r
   r
   r   ฺ__ne__   s    zNotComparable.__ne__N)r   r   r	   r   r"   r    r.   r
   r
   r
   r   r+   ~   s   r+   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
ฺBrokenComparablec             C   s
   || _ d S )N)r   )r   r   r
   r
   r   r      s    zBrokenComparable.__init__c             C   s   t | S )N)r,   )r   r
   r
   r   r"      s    zBrokenComparable.__hash__c             C   s   t d S )N)ฺNotImplementedError)r   r   r
   r
   r   r       s    zBrokenComparable.__eq__c             C   s   t d S )N)r0   )r   r   r
   r
   r   r.      s    zBrokenComparable.__ne__N)r   r   r	   r   r"   r    r.   r
   r
   r
   r   r/      s   r/   N)ฺ__doc__ฺ r   Zschemar   ฺtypesr   ZComparableEntityr   r   r   r   r   r   r   r   r!   r   r   r   r   r#   r(   r)   r*   r+   r/   r
   r
   r
   r   ฺ<module>
   s*   	