
    Ojm              	         U d dl mZ d dl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 ddlmZ ddlmZ ddlm Z  e
rNd 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/m0Z0 dd&l/m1Z1 dd'l2m3Z3  ed(eeeef         )          Z4 ej5        e6          Z7dVd7Z8d8 Z9 ej:        ej;        ej<        ej=        ej>        ej=        ej>        d9          Z?d:e@d;<   dWdBZAdXdEZBdYdHZCdZdJZDd[dQZEd\dUZFdS )]    )annotationsN)Any)cast)
Collection)Dict)Mapping)Optional)TYPE_CHECKING)TypeVar)Unionschema)text)
expression)ForeignKeyConstraint)Index)UniqueConstraint   )_InspectorConv   )util)is_index_sig)	is_uq_sig)ops)PriorityDispatchResult)sqla_compat)ReflectedForeignKeyConstraint)ReflectedIndex)ReflectedUniqueConstraint)quoted_name)
TextClause)Column)Table)AutogenContext)_constraint_sig)DefaultImpl)AlterColumnOp)ModifyTableOps)Plugin_C)boundautogen_contextr$   
modify_opsr(   r   Optional[str]tnameUnion[quoted_name, str]
conn_tableOptional[Table]metadata_tablereturnr   c                	   &'()*+,  j         }d u *|d u + j        j        )|&d |j        D             }t	          |j                  }nt	                      }t	                      }t                      }	t                      }
d,d}
t                      }t                      }	 t          |                                        }d, fd|D             }|D ]}|	                    d          rd}n# t          $ r Y nt          $ r Y nw xY w	 t          |                                        } fd|D             }n# t          $ r Y nw xY w+rt	                      }	n)fd|D             }	d	 )fd
|D             D             }
|rt          |	|
|| j        )           )                    |	|
||           )fd|D             })fd|D             })fd|	D             })fd|
D             } fd|                    |          D             }d |D             (d |D             'd |                    |          D             }'(fdt	          (                              '          D             }d |D             }d |D             } fd|D             }d$ *+,fd}d$ *+,fd}d% fd}t%          t	          |                              |                    D ]x}||         }t)          |          r
|j        |v r#||v rF||         \  }&t-          &fd |D                       r|j        |vr ||            |&           m ||           yt%          t	          |                              |                    D ]}||         } ||v r ||         \  }&t/          |           r&}n|}n||         }t1          |          t1          |           k    r ||            ||            m|                     |          }!|!j        r ||| |!j                   |!j        r;t/          |          rd!nd"}"t:                              d#|"|j        |!j                   |!j         sJ t%          t	          |                              |                    D ]}#||#         }$ ||$           |D ]}%|%|vr |||%                    tB          j"        S )&Nc                F    h | ]}t          |t          j                  |S  )
isinstance	sa_schemar   .0uqs     |/lsinfo/ai/hellotax_ai/training_center/backend/venv/lib/python3.11/site-packages/alembic/autogenerate/compare/constraints.py	<setcomp>z/_compare_indexes_and_uniques.<locals>.<setcomp>D   s;     '
 '
 '
"i899'
'
 '
 '
    Fr   Tc           	     T    g | ]$}                     |d          dd          "|%S )nameunique_constraint
table_nameschema_namerun_name_filters)r;   r<   r,   r   r/   s     r=   
<listcomp>z0_compare_indexes_and_uniques.<locals>.<listcomp>j   sT     & & &"33vJ'#(@@ && & &r?   duplicates_indexc           	     T    g | ]$}                     |d          dd          "|%S )rA   indexrC   rF   )r;   ixr,   r   r/   s     r=   rH   z0_compare_indexes_and_uniques.<locals>.<listcomp>}   sT     & & &"33vJ#(@@ && & &r?   c                2    h | ]}t          |          S r7   )_make_unique_constraint)r;   uq_defr1   impls     r=   r>   z/_compare_indexes_and_uniques.<locals>.<setcomp>   s5        (fjAA  r?   c                    h | ]}||S Nr7   )r;   rK   s     r=   r>   z/_compare_indexes_and_uniques.<locals>.<setcomp>   s,     
 
 
   
 !  r?   c              3  :   K   | ]}t          |          V  d S rR   )_make_index)r;   rL   r1   rP   s     r=   	<genexpr>z/_compare_indexes_and_uniques.<locals>.<genexpr>   sC         D"j11     r?   c                :    h | ]}                     |          S r7   _create_metadata_constraint_sigr;   r<   rP   s     r=   r>   z/_compare_indexes_and_uniques.<locals>.<setcomp>   s7     ' ' ' 	,,R00' ' 'r?   c                :    h | ]}                     |          S r7   rW   r;   rL   rP   s     r=   r>   z/_compare_indexes_and_uniques.<locals>.<setcomp>   s4       57,,R00  r?   c                :    h | ]}                     |          S r7    _create_reflected_constraint_sigrY   s     r=   r>   z/_compare_indexes_and_uniques.<locals>.<setcomp>   s4       68--b11  r?   c                :    h | ]}                     |          S r7   r]   r[   s     r=   r>   z/_compare_indexes_and_uniques.<locals>.<setcomp>   s4       68--b11  r?   c                p    i | ]2}|j         	t          t          |                                        |3S r7   )is_namedr   strmd_name_to_sql_name)r;   cr,   s     r=   
