
    g                    
   S SK Jr  S SKJr  S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SKJ
r
  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  SSKJr  SSKJr  SSKJr  \(       a  S SKJr  S SKJ r   S SKJ!r!  S SKJ"r"  S SK#J$r$  S SK#J%r%  S SK#J&r&  S SK#J'r'  S SK#J(r(  S SK#J)r)  S S K#J*r*  S S!K#J+r+  S S"K#J,r,  S S#K#J-r-  S S$K.J/r/  S S%K0J1r1  S S&K2J3r3  S S'K4J5r5  S S(K6J7r7  S S)K6J8r8  S S*K9J:r:  S S+K9J;r;  S,r<      SaS- jr=SbS. jr>        ScS/ jr?\R                  " 5       =rArB      SdS0 jrC      SeS1 jrD      SfS2 jrE\BR                  \Rp                  5            SgS3 j5       rG\BR                  \R                  5            ShS4 j5       rI\BR                  \R                  5            SiS5 j5       rK\BR                  \R                  5      SjS6 j5       rM\BR                  \R                  5      SkS7 j5       rO      SlS8 jrP\BR                  \R                  5      SmS9 j5       rR\BR                  \R                  5      SnS: j5       rT\BR                  \R                  5            SoS; j5       rV\BR                  \R                  5            SpS< j5       rX\BR                  \R                  5      S= 5       rZ\BR                  \R                  5      S> 5       r\\BR                  \R                  5            SqS? j5       r^\BR                  \R                  5      SrS@ j5       r`\BR                  \R                  5      SsSA j5       rb\BR                  \R                  5            StSB j5       rd " SC SD5      reSuSE jrfSFSGSGSH.           SvSI jjrg      SwSJ jrh        SxSK jriSL rjSySM jrkSySN jrl        SzSO jrm      S{SP jrnS|SQ jro S}       S~SR jjrp      SSS jrq      SST jrr S       SSU jjrsSSV jrt      SSW jru S           SSX jjrv\R                  " 5       rw        SSY jrx\wR                  \RX                  5              SSZ j5       ry        SS[ jrz      SS\ jr{\wR                  \RR                  5              SS] j5       r|\wR                  \RZ                  5              SS^ j5       r}\wR                  \RH                  5              SS_ j5       r~\BR                  \R                  5      SS` j5       r\AGR                  5       rBg)    )annotations)StringION)Any)cast)Dict)List)Optional)Tuple)TYPE_CHECKING)Union)PythonPrinter)schema)sql)types)conv)quoted_name   )util)ops)sqla_compat)Literal)DialectKWArgs)ColumnElement)
TextClause)CheckConstraint)Column)
Constraint)FetchedValue)
ForeignKey)ForeignKeyConstraint)Index)MetaData)PrimaryKeyConstraint)UniqueConstraint)ARRAY)
TypeEngine)AutogenContext)Config)MigrationScript)ModifyTableOps)Computed)Identity   c                    [        U[        5      (       a  [        [        U 5      U5      $ [        R
                  " U5      $ N)
isinstancer   _f_name_alembic_autogenerate_prefixr   constraint_name_or_none)autogen_contextnames     c/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/alembic/autogenerate/render.py_render_gen_namer7   :   s5     $3ODdKK22488    c                    [         R                  " S[         R                  5      R                  SU 5      R	                  5       n [         R                  " S[         R                  5      R                  SU 5      n U $ )N^    z +$ )recompileMsubstrip)texts    r6   _indentrC   D   sR    ::dBDD!%%fd399;D::fbdd#''D1DKr8   c                (   U R                   n[        UR                  UR                  5       HE  u  pE[	        [        X@5      5      X$R                  '   [	        [        XP5      5      X%R                  '   MG     SR                  [        U5      5      US'   g )N
imports)
rF   zipupgrade_ops_listdowngrade_ops_listrC   _render_cmd_bodyupgrade_tokendowngrade_tokenjoinsorted)r4   migration_scripttemplate_argsrF   upgrade_opsdowngrade_opss         r6    _render_python_into_templatevarsrS   J   s    
 %%G&)))+;+N+N'" 4;[:4
