
    +h;$                       U d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d d	lm
Z
 d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ ddlmZ ddlmZ erd dlmZ d dlmZ d dlmZ eeef   Z ede      Zi Z de!d<    G d de      Z" G d d ee         Z# G d! d"e#e         Z$ G d# d$e#e         Z% G d% d&e#e         Z&d+d'Z'd,d(Z(d-d)Z)y*).    )annotations)Any)ClassVar)Dict)Generic)
NamedTuple)Optional)Sequence)Tuple)Type)TYPE_CHECKING)TypeVar)Union)
Constraint)ForeignKeyConstraint)Index)UniqueConstraint)	TypeGuard   )util)sqla_compat)Literal)AutogenContext)DefaultImpl_C)boundz Dict[str, Type[_constraint_sig]]_clsregc                      e Zd ZU ded<   ded<   edd       Zedd       Zedd       Zedd       Z	edd	       Z
edd
       Zy)ComparisonResultz%Literal['equal', 'different', 'skip']statusstrmessagec                     | j                   dk(  S )Nequalr    selfs    G/var/www/html/venv/lib/python3.12/site-packages/alembic/ddl/_autogen.pyis_equalzComparisonResult.is_equal-   s    {{g%%    c                     | j                   dk(  S )N	differentr%   r&   s    r(   is_differentzComparisonResult.is_different1   s    {{k))r*   c                     | j                   dk(  S )Nskipr%   r&   s    r(   is_skipzComparisonResult.is_skip5   s    {{f$$r*   c                     | dd      S )zthe constraints are equal.r$   zThe two constraints are equal clss    r(   EqualzComparisonResult.Equal9   s     7;<<r*   c                X     | ddj                  t        j                  |                  S )z9the constraints are different for the provided reason(s).r,   , joinr   to_listr4   reasons     r(   	DifferentzComparisonResult.Different>   s#     ;		$,,v*> ?@@r*   c                X     | ddj                  t        j                  |                  S )zthe constraint cannot be compared for the provided reason(s).

        The message is logged, but the constraints will be otherwise
        considered equal, meaning that no migration command will be
        generated.
        r/   r7   r8   r;   s     r(   SkipzComparisonResult.SkipC   s#     6499T\\&%9:;;r*   Nreturnbool)rA   r   )r<   zUnion[str, Sequence[str]]rA   r   )__name__
__module____qualname____annotations__propertyr)   r-   r0   classmethodr5   r=   r?   r2   r*   r(   r   r   )   s    11L& & * * % % = = A A < <r*   r   c                     e Zd ZU ded<   ded<   ded<   ded<   d	Zd
ed<   d	Zd
ed<   d	Zd
ed<   ded<   ddZed        Z		 	 	 	 	 	 	 	 d dZ
	 	 	 	 d!dZ	 	 	 	 d"dZe	 	 	 	 	 	 	 	 d#d       Zd$dZej                   d        Zej                   d%d       Zej                   d%d       Zej                   d%d       Zd&dZd&dZd'dZy)(_constraint_sigr   constTuple[Any, ...]_sigz,Optional[sqla_compat._ConstraintNameDefined]namer   implFzClassVar[bool]	_is_index_is_fk_is_uqrB   _is_metadatac                $    | j                          y N)	_registerr3   s    r(   __init_subclass__z!_constraint_sig.__init_subclass__\   s    r*   c                    t               rU   NotImplementedErrorr3   s    r(   rV   z_constraint_sig._register_       !##r*   c                    t               rU   rY   r'   is_metadatarO   rK   s       r(   __init__z_constraint_sig.__init__c        "##r*   c                    | j                   |j                   u sJ | j                  sJ |j                  rJ | j                  |      S rU   )rO   rS   _compare_to_reflectedr'   others     r(   compare_to_reflectedz$_constraint_sig.compare_to_reflectedh   sI     yyEJJ&&&    %%%%))%00r*   c                    t               rU   rY   rc   s     r(   rb   z%_constraint_sig._compare_to_reflectedq   r`   r*   c                :    t        |j                     |||      }|S rU   )r   __visit_name__)r4   r^   rO   
constraintsigs        r(   from_constraintz_constraint_sig.from_constraintv   s"     j//0dJO
r*   c                V    t        j                  | j                  |j                        S rU   )r   _get_constraint_final_namerK   dialect)r'   contexts     r(   md_name_to_sql_namez#_constraint_sig.md_name_to_sql_name   s"    55JJ
 	
r*   c                j    t        j                  | j                  | j                  j                        S rU   )r   _constraint_is_namedrK   rO   rn   r&   s    r(   is_namedz_constraint_sig.is_named   s#    //

DII<M<MNNr*   c                    | j                   S rU   )rM   r&   s    r(   unnamedz_constraint_sig.unnamed   s    yyr*   c                    t               rU   rY   r&   s    r(   unnamed_no_optionsz"_constraint_sig.unnamed_no_options   r[   r*   c                6    | j                   f| j                  z   S rU   )rN   ru   r&   s    r(   	_full_sigz_constraint_sig._full_sig   s    		|dll**r*   c                4    | j                   |j                   k(  S rU   ry   rc   s     r(   __eq__z_constraint_sig.__eq__       ~~00r*   c                4    | j                   |j                   k7  S rU   r{   rc   s     r(   __ne__z_constraint_sig.__ne__   r}   r*   c                ,    t        | j                        S rU   )hashry   r&   s    r(   __hash__z_constraint_sig.__hash__   s    DNN##r*   NrA   None)r^   rB   rO   r   rK   r   rA   r   )rd   z_constraint_sig[Any]rA   r   rd   _constraint_sig[_C]rA   r   )r^   rB   rO   r   ri   r   rA   r   )ro   r   rA   zOptional[str])rA   rL   r@   )rA   int)rC   rD   rE   rF   rP   rQ   rR   rW   rH   rV   r_   re   rb   rk   rp   r   memoized_propertyrs   ru   rw   ry   r|   r   r   r2   r*   r(   rJ   rJ   N   sW   I

66
 %I~%"FN""FN" $ $$$'2$;=$	$
1)1	1$($	$
 &1?A	 

 
O O 
  
$ $ 
+ +11$r*   rJ   c                  `    e Zd ZdZedd       ZdZ	 	 	 	 	 	 	 	 ddZed	d       Z		 	 	 	 d
dZ
y)_uq_constraint_sigTc                    | t         d<   y )Nunique_constraintr   r3   s    r(   rV   z_uq_constraint_sig._register   s    '*#$r*   c                    || _         || _        t        j                  |j                        | _        t        t        |j                  D cg c]  }|j                   c}            | _        || _	        y c c}w rU   )
rO   rK   r   constraint_name_or_nonerN   tuplesortedcolumnsrM   rS   )r'   r^   rO   rK   cols        r(   r_   z_uq_constraint_sig.__init__   sZ     	
77

C	&emm!Ds#((!DEF	' "Es   A6c                z    t        | j                  j                  D cg c]  }|j                   c}      S c c}w rU   r   rK   r   rN   r'   r   s     r(   column_namesz_uq_constraint_sig.column_names   )    $***<*<=3chh=>>=   8c                    | j                   sJ | }|}t        |      sJ | j                  j                  |j                  |j                        S rU   )rS   	is_uq_sigrO   compare_unique_constraintrK   r'   rd   metadata_objconn_objs       r(   rb   z(_uq_constraint_sig._compare_to_reflected   sQ         """yy22
 	
r*   Nr   )r^   rB   rO   r   rK   r   rA   r   rA   zTuple[str, ...]r   )rC   rD   rE   rR   rH   rV   	is_uniquer_   rG   r   rb   r2   r*   r(   r   r      st    F+ + I
(
( 
(  	
(
 

( ? ?

(

	

r*   r   c                     e Zd ZU dZded<   edd       Z	 	 	 	 	 	 	 	 ddZ	 	 	 	 ddZe	j                  d        Ze	j                  dd       Ze	j                  dd	       Ze	j                  d
        Ze	j                  d        Zy)_ix_constraint_sigTzsqla_compat._ConstraintNamerN   c                    | t         d<   y )Nindexr   r3   s    r(   rV   z_ix_constraint_sig._register   s    r*   c                    || _         || _        |j                  | _        t        |j                        | _        || _        y rU   )rO   rK   rN   rB   uniquer   rS   r]   s       r(   r_   z_ix_constraint_sig.__init__   s5     	
JJ	ell+'r*   c                    | j                   sJ | }|}t        |      sJ | j                  j                  |j                  |j                        S rU   )rS   is_index_sigrO   compare_indexesrK   r   s       r(   rb   z(_ix_constraint_sig._compare_to_reflected   sL         H%%%yy((););X^^LLr*   c                @    t        j                  | j                        S rU   )r   is_expression_indexrK   r&   s    r(   has_expressionsz"_ix_constraint_sig.has_expressions   s    ..tzz::r*   c                z    t        | j                  j                  D cg c]  }|j                   c}      S c c}w rU   r   r   s     r(   r   z_ix_constraint_sig.column_names   r   r   c           
     |    t        | j                  j                  D cg c]  }t        |dd        c}      S c c}w )NrN   )r   rK   expressionsgetattrr   s     r(   column_names_optionalz(_ix_constraint_sig.column_names_optional   s3    37::3I3IJCWS&$'J
 	
Js   9c                     y)NTr2   r&   s    r(   rs   z_ix_constraint_sig.is_named   s    r*   c                6    | j                   f| j                  z   S rU   )r   r   r&   s    r(   ru   z_ix_constraint_sig.unnamed   s     4#=#===r*   Nr   )r^   rB   rO   r   rK   r   rA   r   r   r   )rA   zTuple[Optional[str], ...])rC   rD   rE   rP   rF   rH   rV   r_   rb   r   r   r   r   r   rs   ru   r2   r*   r(   r   r      s    I
%% (('2(;@(	(M(M	M 
; ; 
? ? 

 

 
  
> >r*   r   c                  ^    e Zd ZdZedd       Z	 	 	 	 	 	 	 	 ddZej                  d        Z	y)_fk_constraint_sigTc                    | t         d<   y )Nforeign_key_constraintr   r3   s    r(   rV   z_fk_constraint_sig._register   s    ,/()r*   c                   || _         || _        || _        t        j                  |j
                        | _        t        j                  |      \
  | _        | _        | _	        | _
        | _        | _        }}}}| j                  | j                  t        | j                        | j                  | j                  t        | j                        f|r%|j                         dk(  rd n|j                         nd |r%|j                         dk(  rd n|j                         nd |r|j                         dk(  rdn|rdndfz   | _        y )Nz	no actiondeferredinitially_deferrable
deferrableznot deferrable)rS   rO   rK   r   r   rN   _fk_specsource_schemasource_tablesource_columnstarget_schematarget_tabletarget_columnsr   lowerrM   )r'   r^   rO   rK   onupdateondeleter   	initiallys           r(   r_   z_fk_constraint_sig.__init__   s2    (	
77

C	   '	
 $%%&$%%&&
  ")[8hnn>N  ")[8hnn>N
 !2j!@ '%/\5E
&
	r*   c                    | j                   | j                  t        | j                        | j                  | j
                  t        | j                        fS rU   )r   r   r   r   r   r   r   r&   s    r(   rw   z%_fk_constraint_sig.unnamed_no_options4  sN     $%%&$%%&
 	
r*   Nr   )r^   rB   rO   r   rK   r   rA   r   )
rC   rD   rE   rQ   rH   rV   r_   r   r   rw   r2   r*   r(   r   r      s_    F0 02
2
 2
 $	2

 
2
h 

 
r*   r   c                    | j                   S rU   )rP   rj   s    r(   r   r   @  s    ==r*   c                    | j                   S rU   )rR   r   s    r(   r   r   D      ::r*   c                    | j                   S rU   )rQ   r   s    r(   	is_fk_sigr   H  r   r*   N)rj   rJ   rA   zTypeGuard[_ix_constraint_sig])rj   rJ   rA   zTypeGuard[_uq_constraint_sig])rj   rJ   rA   zTypeGuard[_fk_constraint_sig])*
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r   r   sqlalchemy.sql.schemar   r   r   r   typing_extensionsr    r   r   r   alembic.autogenerate.apir   alembic.ddl.implr   CompareConstraintTyper   r   rF   r   rJ   r   r   r   r   r   r   r2   r*   r(   <module>r      s    #              , 6 ' 2 '  7,j%/0 T./,.	) ."<z "<JO$gbk O$d#
)9: #
L0>/ 0>fD
)=> D
Nr*   