<dictcomp>z0_compare_indexes_and_uniques.<locals>.<dictcomp>   sK       :S!''88991  r?   c                    i | ]
}|j         |S r7   rA   r;   rd   s     r=   re   z0_compare_indexes_and_uniques.<locals>.<dictcomp>   s    GGG!AFAGGGr?   c                    i | ]
}|j         |S r7   rg   rh   s     r=   re   z0_compare_indexes_and_uniques.<locals>.<dictcomp>   s    @@@!AFA@@@r?   c                P    i | ]#}t          j        |j                  |j        |$S r7   )r   constraint_name_stringrA   rh   s     r=   re   z0_compare_indexes_and_uniques.<locals>.<dictcomp>   s?       -af55	  r?   c                2    i | ]}||         |         fS r7   r7   )r;   rA   conn_indexes_by_nameconn_uniques_by_names     r=   re   z0_compare_indexes_and_uniques.<locals>.<dictcomp>   s<        	#D)+?+EF  r?   c                    i | ]
}|j         |S r7   unnamedr:   s     r=   re   z0_compare_indexes_and_uniques.<locals>.<dictcomp>   s    LLLb2:rLLLr?   c                    i | ]
}|j         |S r7   rp   r:   s     r=   re   z0_compare_indexes_and_uniques.<locals>.<dictcomp>   s)       
B  r?   c                ^    i | ])}t          j        |j        j                  !|j        |*S r7   )r   _constraint_is_namedconstdialectrq   )r;   r<   r,   s     r=   re   z0_compare_indexes_and_uniques.<locals>.<dictcomp>   sJ          /Ho-
 
 

B     r?   objN_constraint_sig[sa_schema.UniqueConstraint] | _constraint_sig[sa_schema.Index]c                |   t          |           r                    | j        | j        ddd           rdj                            t          j                            | j                             t          	                    d| j        | j
                   d S d S t          |           rsd S srd S                     | j        | j        ddd           rdj                            t          j                            | j                             t          	                    d| j        | j
                   d S d S J )NrK   FzDetected added index %r on '%s'rB   z+Detected added unique constraint %r on '%s')r   run_object_filtersru   rA   r   appendCreateIndexOp