//0 8?]<8
334'  $yy9M)r8   c                \   [        5       n[        U5      nUR                  S5        SnU R                   H<  n[	        X5      nU=(       d    [        U5      nU H  nUR                  U5        M     M>     U(       d  UR                  S5        UR                  S5        UR                  5       $ )Nz=# ### commands auto generated by Alembic - please adjust! ###Fpassz# ### end Alembic commands ###)r   r   	writeliner   	render_opboolgetvalue)op_containerr4   bufprinter	has_linesoplineslines           r6   rJ   rJ   `   s     *CC GG I/.,e	Dd# 	  &!67<<>r8   c                h    [         R                  U5      n[        R                  " U" X5      5      nU$ r/   )	renderersdispatchr   to_list)r4   r^   rendererr_   s       r6   rW   rW   {   s,     !!"%HLL/67ELr8   c                6    SR                  [        X5      5      $ )NrE   )rM   rW   r4   r^   s     r6   render_op_textrh      s     99Y344r8   c                   U R                   nUR                  SS5      nUR                  (       a  / nU(       a  U R                  5          UR	                  SUR
                  < SUR                  < S35        UR                   H  n[        X5      nUR                  U5        M!     UR	                  S5        S S S 5        U$ UR                   H  n[        X5      nUR                  U5        M!     U$ / $ ! , (       d  f       U$ = f)Nrender_as_batchFzwith op.batch_alter_table(z	, schema=z) as batch_op:r<   )	optsgetr   _within_batchappend
table_namer   rW   extend)r4   r^   rk   rj   r_   t_opt_liness          r6   _render_modify_tablers      s     Dhh0%8O	vv ..0}}bii1 FFD'>GLL) # R  1 	 #O:W%  	! 10 s   	A/C55
Dc           	     *   U R                   (       a  SnOSnUR                  [        U 5      UR                  UR                  b  SUR                  -  OS UR
                  b  SUR
                  -  OS UR                  b  SUR                  -  SS9$ S SS9$ )NzV{prefix}create_table_comment(
{indent}{comment},
{indent}existing_comment={existing}
)z{prefix}create_table_comment(
{indent}'{tname}',
{indent}{comment},
{indent}existing_comment={existing},
{indent}schema={schema}
)%r'%s'r;   )prefixtnamecommentexistingr   indent)
_has_batchformatr2   ro   ry   existing_commentr   r4   r^   templs      r6   _render_create_table_commentr      s     !! 	 	 <<+O<mm%'ZZ%;rzz! "". 2&&&%'YY%:v		!    AE   r8   c                    U R                   (       a  SnOSnUR                  [        U 5      UR                  UR                  b  SUR                  -  OS UR
                  b  SUR
                  -  SS9$ S SS9$ )NzA{prefix}drop_table_comment(
{indent}existing_comment={existing}
)zm{prefix}drop_table_comment(
{indent}'{tname}',
{indent}existing_comment={existing},
{indent}schema={schema}
)ru   rv   r;   )rw   rx   rz   r   r{   )r|   r}   r2   ro   r~   r   r   s      r6   _render_drop_table_commentr      s     !! 	 	 <<+O<mm "". 2&&&%'YY%:v		!  
 
 AE  
 
