
    Eh                    
   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  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&J0r0  S S'K1J2r2  S S(K3J4r4  S S)K5J6r6  S S*K7J8r8  S S+K9J:r:  S S,K9J;r;  S-r<      ScS. jr=SdS/ jr>        SeS0 jr?\R                  " 5       =rArB      SfS1 jrC      SgS2 jrD      ShS3 jrE\BR                  \Rv                  5            SiS4 j5       rG\BR                  \R                  5            SjS5 j5       rI\BR                  \R                  5            SkS6 j5       rK\BR                  \R                  5      SlS7 j5       rM\BR                  \R                  5      SmS8 j5       rO      SnS9 jrP\BR                  \R                  5      SoS: j5       rR\BR                  \R                  5      SpS; j5       rT\BR                  \R                  5            SqS< j5       rV\BR                  \R                  5            SrS= j5       rX\BR                  \R                  5      S> 5       rZ\BR                  \R                  5      S? 5       r\\BR                  \R                  5            SsS@ j5       r^\BR                  \R                  5      StSA j5       r`\BR                  \R                  5      SuSB j5       rb\BR                  \R                  5            SvSC j5       rd " SD SE5      reSwSF jrfSGSHSHSI.           SxSJ jjrg      SySK jrh        SzSL jriSM rjS{SN jrkS{SO jrl        S|SP jrm      S}SQ jrnS~SR jro S       SSS jjrp      SST jrq      SSU jrrS{SV jrs S       SSW jjrtSSX jru      SSY jrv S           SSZ jjrw\R                  " 5       rx        SS[ jry\xR                  \R^                  5              SS\ j5       rz        SS] jr{      SS^ jr|\xR                  \RX                  5              SS_ j5       r}\xR                  \R`                  5              SS` j5       r~\xR                  \RN                  5              SSa j5       r\BR                  \GR                   5      SSb j5       r\AGR                  5       rBg)    )annotations)StringION)Any)cast)Dict)List)Optional)Tuple)TYPE_CHECKING)Union)PythonPrinter)schema)sql)types)_DialectArgView)conv)Label)quoted_name   )util)ops)sqla_compat)Literal)Computed)Identity)ColumnElement)
TextClause)CheckConstraint)Column)
Constraint)FetchedValue)
ForeignKey)ForeignKeyConstraint)Index)MetaData)PrimaryKeyConstraint)UniqueConstraint)ARRAY)
TypeEngine)AutogenContext)Config)MigrationScript)ModifyTableOps   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     ^/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/alembic/autogenerate/render.py_render_gen_namer8   ;   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    r7   _indentrD   E   sR    ::dBDD!%%fd399;D::fbdd#''D1DKr9   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)
rG   zipupgrade_ops_listdowngrade_ops_listrD   _render_cmd_bodyupgrade_tokendowngrade_tokenjoinsorted)r5   migration_scripttemplate_argsrG   upgrade_opsdowngrade_opss         r7    _render_python_into_templatevarsrT   K   s    
 %%G&)))+;+N+N'" 4;[:4
//0 8?]<8
334'  $yy9M)r9   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_containerr5   bufprinter	has_linesoplineslines           r7   rK   rK   a   s     *CC GG I/.,e	Dd# 	  &!67<<>r9   c                h    [         R                  U5      n[        R                  " U" X5      5      nU$ r0   )	renderersdispatchr   to_list)r5   r_   rendererr`   s       r7   rX   rX   |   s,     !!"%HLL/67ELr9   c                6    SR                  [        X5      5      $ )NrF   )rN   rX   r5   r_   s     r7   render_op_textri      s     99Y344r9   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   rX   extend)r5   r_   rl   rk   r`   t_opt_liness          r7   _render_modify_tablert      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formatr3   rp   rz   existing_commentr   r5   r_   templs      r7   _render_create_table_commentr      s     !! 	 	 <<+O<mm%'ZZ%;rzz! "". 2&&&%'YY%:v		!    AE   r9   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}
)rv   rw   r<   )rx   ry   r{   r   r|   )r}   r~   r3   rp   r   r   r   s      r7   _render_drop_table_commentr      s     !! 	 	 <<+O<mm "". 2&&&%'YY%:v		!  
 
 AE  
 