from_indexloginfocolumn_namesr   AddConstraintOpfrom_constraint)rw   r,   is_create_tableis_drop_tabler-   supports_unique_constraintss    r=   	obj_addedz/_compare_indexes_and_uniques.<locals>.obj_added   sm     	11	38WeT   %%c&7&B&B39&M&MNNN5H$    	  s^^ 	.   - 11	38%8%  
 %%'77	BB   AH$    
 
 5r?   c                v   t          |           r| j        rsd S                     | j        | j        ddd           r_j                            t
          j                            | j                             t          
                    d| j                   d S d S t          |           rsrd S                     | j        | j        ddd           r_j                            t
          j                            | j                             t          
                    d| j                   d S d S J )NrK   TzDetected removed index %r on %rrB   z+Detected removed unique constraint %r on %r)r   	is_uniquerz   ru   rA   r   r{   DropIndexOpr}   r~   r   r   DropConstraintOpr   )rw   r,   r   r   r-   r   r/   s    r=   obj_removedz1_compare_indexes_and_uniques.<locals>.obj_removed!  si     	} %@  11	38WdD  M %%co&@&@&K&KLLL:CHeLLLLL	M M
 s^^ 	 -  11	38%8$  
 %%(88CC   AH    
 
 5r?   oldnewmsgrb   c                   t          |           rt          |          sJ                     |j        |j        dd| j                  rt                              d| j        |           j                            t          j        	                    | j                             j                            t          j
        	                    |j                             d S d S t          |           rt          |          sJ                     |j        |j        dd| j                  rt                              d| j        |           j                            t          j                            | j                             j                            t          j                            |j                             d S d S J )NrK   Fz#Detected changed index %r on %r: %srB   z/Detected changed unique constraint %r on %r: %s)r   rz   ru   rA   r~   r   r   r{   r   r}   r|   r   r   r   r   )r   r   r   r,   r-   r/   s      r=   obj_changedz1_compare_indexes_and_uniques.<locals>.obj_changedF  s     	$$$$$11	38WeSY  O 938UC   %%co&@&@&K&KLLL%%c&7&B&B39&M&MNNNNNO O s^^ 	S>>!!>11	38%8%   EH	   %%(88CC   %%'77	BB       5r?   c              3  8   K   | ]}j         |j         k    V  d S rR   rp   )r;   meta_idxconn_idxs     r=   rU   z/_compare_indexes_and_uniques.<locals>.<genexpr>{  sB          $(88     r?   rK   zunique constraintz5Cannot compare %s %r, assuming equal and skipping. %s)rw   rx   )r   rx   r   rx   r   rb   )#	inspectormigration_contextrP   constraintssetindexes	frozensetr   get_unique_constraintsgetNotImplementedError	TypeErrorget_indexes_correct_for_uq_duplicates_uixrv   correct_for_autogen_constraintsunionintersectionsorted
