o
    õï‡h·  ã                   @   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                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚCompareTablec                 C   ó
   || _ d S ©N)Útable)Úselfr   © r
   ú`/var/www/html/aiguide_backend/venv/lib/python3.10/site-packages/alembic/testing/schemacompare.pyÚ__init__   ó   
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 r$|d us,|d u r/|d ur/ dS t|ƒ|kr8 dS qdS ©NFT)r   Únamer   r   ÚcÚCompareColumn)r	   ÚotherÚc1Úc2r
   r
   r   Ú__eq__
   s   ÿzCompareTable.__eq__c                 C   ó   |   |¡ S r   ©r   ©r	   r   r
   r
   r   Ú__ne__   ó   zCompareTable.__ne__N©Ú__name__Ú
__module__Ú__qualname__r   r   r   r
   r
   r
   r   r      s    r   c                   @   r   )r   c                 C   r   r   )Úcolumn)r	   r   r
   r
   r   r      r   zCompareColumn.__init__c                 C   s   | j j|jko| j j|jkS r   )r   r   Únullabler   r
   r
   r   r   "   s   þzCompareColumn.__eq__c                 C   r   r   r   r   r
   r
   r   r   )   r   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   s@   | j r
| jj|jkS tt | j¡ƒtt |¡ƒko| jj|jkS r   )r#   r"   r   Ústrr   ÚCreateIndexÚdialect_kwargsr   r
   r
   r   r   2   s   ÿýzCompareIndex.__eq__c                 C   r   r   r   r   r
   r
   r   r   <   r   zCompareIndex.__ne__N)Fr   r
   r
   r
   r   r!   -   s    

r!   c                   @   r   )ÚCompareCheckConstraintc                 C   r   r   ©Ú
constraint©r	   r)   r
   r
   r   r   A   r   zCompareCheckConstraint.__init__c                 C   sT   t |tjƒo)| jj|jko)t| jjƒt|jƒko)|jj| jjjko)|jj| jjjkS r   )Ú
isinstancer   ÚCheckConstraintr)   r   r$   Úsqltextr   r   r
   r
   r   r   D   s   ÿþýûzCompareCheckConstraint.__eq__c                 C   r   r   r   r   r
   r
   r   r   M   r   zCompareCheckConstraint.__ne__Nr   r
   r
   r
   r   r'   @   s    	r'   c                   @   r   )ÚCompareForeignKeyc                 C   r   r   r(   r*   r
   r
   r   r   R   r   zCompareForeignKey.__init__c                 C   óœ   t |tjƒo| jj|jko|jj| jjjko|jj| jjjk}|s#dS t| jj|jƒD ] \}}|d u r7|d us?|d u rB|d urB dS t|ƒ|krK dS q+dS r   )	r+   r   ÚForeignKeyConstraintr)   r   r   r   Úcolumnsr   ©r	   r   Úr1r   r   r
   r
   r   r   U   s"   ÿþüÿzCompareForeignKey.__eq__c                 C   r   r   r   r   r
   r
   r   r   g   r   zCompareForeignKey.__ne__Nr   r
   r
   r
   r   r.   Q   s    r.   c                   @   r   )ÚComparePrimaryKeyc                 C   r   r   r(   r*   r
   r
   r   r   l   r   zComparePrimaryKey.__init__c                 C   r/   r   )	r+   r   ÚPrimaryKeyConstraintr)   r   r   r   r1   r   r2   r
   r
   r   r   o   ó"   ÿþüÿzComparePrimaryKey.__eq__c                 C   r   r   r   r   r
   r
   r   r   ƒ   r   zComparePrimaryKey.__ne__Nr   r
   r
   r
   r   r4   k   ó    r4   c                   @   r   )ÚCompareUniqueConstraintc                 C   r   r   r(   r*   r
   r
   r   r   ˆ   r   z CompareUniqueConstraint.__init__c                 C   r/   r   )	r+   r   ÚUniqueConstraintr)   r   r   r   r1   r   r2   r
   r
   r   r   ‹   r6   zCompareUniqueConstraint.__eq__c                 C   r   r   r   r   r
   r
   r   r   Ÿ   r   zCompareUniqueConstraint.__ne__Nr   r
   r
   r
   r   r8   ‡   r7   r8   N)Ú	itertoolsr   Ú
sqlalchemyr   r   r   r!   r'   r.   r4   r8   r
   r
   r
   r   Ú<module>   s    