r9   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)	tablenamerx   argsz,
schema=%rz,
comment=%rz,
info= _=, c              3  ,   #    U  H
  nS U-  v   M     g7f)rw   N ).0ps     r7   	<genexpr>_add_table.<locals>.<genexpr>  s     AAVaZ   z,
prefixes=[%s]z,
if_not_exists=%rz
))to_tablecolumns_render_columnrO   constraints_render_constraint_namespace_metadatalenMAX_PYTHON_ARGSrN   _identrp   r3   r   rz   infokwreplace	_prefixesif_not_existsrY   )r5   r_   tablecolconsrconsr   args_strrC   rz   r   kprefixess                r7   
_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)rx   ry   , schema=%rz, if_exists=%r))r3   r   rp   r   	if_existsrY   )r5   r_   rC   s      r7   _drop_tabler   "  sw    +.?&/ D 
yyryy 111	|| 4#555CKDKr9   c           
     t    UR                  5        VVs/ s H  u  p#U S[        X05       3PM     snn$ s  snnf )Nr   )items_render_potential_expr)r5   dialect_kwargskeyvals       r7   _render_dialect_kwargs_itemsr   2  sF    
 ',,..HC %q'=>?.  s   4c                   UR                  5       nU R                  nU(       a  SnOSnUR                  c   e[        XR                  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=   )rx   r6   r   r   uniquer   kwargs)to_indexr}   r   r   r   r   ro   rY   r3   r8   r6   r   rN   _get_index_rendered_expressionsr   r   r5   r_   index	has_batchtmplrl   rC   s          r7   
