U
    [¢hF  ã                   @   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   úA/tmp/pip-unpacked-wheel-joqu7d3y/sqlalchemy/testing/pickleable.pyr      s   r   c                   @   s   e Zd ZdS )ÚOrderNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )Ú	DingalingNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )Ú	EmailUserNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )ÚAddressNr   r   r   r   r   r   !   s   r   c                   @   s   e Zd ZdS )ÚChild1Nr   r   r   r   r   r   &   s   r   c                   @   s   e Zd ZdS )ÚChild2Nr   r   r   r   r   r   *   s   r   c                   @   s   e Zd ZdS )ÚParentNr   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 )ÚAddressWMixinNr   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 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 r   ©Ú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 r   ©Ú	__class__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   Ú__str__^   s    zBar.__str__N)r   r	   r
   r   r&   r'   r%   r1   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 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 r   r-   r#   r   r   r   r%   g   s
    
ÿ
ýzOldSchool.__eq__N)r   r	   r
   r   r%   r   r   r   r   r2   b   s   r2   c                   @   s   e Zd Zdd„ ZdS )ÚOldSchoolWithoutComparec                 C   s   || _ || _d S r   r)   r,   r   r   r   r   p   s    z OldSchoolWithoutCompare.__init__Nr   r   r   r   r   r3   o   s   r3   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚBarWithoutComparec                 C   s   || _ || _d S r   r)   r,   r   r   r   r   v   s    zBarWithoutCompare.__init__c                 C   s   d| j | jf S r/   r)   r0   r   r   r   r1   z   s    zBarWithoutCompare.__str__N)r   r	   r
   r   r1   r   r   r   r   r4   u   s   r4   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 r   ©r    ©r   r    r   r   r   r      s    zNotComparable.__init__c                 C   s   t | ƒS r   ©Úidr0   r   r   r   r'   ‚   s    zNotComparable.__hash__c                 C   s   t S r   ©ÚNotImplementedr#   r   r   r   r%   …   s    zNotComparable.__eq__c                 C   s   t S r   r:   r#   r   r   r   Ú__ne__ˆ   s    zNotComparable.__ne__N©r   r	   r
   r   r'   r%   r<   r   r   r   r   r5   ~   s   r5   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 r   r6   r7   r   r   r   r      s    zBrokenComparable.__init__c                 C   s   t | ƒS r   r8   r0   r   r   r   r'      s    zBrokenComparable.__hash__c                 C   s   t ‚d S r   ©ÚNotImplementedErrorr#   r   r   r   r%   “   s    zBrokenComparable.__eq__c                 C   s   t ‚d S r   r?   r#   r   r   r   r<   –   s    zBrokenComparable.__ne__Nr=   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(   r2   r3   r4   r5   r>   r   r   r   r   Ú<module>   s*   	