r8   c                f   UR                  5       nUR                   Vs/ s H  n[        X05      PM     sn Vs/ s H  nU(       d  M  UPM     sn[        UR                   Vs/ s H  n[        X@UR                  5      PM     sn Vs/ s H
  nUc  M  UPM     sn5      -   n[        U5      [        :  a  SSR                  U5      -   S-   nOSR                  U5      nS[        UR                  5      [        U 5      US.-  nUR                  (       a  US[        UR                  5      -  -  nUR                  n	U	(       a  US[        U	5      -  -  nUR                  n
U
(       a	  USU
< 3-  n[        UR                   5       H-  nUSUR#                  S	S
5      < SUR                   U   < 3-  nM/     UR$                  (       a*  SR                  S UR$                   5       5      nUSU-  -  nUR&                  b  US[)        UR&                  5      -  -  nUS-  nU$ s  snf s  snf s  snf s  snf )Nz*[,
]z.%(prefix)screate_table(%(tablename)r,
%(args)s)	tablenamerw   argsz,
schema=%rz,
comment=%rz,
info= _=, c              3  ,   #    U  H
  nS U-  v   M     g7f)rv   N ).0ps     r6   	<genexpr>_add_table.<locals>.<genexpr>  s     AAVaZ   z,
prefixes=[%s]z,
if_not_exists=%rz
))to_tablecolumns_render_columnrN   constraints_render_constraint_namespace_metadatalenMAX_PYTHON_ARGSrM   _identro   r2   r   ry   infokwreplace	_prefixesif_not_existsrX   )r4   r^   tablecolconsrconsr   args_strrB   ry   r   kprefixess                r6   
_add_tabler      s!   KKME
 =BMM
<ISN30M

C 	 	
 	 "--	 .D #2+A+A .			
  		
	D& 4y?"%**T**S0::d#<BMM*.?@ D
 
yy		!222mmG&/11::D(4(##BEE]aiiS12558<<  99AAA"X--	#%R-=-=(>>>EMDKc
		
s"   HH$H$# H)
H.
H.
c                    S[        U 5      [        UR                  5      S.-  nUR                  (       a  US[        UR                  5      -  -  nUR                  b  US[        UR                  5      -  -  nUS-  nU$ )Nz%(prefix)sdrop_table(%(tname)r)rw   rx   , schema=%rz, if_exists=%r))r2   r   ro   r   	if_existsrX   )r4   r^   rB   s      r6   _drop_tabler   !  sw    +.?&/ D 
yyryy 111	|| 4#555CKDKr8   c           
         UR                   R                  5        VVs/ s H  u  p#U S[        X05       3PM     snn$ s  snnf )Nr   )dialect_kwargsitems_render_potential_expr)r4   itemkeyvals       r6   _render_dialect_kwargs_itemsr   1  sL    
 ++1133HC %q'=>?3  s   >c                   UR                  5       nU R                  nU(       a  SnOSnUR                  c   e[        X5      nUR                  b'  UR                  S[        UR                  5      -  5        U[        U 5      [        XR                  5      [        UR                  R                  5      SR                  [        X 5      5      UR                  =(       d    SUR                  R                  (       a"  S[        UR                  R                  5      -  OSU(       a  SSR                  U5      -   OSS.-  nU$ )	NzL%(prefix)screate_index(%(name)r, [%(columns)s], unique=%(unique)r%(kwargs)s)za%(prefix)screate_index(%(name)r, %(table)r, [%(columns)s], unique=%(unique)r%(schema)s%(kwargs)s)zif_not_exists=%rr   Fr   r<   )rw   r5   r   r   uniquer   kwargs)to_indexr|   r   r   r   rn   rX   r2   r7   r5   r   rM   _get_index_rendered_expressionsr   r   r4   r^   index	has_batchtmplrk   rB   s          r6   
_add_indexr   :  s   KKME**I+ 	5 	
 ;;"""'?D	#&b.>.>)??@.? **=(()99+EC
 ,,'% {{!! VEKK$6$677,0$4(b D Kr8   c           	        UR                  5       nU R                  nU(       a  SnOSn[        X5      nUR                  b'  UR	                  S[        UR                  5      -  5        U[        U 5      [        XR                  5      [        UR                  5      UR                  (       a  S[        UR                  5      -  OSU(       a  SSR                  U5      -   OSS.-  nU$ )Nz(%(prefix)sdrop_index(%(name)r%(kwargs)s)zM%(prefix)sdrop_index(%(name)r, table_name=%(table_name)r%(schema)s%(kwargs)s)zif_exists=%rr   r<   r   )rw   r5   ro   r   r   )r   r|   r   r   rn   rX   r2   r7   
index_namer   ro   r   rM   r   s          r6   _drop_indexr   b  s    KKME**I9= 	 (?D	||NT",,%778.? --@R]]+:<))MF299$55,0$4(b D Kr8   c                :    [        UR                  5       U S5      /$ )NT)_uq_constraintto_constraintrg   s     r6   _add_unique_constraintr   |  s     2++-EFFr8   c                   [        [        XR                  5      5      /nU R                  (       d-  UR	                  [        [        UR                  5      5      5        UR                  [        [        UR                  5      5      [        UR                   Vs/ s H  n[        U5      PM     sn5      [        UR                   Vs/ s H  n[        U5      PM     sn5      /5        / SQnU R                  (       d  UR                  SS5        U H@  nXQR                  ;   d  M  UR                  U   nUc  M(  UR	                  U< SU< 35        MB     S[        U 5      SR                  U5      S.-  $ s  snf s  snf )N)referent_schemaonupdateondelete	initially
deferrable	use_altermatchr   source_schemar   z&%(prefix)screate_foreign_key(%(args)s)r   rw   r   )reprr7   constraint_namer|   rn   r   source_tablerp   referent_table
local_colsremote_colsinsertr   r2   rM   )r4   r^   r   r   r   r   values          r6   _add_fk_constraintr     s(    !/3E3EFGHD%%D012KK))*+7#&+788#&+89	
F %%a):EE!HE q%01	  4.?		$7  - 88s   E5E:c                    [        5       er/   NotImplementedError
constraintr4   s     r6   _add_pk_constraintr         

r8   c                    [        5       er/   r   r   s     r6   _add_check_constraintr     r   r8   c                $   [        U 5      n[        XR                  5      nUR                  (       a  [	        UR                  5      OS nUR
                  (       a  [	        UR
                  5      OS n/ nUR                  [        U5      5        U R                  (       dE  UR                  [        [	        UR                  5      5      5        Ub  UR                  SU< 35        Ub  UR                  SU< 35        U SSR                  U5       S3$ )Nschema=type_=zdrop_constraint(r   r   )r2   r7   r   r   r   constraint_typern   r   r|   ro   rM   )r4   r^   rw   r5   r   type_params_strss          r6   _drop_constraintr     s     */:FO-?-?@D"$))VBIIF*,*<*<F2%%&$EKtDz"%%4r}} 567
34VE9-.X%dii&<%=Q??r8   c                    UR                   UR                  UR                  pCnU R                  (       a  SnOSnU(       a  US-  nUS-  nU[	        U 5      U[        X@5      US.-  nU$ )Nz %(prefix)sadd_column(%(column)s)z*%(prefix)sadd_column(%(tname)r, %(column)s, schema=%(schema)rr   )rw   rx   columnr   )r   ro   r   r|   r2   r   )r4   r^   r   rx   r   templaterB   s          r6   _add_columnr     so    IIr}}bii6F!!5?--HC.? 9	 D Kr8   c                    UR                   UR                  UR                  pCnU R                  (       a  SnOSnU(       a  US-  nUS-  nU[	        U 5      [        U5      [        U5      [        U5      S.-  nU$ )Nz %(prefix)sdrop_column(%(cname)r)z*%(prefix)sdrop_column(%(tname)r, %(cname)rr   r   )rw   rx   cnamer   )r   ro   column_namer|   r2   r   )r4   r^   r   rx   r   r   rB   s          r6   _drop_columnr     sw    !#BMM2>>;F!!5?--HC.?$.	 D Kr8   c                ~   UR                   nUR                  nUR                  nUR                  nUR                  nUR
                  nUR                  R                  SS 5      nUR                  n	UR                  n
UR                  nUR                  nUR                  nSnU R                  (       a  SnOSnU[        U 5      UUS.-  nU	b  USU< S[        X5      < 3-  nUSLa  [!        X@5      nUSU< S	U< 3-  nUb  USU< S
[        XP5      < 3-  nUb  USU< SU< 3-  nUSLa  USU< SU< 3-  nUb  USU< SU< 3-  nUc  U
b  USU< SU
< 3-  nUb  USU< SU< 3-  nUSL a  U(       a  [!        X5      nUSU< SU< 3-  nU(       a  U R                  (       d  USU< SU< 3-  nUS-  nU$ )Nautoincrementz           z %(prefix)salter_column(%(cname)rz+%(prefix)salter_column(%(tname)r, %(cname)r)rw   rx   r   r   zexisting_type=Fzserver_default=r   z	nullable=zcomment=zexisting_comment=zexisting_nullable=zautoincrement=zexisting_server_default=r   r   )ro   r   modify_server_defaultmodify_typemodify_nullablemodify_commentr   rl   existing_typeexisting_nullabler~   existing_server_defaultr   r|   r2   
_repr_type_render_server_default)r4   r^   rx   r   server_defaultr   nullablery   r   r   r   r~   r   r   r{   r   rB   rendereds                     r6   _alter_columnr    s    MMENNE--NNNE!!HGEEIIot4M$$M,,** 88YYFF!!5@.? D
  }6
 	
 U").JFH==6:e+MNNfh77eVW55#f6FGG-9v7HII 6=AA#:)#
 	VXFFo00FF33CKDKr8   c                  (    \ rS rSrSS jrSS jrSrg)r1   i.  c                    Xl         X l        g r/   )rw   r5   )selfrw   r5   s      r6   __init___f_name.__init__/  s    	r8   c                P    U R                   < S[        U R                  5      < S3$ )Nzf(r   )rw   r   r5   )r  s    r6   __repr___f_name.__repr__3  s     KK		):;;r8   )r5   rw   N)rw   strr5   r   returnNone)r  r  )__name__
__module____qualname____firstlineno__r  r	  __static_attributes__r   r8   r6   r1   r1   .  s    <r8   r1   c                |    U c  U $ [        U [        5      (       a  [        U 5      $ [        U [        5      (       a  U $ g)zproduce a __repr__() object for a string identifier that may
use quoted_name() in SQLAlchemy 0.9 and greater.

The issue worked around here is that quoted_name() doesn't have
very good repr() behavior by itself when unicode is involved.

N)r0   r   r  )r5   s    r6   r   r   7  s<     |	D+	&	&4y	D#		 
r8   TF)wrap_in_textis_server_defaultis_indexc                   [        U [        R                  5      (       a?  U(       a  SnOSnU[        U5      UR                  R
                  R                  XUS9S.-  $ [        U 5      $ )Nz%(prefix)stext(%(sql)r)z%(sql)r)r  r  )rw   r   )r0   r   ClauseElement_sqlalchemy_autogenerate_prefixmigration_contextimplrender_ddl_sql_exprr   )r   r4   r  r  r  r   s         r6   r   r   G  so     %**++0H H5oF"4499MMX N 
 
 	
 E{r8   c                    U R                    Vs/ s HK  n[        U[        R                  5      (       a  [	        [        [        USS 5      5      5      O	[        X!SS9PMM     sn$ s  snf )Nr5   T)r  )expressionsr0   	sa_schemar   r   r   getattrr   )idxr4   exps      r6   r   r   `  si     ?? #C #y//00 VT234'tLM #  s   AA$c           
        / nUR                   nU R                  (       a&  UR                  S[        U R                  5      45        U R                  (       a&  UR                  S[        U R                  5      45        U(       dR  U(       aK  U R
                  R                  (       a0  UR                  S[        U R
                  R                  5      45        U(       d7  U R                  (       a&  UR                  S[        XR                  5      45        [        X5      nU(       a  [        [        XR                  5      5      /nU(       d,  U[        [        U R
                  R                  5      5      /-  nUR                  [        U R                   Vs/ s H  n[        UR                  5      PM     sn5      5        UR                  U VV	s/ s H  u  pU< SU	< 3PM     sn	n5        UR                  U5        S[        U5      SR                  U5      S.-  $ U R                   Vs/ s H!  n[        [        UR                  5      5      PM#     nnUR                  U VV	s/ s H  u  pU< SU	< 3PM     sn	n5        UR                  U5        S	[!        U5      SR                  U5      S.-  $ s  snf s  sn	nf s  snf s  sn	nf )
Nr   r   r   r5   r   z,%(prefix)screate_unique_constraint(%(args)s)r   r   z$%(prefix)sUniqueConstraint(%(args)s))r|   r   rn   r  r   r   r   r   r5   r7   r   r   r   rp   r2   rM   r  )
r   r4   alterrk   r   dialect_optionsr   r   r   vs
             r6   r   r   m  s   
 #%D**I\3z'<'<#=>?[#j&:&:";<=:#3#3#:#:Xvj&6&6&=&=>?@Z__%oGH	
 3?OO%oGHIT&!1!1!6!67899DDj6H6HI6Hs&*6HIJK$7$$!1%$78O$=2?CIIdOA
 
 	

 3=2D2DE2D3VCHH%&2DE$7$$!1%$78O$55oFIIdO9
 
 	
 J7 F7s   J4J9
,(J?&K
c                H    U R                   S   nUc  SUR                  -  $ U$ )Nuser_module_prefixz%s.)rk   r  )r4   targetrw   s      r6   _user_autogenerate_prefixr*    s.    !!"67F~v((((r8   c                2    U R                   S   =(       d    S$ )Nsqlalchemy_module_prefixr<   rk   r4   s    r6   r  r    s     :;ArAr8   c                V    U R                   (       a  gU R                  S   =(       d    S$ )Nz	batch_op.alembic_module_prefixr<   )r|   rk   r.  s    r6   r2   r2     s%    !!##$;<BBr8   c                p    SUR                   ;   a&  UR                   S   nU(       a  U" XU5      nUSLa  U$ g)Nrender_itemFr-  )r   object_r4   renderr  s        r6   _user_defined_renderr5    sA     ,,, %%m4eo>Hu$r8   c                   [        SX5      nUSLa  U$ / n/ nU R                  (       a\  [        U R                  U5      nU(       a?  [        U R                  5      (       a  UR	                  U5        OUR	                  SU45        U R
                  b;  U R
                  [        R                  :w  a  UR	                  SU R
                  45        U R                  b  UR	                  SU R                  45        U R                  (       a  UR	                  SU R                  45        U R                  nU(       a  UR	                  SSU-  45        S	[        U5      [        U R                  5      [        U R                  U5      U(       a.  S
R!                  U Vs/ s H  n[#        U5      PM     sn5      S
-   OSS
R!                  U VVs/ s H  u  pxU< SU< 3PM     snn[        R$                  " U 5      R'                  5        V	Vs/ s H  u  pU	< S[)        X5      < 3PM     snn	-   5      S.-  $ s  snf s  snnf s  snn	f )Nr   Fr   r   r   systemry   ru   z8%(prefix)sColumn(%(name)r, %(type)s, %(args)s%(kwargs)s)r   r<   r   )rw   r5   typer   r   )r5  r   r   *_should_render_server_default_positionallyrn   r   r   AUTOINCREMENT_DEFAULTr   r7  ry   r  r   r5   r   r8  rM   r  _column_kwargsr   r   )
r   r4   r  r   rk   ry   argkwnamer   r   s
             r6   r   r     s    $HfFHuD"$D)!!?
 9%%  H%-x89 	(  K$E$EE_f&:&:;<"Z12}}Xv}}-.nnGYw/0 F1/Bv{{#6;;8@D		t4t3s8t45<"II<@AD[VFC(DA %0$>$>v$F$L$L$N %O 23HJ$NI   5 Bs   H3H8H>c                h    [         R                  " U 5      =(       d    [         R                  " U 5      $ r/   )r   _server_default_is_computed_server_default_is_identity)r   s    r6   r9  r9    s-    22 A		0	0	@Ar8   c                F   [        SX5      nUSLa  U$ [        R                  " U 5      (       a  [        [	        SU 5      U5      $ [        R
                  " U 5      (       a  [        [	        SU 5      U5      $ [        U [        R                  5      (       aA  [        U R                  [        5      (       a  U R                  n O[        U R                  USS9$ [        U [        5      (       a(  U(       a!  [        [        R                  " SSU 5      5      n [	        [        U 5      $ )	Nr   Fr+   r,   T)r  z^'|'$r<   )r5  r   r?  _render_computedr   r@  _render_identityr0   r  DefaultClauser<  r  r   r   r=   r@   )defaultr4   repr_r  s       r6   r   r     s     $$4gOHu..w77Z 9?KK		0	0	9	9Z 9?KK	GY44	5	5gkk3''kkG)_  '3ErvvhG45Wr8   c                    [        U R                  USS9n0 nU R                  b  U R                  US'   S[        U5      USR	                  S UR                  5        5       5      S.-  $ )NFr  	persistedz(%(prefix)sComputed(%(text)s, %(kwargs)s)r   c              3  ,   #    U  H
  nS U-  v   M     g7fz%s=%sNr   r   pairs     r6   r   #_render_computed.<locals>.<genexpr>       GWt^r   )rw   rB   r   )r   sqltextrI  r  rM   r   )computedr4   rB   r   s       r6   rB  rB    ss     "/D F%&00{51/B99GGG9  r8   c                    [         R                  " U SS9nS[        U5      SR                  S UR	                  5        5       5      S.-  $ )NT)r   z%(prefix)sIdentity(%(kwargs)s)r   c              3  ,   #    U  H
  nS U-  v   M     g7frK  r   rL  s     r6   r   #_render_identity.<locals>.<genexpr>,  rO  r   )rw   r   )r   _get_identity_options_dictr  rM   r   )identityr4   r   s      r6   rC  rC  #  sM     33F ,1/B99GGG/  r8   c                &   [        SX5      nUSLa  U$ [        UR                  S5      (       a&  UR                  R                  R	                  X5      nOS n[        U 5      R                  nUR                  nU(       d&  [        R                  " U 5      (       a  [        X5      $ UR                  S5      (       aV  [        R                  " SU5      nUc   eUR                  S5      nUb  UR                  SU-  5        U(       a  U$ U< SU < 3$ U(       a  U$ UR                  S	5      (       aP  S
U R                   -  [#        5       ;   a"  [#        5       S
U R                   -     n	U	" X5      $ [%        U5      n
U
< U < 3$ ['        X5      n
U
< U < 3$ )Nr8  Fr  sqlalchemy.dialectssqlalchemy\.dialects\.(\w+)   z"from sqlalchemy.dialects import %s.zsqlalchemy.z_render_%s_type)r5  hasattrr  r  render_typer8  r  rF   r   _type_has_variants_render_Variant_type
startswithr=   r   groupadd__visit_name__globalsr  r*  )r   r4   _skip_variantsr  impl_rtmodrF   r   dnamefnrw   s              r6   r   r   0  sl   
 $FECHu00&99!3388DD
 
u+
 
 C%%Gk<<UCC#E;;	-	.	.7=   AKK<uDEN#U++			&	&u333wy@,u/C/CCDBe--4_EF#U++*?B''r8   c           	     8    [        [        [        XSS5      5      $ )N	item_typez(.+?\())r   r  _render_type_w_subtype)r   r4   s     r6   _render_ARRAY_typerm  ]  s!    K	
 r8   c           	         [         R                  " U 5      u  p#[        X!SS9nUb  USLd   e[        U5       H  nX5   nUS[        XaSS9< SU< S3-  nM     U$ )NT)re  Fz.with_variant(r   r   )r   _get_variant_mappingr   rN   )r   r4   	base_typevariant_mappingbasedialecttyps          r6   r_  r_  f  sp     "-!A!A%!HIiFDE 111/*&sDA
 	
 + Kr8   c                   [        U 5      n[        XS 5      nUc  g[        U5      n[        R                  " SSU5      n[	        [        X5      U5      n[        R                  " X7-   SU-  U5      n	U(       a  U< U	< 3$ [        U 5      R                  n
U
R                  S5      (       a6  [        R                  " SU
5      nUc   eUR                  S5      nU< SU	< 3$ U
R                  S	5      (       a  [        U5      nU< U	< 3$ g )
NFz([\(\)])z\\\1z\1%srX  rY  rZ  r[  
sqlalchemy)r   r   r=   r@   r   r8  r  r`  r   ra  r  )r   r4   attrnameregexprw   
outer_repr
inner_type
inner_reprsub_type
outer_typerg  r   rh  s                r6   rl  rl  u  s     eJ$/Jj!JWj9J'%2ODH+Wx-?LJ,,
u+
 
 C
~~+,,7=   A,,		%	%0A,,r8   c                     [         R                  U 5      nU" XU5      $ ! [         a!    [        R                  " SU -  5        SU -  s $ f = f)Nz(No renderer is established for object %rz[Unknown Python object %r])_constraint_renderersrc   
ValueErrorr   warn)r   r4   namespace_metadatare   s       r6   r   r     sV    
I(11*=
 
5GHH	  9		<zIJ+j889s     (A
Ac                   [        SX5      nUSLa  U$ U R                  (       d  g / nU R                  (       a/  UR                  S[	        [        XR                  5      5      45        S[        U5      SR                  U R                   Vs/ s H  n[	        UR                  5      PM     snU VVs/ s H  u  pgU< SU< 3PM     snn-   5      S.-  $ s  snf s  snnf )Nprimary_keyFr5   z(%(prefix)sPrimaryKeyConstraint(%(args)s)r   r   r   )r5  r   r5   rn   r   r7   r  rM   )r   r4   r  r  rk   cr=  r   s           r6   _render_primary_keyr    s     $M:OHuDT*?OOLMN	
 61/B		#-#5#56#5aT!&&\#56:>?$;6&#&$?@
9   7?s   C2Cc                   U R                  5       nUR                  S5      nUSS u  pVUb  [        U5      S:X  a
  U< SU< 3nOSR                  USS 5      nU R                  (       ds  U R
                  bf  U R
                  R                  bO  XrR                  ;   a@  UR                  U   R                  R                  U5      nUb  [        UR                  5      nU< SU< 3nU$ )zpImplement a 'safe' version of ForeignKey._get_colspec() that
won't fail if the remote table can't be resolved.

r[  Nr   r   )_get_colspecsplitr   rM   link_to_nameparentr   tablesr  rl   r   r5   )	fkmetadata_schemar  colspectokensrx   colnametable_fullnamer   s	            r6   _fk_colspecr    s     ooG]]3FBC[NE"s6{a'7$3U;&2,/ OOII!IIOO' 666$++N;==AA'JC *'1GNr8   c                   U R                   (       a&  UR                  S[        U R                   5      45        U R                  (       a&  UR                  S[        U R                  5      45        U R                  (       a&  UR                  S[        U R                  5      45        U R
                  (       a&  UR                  S[        U R
                  5      45        U R                  (       a&  UR                  S[        U R                  5      45        U R                  (       a'  UR                  S[        U R                  5      45        g g )Nr   r   r   r   r   r   )r   rn   r   r   r   r   r   r   )r   rk   s     r6   _populate_render_fk_optsr    s     Zj&9&9!:;<Zj&9&9!:;<[$z';';"<=>\4
(=(=#>?@[$z';';"<=>Wd:#3#3456 r8   c                  ^^ [        SX5      nUSLa  U$ / nU R                  (       a/  UR                  S[        [	        XR                  5      5      45        [        X5        TR                  mS[        U5      SR                  S U R                   5       5      SR                  UU4S jU R                   5       5      SR                  U VVs/ s H  u  pVU< SU< 3PM     snn5      S	.-  $ s  snnf )
Nforeign_keyFr5   zC%(prefix)sForeignKeyConstraint([%(cols)s], [%(refcols)s], %(args)s)r   c              3  r   #    U  H-  n[        [        UR                  R                  5      5      v   M/     g 7fr/   )r   r   r  r5   )r   fs     r6   r   &_render_foreign_key.<locals>.<genexpr>  s)      5HVAHHMM*++5Hs   57c              3  P   >#    U  H  n[        [        UTT5      5      v   M     g 7fr/   )r   r  )r   r  apply_metadata_schemar  s     r6   r   r    s+      !,A [$9;MNOO,s   #&r   )rw   colsrefcolsr   )
r5  r5   rn   r   r7   r  r   r  rM   elements)r   r4   r  r  rk   r=  r   r  s     `    @r6   _render_foreign_keyr    s     $M:OHuDT*?OOLMN	
 Z..55	# 6oFII 5?5H5H  yy !#,,!  II<@AD[VFC(DA
	
 Bs   C1c                @    [        SX5      nUSLa  U$ [        XS5      $ )Nr   F)r5  r   )r   r4   r  r  s       r6   _render_unique_constraintr    s*     $HjJHu*u==r8   c           	        [        SX5      nUSLa  U$ U R                  (       aO  [        U R                  S5      (       a4  [        U R                  R                  [
        R                  5      (       a  g / nU R                  (       a/  UR                  S[        [        XR                  5      5      45        S[        U5      U(       a  SSR                  S U 5       5      -   OS[        U R                  USS	9S
.-  $ )NcheckFr)  r5   z.%(prefix)sCheckConstraint(%(sqltext)s%(opts)s)r   c              3  8   #    U  H  u  pU< S U< 3v   M     g7f)r   Nr   )r   r   r&  s      r6   r   +_render_check_constraint.<locals>.<genexpr>K  s     @441A.4s   r<   rH  )rw   rk   rP  )r5  _create_ruler\  r0   r)  sqltypesr&   r5   rn   r   r7   r  rM   r   rP  )r   r4   r  r  rk   s        r6   _render_check_constraintr  ,  s     $GZIHu 	J++X66##**
 

 DT*?OOLMN	
 <1/B  DII@4@@A)e

? 
 
r8   c                t    [        UR                  [        5      (       d  [        S5      eSUR                  -  $ )NznAutogenerate rendering of SQL Expression language constructs not supported here; please use a plain SQL stringzop.execute(%r))r0   rP  r  r   rg   s     r6   _execute_sqlr  U  s7    bjj#&&!@
 	
 bjj((r8   )r4   r'   r5   zsqla_compat._ConstraintNamer  z*Optional[Union[quoted_name, str, _f_name]])rB   r  r  r  )r4   r'   rO   r)   rP   zDict[str, Union[str, Config]]r  r  )rZ   zops.OpContainerr4   r'   r  r  )r4   r'   r^   ops.MigrateOperationr  	List[str])r4   r'   r^   r  r  r  )r4   r'   r^   r*   r  r  )r4   r'   r^   zops.CreateTableCommentOpr  r  )r4   r'   r^   zops.DropTableCommentOpr  r  )r4   r'   r^   zops.CreateTableOpr  r  )r4   r'   r^   zops.DropTableOpr  r  )r4   r'   r   r   r  z	list[str])r4   r'   r^   zops.CreateIndexOpr  r  )r4   r'   r^   zops.DropIndexOpr  r  )r4   r'   r^   zops.CreateUniqueConstraintOpr  r  )r4   r'   r^   zops.CreateForeignKeyOpr  r  )r4   r'   r^   zops.DropConstraintOpr  r  )r4   r'   r^   zops.AddColumnOpr  r  )r4   r'   r^   zops.DropColumnOpr  r  )r4   r'   r^   zops.AlterColumnOpr  r  )r5   z!Optional[Union[quoted_name, str]]r  Optional[str])r   r   r4   r'   r  rX   r  rX   r  rX   r  r  )r!  r!   r4   r'   r  r  )r   r$   r4   r'   r$  rX   r  r  )r4   r'   r  r  )r   r  r3  r   r4   r'   r  zUnion[str, Literal[False]])r   zColumn[Any]r4   r'   r  r  )r   r   r  rX   )T)rE  zBOptional[Union[FetchedValue, str, TextClause, ColumnElement[Any]]]r4   r'   rF  rX   r  r  )rQ  r+   r4   r'   r  r  )rV  r,   r4   r'   r  r  )F)r   r&   r4   r'   re  rX   r  r  )r   r%   r4   r'   r  r  )r   r&   r4   r'   r  r  r/   )r   r&   r4   r'   rw  r  rx  r  rw   r  r  z$Union[Optional[str], Literal[False]])r   r   r4   r'   r  Optional[MetaData]r  r  )r   r#   r4   r'   r  r  r  r  )r  r   r  r  r  r"   r  r  )r   r    rk   zList[Tuple[str, str]]r  r  )r   r    r4   r'   r  r"   r  r  )r   r$   r4   r'   r  r  r  r  )r   r   r4   r'   r  r  r  r  )r4   r'   r^   zops.ExecuteSQLOpr  r  )
__future__r   ior   r=   typingr   r   r   r   r	   r
   r   r   
mako.pygenr   rv  r   r  r   r   r  sqlalchemy.sql.elementsr   r   r<   r   
operationsr   r   r   sqlalchemy.sql.baser   r   r   sqlalchemy.sql.schemar   r   r   r   r   r    r!   r"   r#   r$   sqlalchemy.sql.sqltypesr%   sqlalchemy.sql.type_apir&   alembic.autogenerate.apir'   alembic.configr(   alembic.operations.opsr)   r*   alembic.util.sqla_compatr+   r,   r   r7   rC   rS   
Dispatcherdefault_renderersrb   rJ   rW   rh   dispatch_forrs   CreateTableCommentOpr   DropTableCommentOpr   CreateTableOpr   DropTableOpr   r   CreateIndexOpr   DropIndexOpr   CreateUniqueConstraintOpr   CreateForeignKeyOpr   CreatePrimaryKeyOpr   CreateCheckConstraintOpr   DropConstraintOpr   AddColumnOpr   DropColumnOpr   AlterColumnOpr  r1   r   r   r   r   r*  r  r2   r5  r   r9  r   rB  rC  r   rm  r_  rl  r  r   r  r  r  r  r  r  ExecuteSQLOpr  branchr   r8   r6   <module>r     s   #  	          $ *  ( ( /   1525,020:+.:6-27%6511 9#9
%9 09:#:%: 1: 
	:& !% 1 1 I!# 	6#)=5#5)=55 **+#)7 ,8 001#)A 2B ../#)? 0< ))*6 +6r ( )#+8 ))*$ +$N ( )2 445G#G)EGG 6G ../###)?## 0#L ../  0  334  5  ,,-@#@)=@@ .@( ( )$ (() *( ))*9#9):99 +9x< <( ## 	
   	2
	
!/

'
 '
#'
 '
 		'
TBC			/=		66*866rA  $	
  :)7"

)7

  !*(*(#*( *( 		*(Z(6( !#  	
  *D ) II#I +I 	I ##I$B$BC$# + 	 D4"""" !" 		"J7$7,A7	7" ##I$B$BC"$"#" !" 	" D"J ##I$>$>?	> 	>#	> +	> 			> @	> ##I$=$=>%%#% +% 	% ?%P (()) *) $$&	r8   