_add_indexr   ;  s   KKME**I+ 	5 	
 ;;"""'9M9MND	#&b.>.>)??@.? **=(()99+EC
 ,,'% {{!! VEKK$6$677,0$4(b D Kr9   c           	        UR                  5       nU R                  nU(       a  SnOSn[        XR                  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   )rx   r6   rp   r   r   )r   r}   r   r   r   ro   rY   r3   r8   
index_namer   rp   r   rN   r   s          r7   _drop_indexr   c  s    KKME**I9= 	 (9M9MND	||NT",,%778.? --@R]]+:<))MF299$55,0$4(b D Kr9   c                :    [        UR                  5       U S5      /$ )NT)_uq_constraintto_constraintrh   s     r7   _add_unique_constraintr   }  s     2++-EFFr9   c                   UR                  5       n[        [        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XaR                  ;   d  M  UR                  U   nUc  M(  UR                  U< SU< 35        MB     [        XR                  5      nS[!        U 5      SR#                  U5      U(       a  SSR#                  U5      -   S.-  $ SS.-  $ s  snf s  snf )	N)referent_schemaonupdateondelete	initially
deferrable	use_altermatchr   source_schemar   z8%(prefix)screate_foreign_key(%(args)s%(dialect_kwargs)s)r   r=   )rx   r   r   )r   reprr8   constraint_namer}   ro   r   source_tablerq   referent_table
local_colsremote_colsinsertr   r   r   r3   rN   )	r5   r_   
constraintr   r   r   r   valuer   s	            r7   _add_fk_constraintr     sw    !!#J!/3E3EFGHD%%D012KK))*+7#&+788#&+89	
F %%a):EE!HE q%01	  222N F.?		$0>D499^,,	I   EG	I  5 88s   )F:F?c                    [        5       er0   NotImplementedErrorr   r5   s     r7   _add_pk_constraintr         

r9   c                    [        5       er0   r   r   s     r7   _add_check_constraintr     r   r9   c                j   [        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UR                  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b  UR                  SU 35        U SSR                  U5       S3$ )Nschema=type_=z
if_exists=zdrop_constraint(r   r   )r3   r8   r   r   r   constraint_typer   ro   r   r}   rp   rN   )r5   r_   rx   r6   r   type_r   params_strss           r7   _drop_constraintr     s    */:FO-?-?@D"$))VBIIF*,*<*<F2%%&$EIKtDz"%%4r}} 567
34VE9-.Z	{34X%dii&<%=Q??r9   c                    UR                   UR                  UR                  UR                  4u  p#pEU R                  (       a  SnOSnU(       a  US-  nUb  US-  nUS-  nU[        U 5      U[        X@5      UUS.-  nU$ )Nz %(prefix)sadd_column(%(column)s)z*%(prefix)sadd_column(%(tname)r, %(column)s, schema=%(schema)rz!, if_not_exists=%(if_not_exists)rr   )rx   ry   columnr   r   )r   rp   r   r   r}   r3   r   )r5   r_   r   ry   r   r   templaterC   s           r7   _add_columnr     s     			

		
	,(F6 !!5?--H$;;HC.? 9& D Kr9   c                $   UR                   UR                  UR                  UR                  4u  p#pEU R                  (       a  SnOSnU(       a  US-  nUb  US-  nUS-  nU[        U 5      [        U5      [        U5      [        U5      US.-  nU$ )Nz %(prefix)sdrop_column(%(cname)r)z*%(prefix)sdrop_column(%(tname)r, %(cname)rr   z, if_exists=%(if_exists)rr   )rx   ry   cnamer   r   )r   rp   column_namer   r}   r3   r   )r5   r_   r   ry   r   r   r   rC   s           r7   _drop_columnr     s     			


	-)F; !!5?--H 33HC.?$. D Kr9   c                   UR                   n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
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)rx   ry   r   r   zexisting_type=Fzserver_default=znew_column_name=r   z	nullable=zcomment=zexisting_comment=zexisting_nullable=zautoincrement=zexisting_server_default=r   r   )rp   r   modify_server_defaultmodify_typemodify_nullablemodify_commentmodify_namer   rm   existing_typeexisting_nullabler   existing_server_defaultr   r}   r3   
_repr_type_render_server_default)r5   r_   ry   r   server_defaultr   nullablerz   newnamer   r   r   r   r   r   r|   r   rC   rendereds                      r7   _alter_columnr    s    MMENNE--NNNE!!HGnnGEEIIot4M$$M,,** 88YYFF!!5@.? D
  }6
 	
 U").JFH==VW==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Kr9   c                  (    \ rS rSrSS jrSS jrSrg)r2   iL  c                    Xl         X l        g r0   )rx   r6   )selfrx   r6   s      r7   __init___f_name.__init__M  s    	r9   c                P    U R                   < S[        U R                  5      < S3$ )Nzf(r   )rx   r   r6   )r  s    r7   __repr___f_name.__repr__Q  s     KK		):;;r9   )r6   rx   N)rx   strr6   r   returnNone)r  r  )__name__
__module____qualname____firstlineno__r  r
  __static_attributes__r   r9   r7   r2   r2   L  s    <r9   r2   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)r1   r   r  )r6   s    r7   r   r   U  s<     |	D+	&	&4y	D#		 
r9   TF)wrap_in_elementis_server_defaultis_indexc                  [        U [        R                  5      (       a  UR                  R                  R                  XUS9nU(       ao  [        U5      nU(       a  SOSnU U SU< S3nU(       aE  [        U [        5      (       a0  [        U R                  5      [        L a  USU R                  < S3-   $ U$ [        U5      $ [        U 5      $ )N)r  r  literal_columnrC   (r   z.label()r1   r   ClauseElementmigration_contextimplrender_ddl_sql_expr_sqlalchemy_autogenerate_prefixr   typer6   r  r   )	r   r5   r  r  r  sql_textrx   element	value_strs	            r7   r   r   e  s     %**++"4499MM N 
 4_EF*2&G!(7)1XL:Iue,,$+ WUZZN!#<<<  >!E{r9   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 )Nr6   T)r  )expressionsr1   	sa_schemar   r   r   getattrr   )idxr5   exps      r7   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                  45        U R                  (       a  UR                  SU R                  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R                  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   r6   r   z,%(prefix)screate_unique_constraint(%(args)s)r   rx   r   z$%(prefix)sUniqueConstraint(%(args)s))r}   r   ro   r   r   r   r   r6   r8   r   r   r   r   rq   r3   rN   r  )
r   r5   alterrl   r   dialect_optionsr   r   r   vs
             r7   r   r     s   
 #%D**I\:#8#89:[*"6"678:#3#3#:#:Xvj&6&6&=&=>?@Z__%oGH	
 322O %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   J,J1
$(J7J<
c                H    U R                   S   nUc  SUR                  -  $ U$ )Nuser_module_prefixz%s.)rl   r  )r5   targetrx   s      r7   _user_autogenerate_prefixr2    s.    !!"67F~v((((r9   c                2    U R                   S   =(       d    S$ )Nsqlalchemy_module_prefixr=   rl   r5   s    r7   r  r    s     :;ArAr9   c                V    U R                   (       a  gU R                  S   =(       d    S$ )Nz	batch_op.alembic_module_prefixr=   )r}   rl   r6  s    r7   r3   r3     s%    !!##$;<BBr9   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_itemFr5  )r   object_r5   renderr  s        r7   _user_defined_renderr=    sA     ,,, %%m4eo>Hu$r9   c                t   [        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U R$                  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   systemrz   rv   z8%(prefix)sColumn(%(name)r, %(type)s, %(args)s%(kwargs)s)r   r=   r   )rx   r6   r   r   r   )r=  r   r   *_should_render_server_default_positionallyro   r   r   AUTOINCREMENT_DEFAULTr   r?  rz   r  r   r6   r   r   rN   r  r   r   r   )
r   r5   r  r   rl   rz   argkwnamer   r   s
             r7   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 %+MM$7$7$9 %: 23HJ$9I   5 Bs   H)H.=H4c                h    [         R                  " U 5      =(       d    [         R                  " U 5      $ r0   )r   _server_default_is_computed_server_default_is_identity)r   s    r7   r@  r@    s-    22 A		0	0	@Ar9   c                   [        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 [        R                  5      (       a  [        U5      $ [        U [        5      (       a(  U(       a!  [        [         R"                  " SSU 5      5      n [	        [        U 5      $ )	Nr   Fr   r   T)r  z^'|'$r=   )r=  r   rE  _render_computedr   rF  _render_identityr1   r&  DefaultClauserB  r  r   r!   _render_fetched_valuer   r>   rA   )defaultr5   repr_r  s       r7   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)_  
GY33	4	4$_55'3ErvvhG45Wr9   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     r7   r   #_render_computed.<locals>.<genexpr>F       GWt^r   )rx   rC   r   )r   sqltextrP  r  rN   r   )computedr5   rC   r   s       r7   rH  rH  9  ss     "/5D F%&00{51/B99GGG9  r9   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rR  r   rS  s     r7   r   #_render_identity.<locals>.<genexpr>S  rV  r   )rx   r   )r   _get_identity_options_dictr  rN   r   )identityr5   r   s      r7   rI  rI  J  sM     33F ,1/B99GGG/  r9   c                "    SS[        U 5      0-  $ )Nz%(prefix)sFetchedValue()rx   )r  r6  s    r7   rK  rK  W  s    %1/B)  r9   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$ )Nr   Fr  sqlalchemy.dialectssqlalchemy\.dialects\.(\w+)   z"from sqlalchemy.dialects import %s.zsqlalchemy.z_render_%s_type)r=  hasattrr  r  render_typer   r  rG   r   _type_has_variants_render_Variant_type
startswithr>   r   groupadd__visit_name__globalsr  r2  )r   r5   _skip_variantsr  impl_rtmodrG   r   dnamefnrx   s              r7   r   r   ]  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''r9   c           	     8    [        [        [        XSS5      5      $ )N	item_typez(.+?\())r   r  _render_type_w_subtype)r   r5   s     r7   _render_ARRAY_typeru    s!    K	
 r9   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)rm  Fz.with_variant(r   r   )r   _get_variant_mappingr   rO   )r   r5   	base_typevariant_mappingbasedialecttyps          r7   rg  rg    sp     "-!A!A%!HIiFDE 111/*&sDA
 	
 + Kr9   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%sr`  ra  rb  rc  
sqlalchemy)r   r'  r>   rA   r   r   r  rh  r   ri  r  )r   r5   attrnameregexprx   
outer_repr
inner_type
inner_reprsub_type
outer_typero  r   rp  s                r7   rt  rt    s     eJ$/Jj!JWj9J'%2ODH+Wx-?LJ,,
u+
 
 C
~~+,,7=   A,,		%	%0A,,r9   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_renderersrd   
ValueErrorr   warn)r   r5   namespace_metadatarf   s       r7   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_keyFr6   z(%(prefix)sPrimaryKeyConstraint(%(args)s)r   r   r+  )r=  r   r6   ro   r   r8   r  rN   )r   r5   r  r  rl   crC  r   s           r7   _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                  (       dv  U R
                  bi  U R
                  R                  bR  U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.

rc  Nr   r   )_get_colspecsplitr   rN   link_to_nameparentr   tablesr  rm   r   r6   )	fkmetadata_schemar  colspectokensry   colnametable_fullnamer   s	            r7   _fk_colspecr    s     ooG]]3FBC[NE"s6{a'7$3U;&2,/ OOII!IIOO' *";";;$++N;==AA'JC *'1GNr9   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   ro   r   r   r   r   r   r   )r   rl   s     r7   _populate_render_fk_optsr    s     Zj&9&9!:;<Zj&9&9!:;<[$z';';"<=>\4
(=(=#>?@[$z';';"<=>Wd:#3#3456 r9   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b  TR                  OS 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_keyFr6   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r0   )r   r   r  r6   )r   fs     r7   r   &_render_foreign_key.<locals>.<genexpr>C  s)      5HVAHHMM*++5Hs   57c              3  P   >#    U  H  n[        [        UTT5      5      v   M     g 7fr0   )r   r  )r   r  apply_metadata_schemar  s     r7   r   r  F  s+      !,A [$9;MNOO,s   #&r   )rx   colsrefcolsr   )
r=  r6   ro   r   r8   r  r   r  rN   elements)r   r5   r  r  rl   rC  r   r  s     `    @r7   _render_foreign_keyr  )  s     $M:OHuDT*?OOLMN	
 Z. &8%C!! 	# 6oFII 5?5H5H  yy !#,,!  II<@AD[VFC(DA
	
 Bs   C6c                @    [        SX5      nUSLa  U$ [        XS5      $ )Nr   F)r=  r   )r   r5   r  r  s       r7   _render_unique_constraintr  Q  s*     $HjJHu*u==r9   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checkFr1  r6   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      r7   r   +_render_check_constraint.<locals>.<genexpr>}  s     @441A.4s   r=   rO  )rx   rl   rW  )r=  _create_rulerd  r1   r1  sqltypesr)   r6   ro   r   r8   r  rN   r   rW  )r   r5   r  r  rl   s        r7   _render_check_constraintr  ^  s     $GZIHu 	J++X66##**
 

 DT*?OOLMN	
 <1/B  DII@4@@A)

? 
 
r9   c                    [        UR                  [        5      (       d  [        S5      eSR	                  [        U 5      UR                  S9$ )NznAutogenerate rendering of SQL Expression language constructs not supported here; please use a plain SQL stringz{prefix}execute({sqltext!r}))rx   rW  )r1   rW  r  r   r~   r3   rh   s     r7   _execute_sqlr    sO    bjj#&&!@
 	
 *00+O<

 1  r9   )r5   r*   r6   zsqla_compat._ConstraintNamer  z*Optional[Union[quoted_name, str, _f_name]])rC   r  r  r  )r5   r*   rP   r,   rQ   zDict[str, Union[str, Config]]r  r  )r[   zops.OpContainerr5   r*   r  r  )r5   r*   r_   ops.MigrateOperationr  	List[str])r5   r*   r_   r  r  r  )r5   r*   r_   r-   r  r  )r5   r*   r_   zops.CreateTableCommentOpr  r  )r5   r*   r_   zops.DropTableCommentOpr  r  )r5   r*   r_   zops.CreateTableOpr  r  )r5   r*   r_   zops.DropTableOpr  r  )r5   r*   r   r   r  z	list[str])r5   r*   r_   zops.CreateIndexOpr  r  )r5   r*   r_   zops.DropIndexOpr  r  )r5   r*   r_   zops.CreateUniqueConstraintOpr  r  )r5   r*   r_   zops.CreateForeignKeyOpr  r  )r5   r*   r_   zops.DropConstraintOpr  r  )r5   r*   r_   zops.AddColumnOpr  r  )r5   r*   r_   zops.DropColumnOpr  r  )r5   r*   r_   zops.AlterColumnOpr  r  )r6   z!Optional[Union[quoted_name, str]]r  Optional[str])r   r   r5   r*   r  rY   r  rY   r  rY   r  r  )r(  r$   r5   r*   r  r  )r   r'   r5   r*   r,  rY   r  r  )r5   r*   r  r  )r   r  r;  r   r5   r*   r  zUnion[str, Literal[False]])r   zColumn[Any]r5   r*   r  r  )r   r   r  rY   )T)rL  zBOptional[Union[FetchedValue, str, TextClause, ColumnElement[Any]]]r5   r*   rM  rY   r  r  )rX  r   r5   r*   r  r  )r]  r   r5   r*   r  r  )F)r   r)   r5   r*   rm  rY   r  r  )r   r(   r5   r*   r  r  )r   r)   r5   r*   r  r  r0   )r   r)   r5   r*   r  r  r  r  rx   r  r  z$Union[Optional[str], Literal[False]])r   r    r5   r*   r  Optional[MetaData]r  r  )r   r&   r5   r*   r  r  r  r  )r  r"   r  r  r  r  r  r  )r   r#   rl   zList[Tuple[str, str]]r  r  )r   r#   r5   r*   r  r  r  r  )r   r'   r5   r*   r  r  r  r  )r   r   r5   r*   r  r  r  r  )r5   r*   r_   zops.ExecuteSQLOpr  r  )
__future__r   ior   r>   typingr   r   r   r   r	   r
   r   r   
mako.pygenr   r~  r   r&  r   r   r  sqlalchemy.sql.baser   sqlalchemy.sql.elementsr   r   r   r=   r   
operationsr   r   r   r   r   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-   r   r8   rD   rT   
Dispatcherdefault_renderersrc   rK   rX   ri   dispatch_forrt   CreateTableCommentOpr   DropTableCommentOpr   CreateTableOpr   DropTableOpr   r   CreateIndexOpr   DropIndexOpr   CreateUniqueConstraintOpr   CreateForeignKeyOpr   CreatePrimaryKeyOpr   CreateCheckConstraintOpr   DropConstraintOpr   AddColumnOpr   DropColumnOpr   AlterColumnOpr  r2   r   r   r   r   r2  r  r3   r=  r   r@  r   rH  rI  rK  r   ru  rg  rt  r  r   r  r  r  r  r  r  ExecuteSQLOpr  branchr   r9   r7   <module>r     s$   #  	          $ *  ( / ( ) /   ##525,020:+.:6-27%65 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 ( )#5D ))*$ +$N ( )2 445G#G)EGG 6G ../+#+)?++ 0+\ ../  0  334  5  ,,-@#@)=@@ .@, ( )4 (() *8 ))*<#<):<< +<~< <( !## 	
   	<
	
!/

)
 )
#)
 )
 		)
X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%%"% +% 		%P7$7,A7	7" ##I$B$BC$$$#$ +$ 	$ D$N ##I$>$>?	> 	>#	> +	> 			> @	> ##I$=$=>%%#% +% 	% ?%P (()	 *	 $$&	r9   