a
    g	g                     @   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   `/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/alembic/testing/schemacompare.py__init__   s    zCompareTable.__init__c                 C   sv   | j j|jks| j j|jkr dS t| j j|jD ]@\}}|d u rH|d usX|d u r^|d ur^ dS t||kr0 dS q0dS NFT)r   namer   r   cCompareColumn)r   otherc1c2r   r   r	   __eq__
   s    zCompareTable.__eq__c                 C   s   |  | S r   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 r   )column)r   r   r   r   r	   r
      s    zCompareColumn.__init__c                 C   s   | j j|jko| j j|jkS r   )r   r   Znullabler   r   r   r	   r   "   s    zCompareColumn.__eq__c                 C   s   |  | S r   r   r   r   r   r	   r   )   s    zCompareColumn.__ne__Nr   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 r   )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 r   )r   r   r   strr   ZCreateIndexZdialect_kwargsr   r   r   r	   r   2   s    zCompareIndex.__eq__c                 C   s   |  | S r   r   r   r   r   r	   r   <   s    zCompareIndex.__ne__N)Fr   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 r   
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 r   )
isinstancer   ZCheckConstraintr!   r   r   Zsqltextr   r   r   r   r	   r   D   s    zCompareCheckConstraint.__eq__c                 C   s   |  | S r   r   r   r   r   r	   r   M   s    zCompareCheckConstraint.__ne__Nr   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 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 t| jj|jD ]@\}}|d u rn|d us~|d u r|d ur dS t||krV dS qVdS r   )	r#   r   ZForeignKeyConstraintr!   r   r   r   columnsr   r   r   Zr1r   r   r   r   r	   r   U   s&    zCompareForeignKey.__eq__c                 C   s   |  | S r   r   r   r   r   r	   r   g   s    zCompareForeignKey.__ne__Nr   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 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 t| jj|jD ]@\}}|d u rn|d us~|d u r|d ur dS t||krV dS qVdS r   )	r#   r   ZPrimaryKeyConstraintr!   r   r   r   r%   r   r&   r   r   r	   r   o   s&    zComparePrimaryKey.__eq__c                 C   s   |  | S r   r   r   r   r   r	   r      s    zComparePrimaryKey.__ne__Nr   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 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 t| jj|jD ]@\}}|d u rn|d us~|d u r|d ur dS t||krV dS qVdS r   )	r#   r   ZUniqueConstraintr!   r   r   r   r%   r   r&   r   r   r	   r      s&    zCompareUniqueConstraint.__eq__c                 C   s   |  | S r   r   r   r   r   r	   r      s    zCompareUniqueConstraint.__ne__Nr   r   r   r   r	   r(      s   r(   N)	itertoolsr   Z
sqlalchemyr   r   r   r   r   r$   r'   r(   r   r   r   r	   <module>   s   