B
    þ¦†\…
  ã               @   s  d 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ƒ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.
é   )Úfixturesc               @   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__1   s    zScreen.__init__)N)r   r   r   r   r   r   r   r   r   0   s   r   c               @   s"   e Zd Zdd„ ZejZdd„ ZdS )ÚFooc             C   s   d| _ d| _|| _d S )Nzim datazim stuff)ÚdataÚstuffÚmoredata)r   r   r   r   r   r   7   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__>   s    z
Foo.__eq__N)r   r   r   r   ÚobjectÚ__hash__r   r   r   r   r   r   6   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   G   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   M   s    z
Bar.__eq__c             C   s   d| j | jf S )NzBar(%d, %d))r   r   )r   r   r   r   Ú__str__T   s    zBar.__str__N)r   r   r   r   r   r   r   r!   r   r   r   r   r   F   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   Y   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   ]   s    zOldSchool.__eq__N)r   r   r   r   r   r   r   r   r   r"   X   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   f   s    z OldSchoolWithoutCompare.__init__N)r   r   r   r   r   r   r   r   r#   e   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   l   s    zBarWithoutCompare.__init__c             C   s   d| j | jf S )NzBar(%d, %d))r   r   )r   r   r   r   r!   p   s    zBarWithoutCompare.__str__N)r   r   r   r   r!   r   r   r   r   r$   k   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   u   s    zNotComparable.__init__c             C   s   t | ƒS )N)Úid)r   r   r   r   r   x   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%   t   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)r*   )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ComparableEntityr   r	   r
   r   r   r   r   r   r   r   r   r   r"   r#   r$   r%   r)   r   r   r   r   Ú<module>
   s"   	