differencer   rq   allr   typecompare_to_reflectedis_differentmessageis_skipr~   r   rA   is_equalr   CONTINUE)-r,   r-   r   r/   r1   r3   r   metadata_unique_constraintsmetadata_indexesconn_uniquesconn_indexes+unique_constraints_duplicate_unique_indexesconn_uniques_reflectedconn_indexes_reflectedr<   metadata_unique_constraints_sigmetadata_indexes_sigconn_unique_constraintsconn_indexes_sigmetadata_names
conn_namesdoubled_constraintsconn_uniques_by_sigmetadata_uniques_by_sigunnamed_metadata_uniquesr   r   r   removed_nameconn_objconn_uqexisting_namemetadata_obj
comparisonthing
added_namerw   uq_sigr   rm   rn   rP   r   r   r   s-   `````                                 @@@@@@@r=   _compare_indexes_and_uniquesr   5   sD     )I D(O"d*M,1D !'
 '
$0'
 '
 '
#
 ~566&)ee#551:L&/kkL"'27/KK 	 >G[[	G%3& &$$U6$:: # +/'& & & & & &0& & &" - G G66,-- GBF?G# # 	 	 	D 	 	 	 D		$	%3I%>%>%J%Jf &K & &"& & & & & &0& & &"" # 	 	 	D	  	55LL    4  L

 
    0  
 
 
 3 
&'#	
 	
 	
 	((#	  ' ' ' '-' ' '#
   ;K     <H     <H  
   0667KLL  N HG/FGGG@@/?@@@ (../?@@  J    ,--:: 
 
   ML4KLLL !@         1      $ $ $ $ $ $ $ $ $ $L# # # # # # # # # # #J) ) ) ) ) ) ) )V s:99.IIJJ " "l+h	" $<<<000 3L AGX    $8    &
 O+BBBG$$$H%%%K!!!!N 3 3 @ @ L LMM )+ )+%m4/// 3M BGXL)) ##"!-0H>>T,////K!!!Il#### &::8DDJ& +HlJ4FGGGG# +  ,H55NGG;N  KM&	    "*****S00;;JGGHH  
Z(	#* 8 8,,,I.v6777!**s*   ,&C? ?
D	DD$E 
EEc                r   fd|D             }d |D             }fd|D             }fd|D             }	d |D             }
d | D             }|D ]c}||vr>                     ||                   j        |vr|                     ||                    D||	vr|                    |
|                    dd S )Nc                >    g | ]}t          j        |          |fS r7   )r   _get_constraint_final_namer;   consrv   s     r=   rH   z2_correct_for_uq_duplicates_uix.<locals>.<listcomp>  s;        
	/g	>	>E  r?   c                    h | ]	\  }}||
S rR   r7   )r;   rA   r   s      r=   r>   z1_correct_for_uq_duplicates_uix.<locals>.<setcomp>  s(       td6F6F6F6Fr?   c                N    h | ]!\  }}|                     |          j        "S rR   )rX   rq   )r;   rA   r   rP   s      r=   r>   z1_correct_for_uq_duplicates_uix.<locals>.<setcomp>  s;       D$< 	,,T22:<<r?   c                H    h | ]}|j         	t          j        |          S r7   )uniquer   r   r   s     r=   r>   z1_correct_for_uq_duplicates_uix.<locals>.<setcomp>  s>       ;.tW==  r?   c                ,    i | ]}|j         	|j        |S r7   )r   rA   r;   r   s     r=   re   z2_correct_for_uq_duplicates_uix.<locals>.<dictcomp>  s#    MMMMTYMMMr?   c                8    i | ]}|j         d          |j        |S )rI   )r   rA   r   s     r=   re   z2_correct_for_uq_duplicates_uix.<locals>.<dictcomp>  s:       9'(	4  r?   )r^   rq   discard)r   r   r   r   rv   rP   metadata_cons_namesmetadata_uq_namesunnamed_metadata_uqsmetadata_ix_namesconn_ix_namesuqs_dupe_indexesoverlaps       ``       r=   r   r     sh   &   /  
 2     -     $   NMMMMM +   $ 
9 
9+++55$W- +, ,
 (//0@0IJJJ---  w!7888
9 
9r?   )ascdescnulls_first
nulls_last
nullsfirst	nullslastzMapping[str, Any]_IndexColumnSortingOpsrP   r&   paramsr   r#   Optional[Index]c                   g }|                     d          }t          |d                   D ]~\  }}|$d|v sJ |d         |         }t          |          }n|}|j        |         }|r-||v r)||         D ] }	|	t          v rt	          |	         |          }!|                    |           t          j        |d         g|R |d         |d|                     |d          }
d|v r|d         |
j	        d<   |
S )	Ncolumn_sortingr   expressionsrA   r   )r   _tablerK   duplicates_constraint)
r   	enumerater   rd   r   r{   r9   r    adjust_reflected_dialect_optionsr   )rP   r   r1   exprssortingnumcol_namerA   itemoperatorrL   s              r=   rT   rT     sT    35Ejj)**G"6.#9::  X F****-(-D::DDD<)D 	Btw#DM B B5551(;DAADT	v
	
 
 h	
 

 
/
/
@
@
 
B &((+12I+J'(Ir?   r   r   c                    t          j        fd|d         D             d|d         i|                     |d          }d|v r|d         |j        d<   |S )Nc                *    g | ]}j         |         S r7   rd   r;   cnamer1   s     r=   rH   z+_make_unique_constraint.<locals>.<listcomp>+  s     	B	B	B%*,u
	B	B	Br?   r   rA   rB   rI   )r9   r   r   r   )rP   r   r1   r<   s     ` r=   rN   rN   '  s     
	#	B	B	B	B6.+A	B	B	B
F^
 
/
/8K
L
L
 
B
 V##&,-?&@"#Ir?   r   r   c           
       
 | d         
| d         r| d         d

|                      di           }t          j        fd| d         D             
fd| d         D             |                     d	          |                     d
          |                     d          |                     d          | d                   }| d         }| d         }t          j        ||          }|j        vrSt          j        |j        gfdt          | d         | d                   D             R ||nt          j        ddid nj        j	        |         j
                             d          ruj        j	        |         }t          | d         | d                   D ]F\  }}	|	|j        vr8|                    t          j        |	j        |         j                             G                    |           |S )Nreferred_tablereferred_schema.optionsc                *    g | ]}j         |         S r7   r   r   s     r=   rH   z%_make_foreign_key.<locals>.<listcomp>?  s     HHHe	HHHr?   constrained_columnsc                    g | ]	}d |
