o
    ‹ågæ  ã                   @   sŠ   d dl mZ 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)Úschema)Ú
ClauseListc                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚCompareTablec                 C   ó
   || _ d S ©N)Útable)Úselfr	   © r   úY/var/www/html/flaskapp/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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   3   s   ÿýzCompareIndex.__eq__c                 C   r   r   r   r   r   r   r   r   =   r   zCompareIndex.__ne__c                 C   sL   t | jjŽ }z| ¡ j}W n ty   t|ƒ}Y nw d| jj› d|› d�S )Nz<CompareIndex ú(z)>)r   r#   ÚexpressionsÚcompileÚstringÚ	Exceptionr%   r   )r
   ÚexprÚexpr_strr   r   r   Ú__repr__@   s   ÿzCompareIndex.__repr__N)F)r   r   r   r   r   r   r/   r   r   r   r   r"   .   s
    

r"   c                   @   r   )ÚCompareCheckConstraintc                 C   r   r   ©Ú
constraint©r
   r2   r   r   r   r   J   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   ÚCheckConstraintr2   r   r%   Úsqltextr	   r   r   r   r   r   M   s   ÿþýûzCompareCheckConstraint.__eq__c                 C   r   r   r   r   r   r   r   r   V   r   zCompareCheckConstraint.__ne__Nr   r   r   r   r   r0   I   s    	r0   c                   @   r   )ÚCompareForeignKeyc                 C   r   r   r1   r3   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   )	r4   r   ÚForeignKeyConstraintr2   r   r	   r   Úcolumnsr   ©r
   r   Úr1r   r   r   r   r   r   ^   s"   ÿþüÿzCompareForeignKey.__eq__c                 C   r   r   r   r   r   r   r   r   p   r   zCompareForeignKey.__ne__Nr   r   r   r   r   r7   Z   s    r7   c                   @   r   )ÚComparePrimaryKeyc                 C   r   r   r1   r3   r   r   r   r   u   r   zComparePrimaryKey.__init__c                 C   r8   r   )	r4   r   ÚPrimaryKeyConstraintr2   r   r	   r   r:   r   r;   r   r   r   r   x   ó"   ÿþüÿzComparePrimaryKey.__eq__c                 C   r   r   r   r   r   r   r   r   Œ   r   zComparePrimaryKey.__ne__Nr   r   r   r   r   r=   t   ó    r=   c                   @   r   )ÚCompareUniqueConstraintc                 C   r   r   r1   r3   r   r   r   r   ‘   r   z CompareUniqueConstraint.__init__c                 C   r8   r   )	r4   r   ÚUniqueConstraintr2   r   r	   r   r:   r   r;   r   r   r   r   ”   r?   zCompareUniqueConstraint.__eq__c                 C   r   r   r   r   r   r   r   r   ¨   r   zCompareUniqueConstraint.__ne__Nr   r   r   r   r   rA   �   r@   rA   N)Ú	itertoolsr   Ú
sqlalchemyr   Úsqlalchemy.sql.elementsr   r   r   r"   r0   r7   r=   rA   r   r   r   r   Ú<module>   s    