
    +h                         d dl mZ d dlmZ d dlmZ  G d d      Z G d d      Z G d d	      Z G d
 d      Z	 G d d      Z
 G d d      Z G d d      Zy)    )zip_longest)schema)
ClauseListc                       e Zd Zd Zd Zd Zy)CompareTablec                     || _         y N)table)selfr
   s     P/var/www/html/venv/lib/python3.12/site-packages/alembic/testing/schemacompare.py__init__zCompareTable.__init__   s	    
    c                 *   | j                   j                  |j                  k7  s#| j                   j                  |j                  k7  ryt        | j                   j                  |j                        D ]  \  }}|||| yt        |      |k7  s y yNFT)r
   namer   r   cCompareColumn)r   otherc1c2s       r   __eq__zCompareTable.__eq__   s~    ::??ejj(DJJ,=,=,M!$**,,8 	FB
r~
r~R B&	 r   c                 &    | j                  |       S r	   r   r   r   s     r   __ne__zCompareTable.__ne__       ;;u%%%r   N__name__
__module____qualname__r   r   r    r   r   r   r      s     &r   r   c                       e Zd Zd Zd Zd Zy)r   c                     || _         y r	   )column)r   r$   s     r   r   zCompareColumn.__init__    s	    r   c                     | j                   j                  |j                  k(  xr# | j                   j                  |j                  k(  S r	   )r$   r   nullabler   s     r   r   zCompareColumn.__eq__#   s8    KK

* 7$$6	
r   c                 &    | j                  |       S r	   r   r   s     r   r   zCompareColumn.__ne__*   r   r   Nr   r!   r   r   r   r      s    
&r   r   c                   &    e Zd ZddZd Zd Zd Zy)CompareIndexc                      || _         || _        y r	   )index	name_only)r   r+   r,   s      r   r   zCompareIndex.__init__/   s    
"r   c                 8   | j                   r#| j                  j                  |j                  k(  S t        t	        j
                  | j                              t        t	        j
                  |            k(  xr# | j                  j                  |j                  k(  S r	   )r,   r+   r   strr   CreateIndexdialect_kwargsr   s     r   r   zCompareIndex.__eq__3   st    >>::??ejj00 F&&tzz23v))%012 FJJ--1E1EEr   c                 &    | j                  |       S r	   r   r   s     r   r   zCompareIndex.__ne__=   r   r   c                     t        | j                  j                   }	 |j                         j                  }d| j                  j                   d| dS # t
        $ r t        |      }Y 3w xY w)Nz<CompareIndex (z)>)r   r+   expressionscompilestring	Exceptionr.   r   )r   exprexpr_strs      r   __repr__zCompareIndex.__repr__@   sf    4::112	!||~,,H  

0(2>>  	!4yH	!s   A A,+A,N)F)r   r   r    r   r   r   r:   r!   r   r   r)   r)   .   s    #&?r   r)   c                       e Zd Zd Zd Zd Zy)CompareCheckConstraintc                     || _         y r	   
constraintr   r?   s     r   r   zCompareCheckConstraint.__init__J   	    $r   c                    t        |t        j                        xr | j                  j                  |j                  k(  xr t        | j                  j                        t        |j                        k(  xrp |j                  j                  | j                  j                  j                  k(  xr7 |j                  j                  | j                  j                  j                  k(  S r	   )
isinstancer   CheckConstraintr?   r   r.   sqltextr
   r   s     r   r   zCompareCheckConstraint.__eq__M   s    uf445 C$$

2CT__,,-U]]1CCC !!T__%:%:%?%??C ""doo&;&;&B&BB	
r   c                 &    | j                  |       S r	   r   r   s     r   r   zCompareCheckConstraint.__ne__V   r   r   Nr   r!   r   r   r<   r<   I   s    %
&r   r<   c                       e Zd Zd Zd Zd Zy)CompareForeignKeyc                     || _         y r	   r>   r@   s     r   r   zCompareForeignKey.__init__[   rA   r   c                    t        |t        j                        xr | j                  j                  |j                  k(  xrp |j
                  j                  | j                  j
                  j                  k(  xr7 |j
                  j                  | j                  j
                  j                  k(  }|syt        | j                  j                  |j                        D ]  \  }}|||| yt        |      |k7  s y yr   )	rC   r   ForeignKeyConstraintr?   r   r
   r   columnsr   r   r   r1r   r   s        r   r   zCompareForeignKey.__eq__^   s    uf99: C$$

2C!!T__%:%:%?%??C ""doo&;&;&B&BB	 	 !$//"9"95==I 	FB
r~
r~R B&	 r   c                 &    | j                  |       S r	   r   r   s     r   r   zCompareForeignKey.__ne__p   r   r   Nr   r!   r   r   rH   rH   Z   s    %$&r   rH   c                       e Zd Zd Zd Zd Zy)ComparePrimaryKeyc                     || _         y r	   r>   r@   s     r   r   zComparePrimaryKey.__init__u   rA   r   c                    t        |t        j                        xr | j                  j                  |j                  k(  xrp |j
                  j                  | j                  j
                  j                  k(  xr7 |j
                  j                  | j                  j
                  j                  k(  }|syt        | j                  j                  |j                        D ]  \  }}|||| yt        |      |k7  s y yr   )	rC   r   PrimaryKeyConstraintr?   r   r
   r   rL   r   rM   s        r   r   zComparePrimaryKey.__eq__x   s    uf99: C$$

2C!!T__%:%:%?%??C ""doo&;&;&B&BB	 	 !$//"9"95==I 	FB
r~
r~R B&	 r   c                 &    | j                  |       S r	   r   r   s     r   r   zComparePrimaryKey.__ne__   r   r   Nr   r!   r   r   rQ   rQ   t       %(&r   rQ   c                       e Zd Zd Zd Zd Zy)CompareUniqueConstraintc                     || _         y r	   r>   r@   s     r   r   z CompareUniqueConstraint.__init__   rA   r   c                    t        |t        j                        xr | j                  j                  |j                  k(  xrp |j
                  j                  | j                  j
                  j                  k(  xr7 |j
                  j                  | j                  j
                  j                  k(  }|syt        | j                  j                  |j                        D ]  \  }}|||| yt        |      |k7  s y yr   )	rC   r   UniqueConstraintr?   r   r
   r   rL   r   rM   s        r   r   zCompareUniqueConstraint.__eq__   s    uf556 C$$

2C!!T__%:%:%?%??C ""doo&;&;&B&BB	 	 !$//"9"95==I 	FB
r~
r~R B&	 r   c                 &    | j                  |       S r	   r   r   s     r   r   zCompareUniqueConstraint.__ne__   r   r   Nr   r!   r   r   rX   rX      rV   r   rX   N)	itertoolsr   
sqlalchemyr   sqlalchemy.sql.elementsr   r   r   r)   r<   rH   rQ   rX   r!   r   r   <module>r`      sT    !  .& &0& &? ?6& &"& &4& &8& &r   