S )r   r7   )r;   nr/   s     r=   rH   z%_make_foreign_key.<locals>.<listcomp>@  s$    BBB!EEE11	BBBr?   referred_columnsonupdateondelete
deferrable	initiallyrA   )r  r  r  r  rA   c                `    g | ]*\  }}t          j        |j        |         j                  +S r7   )r9   r"   rd   r   )r;   localremoter1   s      r=   rH   z%_make_foreign_key.<locals>.<listcomp>X  sD       !E6  e)<)ABB  r?   alembic_placeholderT)r   r   )r   r9   r   r   _get_table_keymetadatar#   zipBLANK_SCHEMAtablesr   rd   append_columnr"   r   append_constraint)r   r1   r   ru   r   r   remote_table_keyplaceholder_tabler  r  r/   s    `        @r=   _make_foreign_keyr  5  s    #$E  =!"3444ee<jjB''G*HHHH&1F*GHHHBBBBv.@'ABBBZ((Z((;;|,,++k**F^  E ./O,-N"1  z222	
   %(016:L3M& &  	
 	

 #.  + (.	
 	
 	
 	
 	
  
		#$4	5	:	>	>
 
  '/67GH ()62D+E
 
 	 	ME6 .000!//$VZ\%-@-EFF  
   '''Lr?   modify_table_opsc                    |t           j        S  j        }d |j        D             } fdt	          |                                        D             }fd|D             }	 j        j         j        j                            |	|           fd|D             }
fd|	D             }|r#d|d         v rd	 |D             }d
 |
D             }nd |D             }d |
D             }d |
D             }d |D             } fd} fd}t          |          
                    |          D ]>}||         ||vr0j        rj        |v r|j                 j        nd } ||           ?t          |          
                    |          D ]>}||         ||vr0j        rj        |v r|j                 j        nd } ||           ?t           j        S )Nc                F    h | ]}t          |t          j                  |S r7   )r8   r9   r   )r;   fks     r=   r>   z(_compare_foreign_keys.<locals>.<setcomp>  s;       b)899
  r?   c           	     T    g | ]$}                     |d          dd          "|%S )rA   foreign_key_constraintrC   rF   )r;   r  r,   r   r/   s     r=   rH   z)_compare_foreign_keys.<locals>.<listcomp>  sV     
 
 
 ++vJ$ 88
 



 
 
r?   r   c                0    h | ]}t          |          S r7   )r  )r;   ru   r1   s     r=   r>   z(_compare_foreign_keys.<locals>.<setcomp>  s1       16%,,  r?   c                :    h | ]}                     |          S r7   rW   r;   r  rP   s     r=   r>   z(_compare_foreign_keys.<locals>.<setcomp>  s4       57,,R00  r?   c                :    h | ]}                     |          S r7   r]   r  s     r=   r>   z(_compare_foreign_keys.<locals>.<setcomp>  s4       68--b11  r?   r   r   c                    i | ]
}|j         |S r7   rp   rh   s     r=   re   z)_compare_foreign_keys.<locals>.<dictcomp>  s    >>>A19a>>>r?   c                    i | ]
}|j         |S r7   rp   rh   s     r=   re   z)_compare_foreign_keys.<locals>.<dictcomp>  s    FFFqy!FFFr?   c                    i | ]
}|j         |S r7   unnamed_no_optionsrh   s     r=   re   z)_compare_foreign_keys.<locals>.<dictcomp>  s    IIIq1/IIIr?   c                    i | ]
}|j         |S r7   r   rh   s     r=   re   z)_compare_foreign_keys.<locals>.<dictcomp>  s*     
 
 
()A !
 
 
r?   c                ,    i | ]}|j         	|j         |S rR   rg   rh   s     r=   re   z)_compare_foreign_keys.<locals>.<dictcomp>  s*       qv/A/A/A/Ar?   c                ,    i | ]}|j         	|j         |S rR   rg   rh   s     r=   re   z)_compare_foreign_keys.<locals>.<dictcomp>  s#    NNNa16;M;M;M;Mr?   c                                        | j        | j        dd|          rj                            t          j                            j                             t                              dd	                    | j
                  d	                    | j                  | j        r
d| j        z  nd| j                   d S d S )Nr  Fz1Detected added foreign key (%s)(%s) on table %s%s, %s. )rz   ru   rA   r   r{   CreateForeignKeyOpr   r~   r   joinsource_columnstarget_columnssource_schemasource_table)rw   
compare_tor,   ru   r  s     r=   _add_fkz&_compare_foreign_keys.<locals>._add_fk  s    --Isx!95*
 
 	  ''&66u{CC   HHC		#,--		#,---0->F)))B     	 	r?   c                                        | j        | j        dd|          rj                            t          j                            | j                             t                              dd	                    | j
                  d	                    | j                  | j        r
d| j        z  nd| j                   d S d S )Nr  Tz3Detected removed foreign key (%s)(%s) on table %s%sr&  r'  r(  )rz   ru   rA   r   r{   r   r   r~   r   r*  r+  r,  r-  r.  )rw   r/  r,   r  s     r=   
_remove_fkz)_compare_foreign_keys.<locals>._remove_fk  s    --Isx!94
 
 	  ''$44SY??   HHE		#,--		#,---0->F)))B     	 	r?   )r   r   r   r   r   get_foreign_keysr   rP   correct_for_autogen_foreignkeysr   r   rA   ru   )r,   r  r   r/   r1   r3   r   metadata_fksconn_fks_listconn_fksmetadata_fks_sigconn_fks_sigconn_fks_by_sigmetadata_fks_by_sigmetadata_fks_by_nameconn_fks_by_namer0  r2  removed_sigr/  	added_sigru   rP   s   `````                @@r=   _compare_foreign_keysr@  r  sK    ^3%..)I  ,  L
 
 
 
 
 
 ++<<& = 
 

 
 
M   :G  H ,1D %*JJ,     ;G     <D  L  
mA&666>>>>>FF5EFFF JILIII
 
-=
 
 
 +   ON<NNN            $ ?++667JKK * *,111 :"'*0D"D"D %UZ066 
 Juj))),--88II ' '	#I.O++ :"'*0@"@"@ !,22 
 GE:&&&!**r?   alter_column_opr'   r   conn_colColumn[Any]metadata_colc                   |j         }|j         }||_        ||urt          j        |j        |j                  rt          j        |          st          j        |j        |j                  rt                              d||           n4||_	        t                              d|rdnd||           t          j        S t          j        S )Nz3Ignoring nullable change on identity column '%s.%s'zDetected %s on column '%s.%s'NULLzNOT NULL)nullableexisting_nullabler   _server_default_is_computedserver_default_nullability_might_be_unset_server_default_is_identityr~   r   modify_nullabler   STOPr   )	r,   rA  r   r/   r   rB  rD  metadata_col_nullableconn_col_nullables	            r=   _compare_nullablerQ    s     )1 )(9O% 5553+X-D 	/ 7EE		/ 7 /1H 	/ HHE    /DO+HH//?Z	   *..!**r?   pluginr)   Nonec                    |                      t          dd           |                      t          dd           |                      t          dd           d S )Ntabler   foreignkeyscolumnrG  )add_autogenerate_comparatorr   r@  rQ  )rR  s    r=   setuprY    ss    
&&$  
 &&  
 &&    r?   )r,   r$   r-   r(   r   r.   r/   r0   r1   r2   r3   r2   r4   r   )rP   r&   r   r   r1   r#   r4   r   )rP   r&   r   r   r1   r#   r4   r   )r   r   r1   r#   r4   r   )r,   r$   r  r(   r   r.   r/   r0   r1   r#   r3   r#   r4   r   )r,   r$   rA  r'   r   r.   r/   r0   r   r0   rB  rC  rD  rC  r4   r   )rR  r)   r4   rS  )G
__future__r   loggingtypingr   r   r   r   r   r	   r
   r   r   
sqlalchemyr   r9   r   sqlalchemy.sqlr   sqlalchemy.sql.schemar   r   r   r   r   r(  ddl._autogenr   r   
operationsr   r   r   sqlalchemy.engine.interfacesr   r   r   sqlalchemy.sql.elementsr    r!   r"   r#   autogenerate.apir$   r%   ddl.implr&   operations.opsr'   r(   runtime.pluginsr)   r*   	getLogger__name__r~   r   r   immutabledictr   r   r   r   r   __annotations__rT   rN   r  r@  rQ  rY  r7   r?   r=   <module>rl     s   # " " " " " "                                                              * * * * * *       % % % % % % 6 6 6 6 6 6 ' ' ' ' ' ' 2 2 2 2 2 2                   ( ( ( ( ( ( % % % % % %       * * * * * *       *JJJJJJ;;;;;;FFFFFF333333222222,,,,,,++++++222222//////''''''//////000000))))))WT/1EuLMNNN g!!D+ D+ D+ D+N<9 <9 <9~ -?D,>~!, * +) 	- 	-  	 	 	 	   @   : : : :z|+ |+ |+ |+~)+ )+ )+ )+X     r?   