B
    όΟf·  γ               @   s~   d dl mZ d dlm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 )ι    )Ϊzip_longest)Ϊschemac               @   s$   e Zd Zdd Zdd Zdd ZdS )ΪCompareTablec             C   s
   || _ d S )N)Ϊtable)Ϊselfr   © r   ϊ_C:\Users\Lenovo\AppData\Local\Temp\pip-unpacked-wheel-q6xnih48\alembic\testing\schemacompare.pyΪ__init__   s    zCompareTable.__init__c             C   sv   | j j|jks| j j|jkr dS xPt| j j|jD ]<\}}|d krJ|d k	sZ|d kr^|d k	r^dS t||kr2dS q2W dS )NFT)r   Ϊnamer   r   ΪcΪCompareColumn)r   ΪotherΪc1Ϊc2r   r   r   Ϊ__eq__
   s    zCompareTable.__eq__c             C   s   |   |‘ S )N)r   )r   r   r   r   r   Ϊ__ne__   s    zCompareTable.__ne__N)Ϊ__name__Ϊ
__module__Ϊ__qualname__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S )r   c             C   s
   || _ d S )N)Ϊcolumn)r   r   r   r   r   r	      s    zCompareColumn.__init__c             C   s   | j j|jko| j j|jkS )N)r   r
   Znullable)r   r   r   r   r   r   "   s    zCompareColumn.__eq__c             C   s   |   |‘ S )N)r   )r   r   r   r   r   r   )   s    zCompareColumn.__ne__N)r   r   r   r	   r   r   r   r   r   r   r      s   r   c               @   s&   e Zd Zd	ddZdd Zdd ZdS )
ΪCompareIndexFc             C   s   || _ || _d S )N)ΪindexΪ	name_only)r   r   r   r   r   r   r	   .   s    zCompareIndex.__init__c             C   sD   | j r| jj|jkS tt | j‘tt |‘ko>| jj|jkS d S )N)r   r   r
   Ϊstrr   ZCreateIndexZdialect_kwargs)r   r   r   r   r   r   2   s
    zCompareIndex.__eq__c             C   s   |   |‘ S )N)r   )r   r   r   r   r   r   <   s    zCompareIndex.__ne__N)F)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S )ΪCompareCheckConstraintc             C   s
   || _ d S )N)Ϊ
constraint)r   r   r   r   r   r	   A   s    zCompareCheckConstraint.__init__c             C   sT   t |tjoR| jj|jkoRt| jjt|jkoR|jj| jjjkoR|jj| jjjkS )N)Ϊ
isinstancer   ZCheckConstraintr   r
   r   Zsqltextr   )r   r   r   r   r   r   D   s
    zCompareCheckConstraint.__eq__c             C   s   |   |‘ S )N)r   )r   r   r   r   r   r   M   s    zCompareCheckConstraint.__ne__N)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S )ΪCompareForeignKeyc             C   s
   || _ d S )N)r   )r   r   r   r   r   r	   R   s    zCompareForeignKey.__init__c             C   s   t |tjo<| jj|jko<|jj| jjjko<|jj| jjjk}|sFdS xPt| jj|jD ]<\}}|d krp|d k	s|d kr|d k	rdS t||krXdS qXW dS )NFT)	r   r   ZForeignKeyConstraintr   r
   r   r   Ϊcolumnsr   )r   r   Ϊr1r   r   r   r   r   r   U   s    zCompareForeignKey.__eq__c             C   s   |   |‘ S )N)r   )r   r   r   r   r   r   g   s    zCompareForeignKey.__ne__N)r   r   r   r	   r   r   r   r   r   r   r   Q   s   r   c               @   s$   e Zd Zdd Zdd Zdd ZdS )ΪComparePrimaryKeyc             C   s
   || _ d S )N)r   )r   r   r   r   r   r	   l   s    zComparePrimaryKey.__init__c             C   s   t |tjo<| jj|jko<|jj| jjjko<|jj| jjjk}|sFdS xPt| jj|jD ]<\}}|d krp|d k	s|d kr|d k	rdS t||krXdS qXW dS )NFT)	r   r   ZPrimaryKeyConstraintr   r
   r   r   r   r   )r   r   r   r   r   r   r   r   r   o   s    zComparePrimaryKey.__eq__c             C   s   |   |‘ S )N)r   )r   r   r   r   r   r      s    zComparePrimaryKey.__ne__N)r   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S )ΪCompareUniqueConstraintc             C   s
   || _ d S )N)r   )r   r   r   r   r   r	      s    z CompareUniqueConstraint.__init__c             C   s   t |tjo<| jj|jko<|jj| jjjko<|jj| jjjk}|sFdS xPt| jj|jD ]<\}}|d krp|d k	s|d kr|d k	rdS t||krXdS qXW dS )NFT)	r   r   ZUniqueConstraintr   r
   r   r   r   r   )r   r   r   r   r   r   r   r   r      s    zCompareUniqueConstraint.__eq__c             C   s   |   |‘ S )N)r   )r   r   r   r   r   r      s    zCompareUniqueConstraint.__ne__N)r   r   r   r	   r   r   r   r   r   r   r!      s   r!   N)Ϊ	itertoolsr   Z
sqlalchemyr   r   r   r   r   r   r    r!   r   r   r   r   Ϊ<module>   s   