
    Eh(                       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  \(       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S \(4   r) " S! S"\5      r* " S# S$\*5      r+ " S% S&\*5      r, " S' S(\,5      r- " S) S*\,5      r. " S+ S,\,5      r/ " S- S.\,5      r0 " S/ S0\,5      r1 " S1 S2\,5      r2 " S3 S4\*5      r3 " S5 S6\*5      r4 " S7 S8\,5      r5\" \+5            SKS9 j5       r6\" \35      SLS: j5       r7\" \45      SMS; j5       r8\" \-5            SNS< j5       r9\" \.5      SOS= j5       r:\" \/5      SPS> j5       r;\" \05            SQS? j5       r<\" \15          SRS@ j5       r=\" \25          SSSA j5       r>      STSB jr?        SUSC jr@      SVSD jrA      SWSE jrBSXSF jrC        SYSG jrD SZ       S[SH jjrES\SI jrF SZ       S]SJ jjrGg)^    )annotationsN)Optional)TYPE_CHECKING)Union)exc)Integer)types)compiles)Column)
DDLElement)quoted_name   )_columns_for_constraint)_find_columns)_fk_spec)_is_type_bound)_table_for_constraint)Any)Computed)Identity)Compiled)DDLCompiler)
TextClause)Function)FetchedValue)
TypeEngine   )DefaultImplr   r   zFunction[Any]c                  2    \ rS rSrSr S     SS jjrSrg)
AlterTable*   zRepresent an ALTER TABLE statement.

Only the string name and optional schema name of the table
is required, not a full Table object.

Nc                    Xl         X l        g N)
table_nameschema)selfr$   r%   s      S/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/alembic/ddl/base.py__init__AlterTable.__init__2   s    
 %    )r%   r$   r#   )r$   strr%   !Optional[Union[quoted_name, str]]returnNone)__name__
__module____qualname____firstlineno____doc__r(   __static_attributes__ r*   r'   r    r    *   s2     59 2 
	 r*   r    c                  @   ^  \ rS rSr S       SU 4S jjjrSrU =r$ )RenameTable;   c                ,   > [         TU ]  XS9  X l        g N)r%   )superr(   new_table_name)r&   old_table_namer<   r%   	__class__s       r'   r(   RenameTable.__init__<   s     	7,r*   )r<   r#   )r=   r+   r<   Union[quoted_name, str]r%   r,   r-   r.   r/   r0   r1   r2   r(   r4   __classcell__r>   s   @r'   r7   r7   ;   s8    
 59	-- 0- 2	-
 
- -r*   r7   c                  X   ^  \ rS rSr     S               SU 4S jjjrSrU =r$ )AlterColumnF   c                   > [         TU ]  XS9  X l        Ub  [        R                  " U5      OS U l        XPl        X`l        Xpl        g r:   )	r;   r(   column_namesqltypesto_instanceexisting_typeexisting_nullableexisting_server_defaultexisting_comment)	r&   namerH   r%   rK   rL   rM   rN   r>   s	           r'   r(   AlterColumn.__init__G   sR     	-& (   / 	
 "3'>$ 0r*   )rH   rN   rL   rM   rK   )NNNNN)rO   r+   rH   r+   r%   Optional[str]rK   zOptional[TypeEngine]rL   Optional[bool]rM   Optional[_ServerDefault]rN   rQ   r-   r.   rA   rC   s   @r'   rE   rE   F   sl    
 !%.2,0<@*.11 1 	1
 ,1 *1 ":1 (1 
1 1r*   rE   c                  <   ^  \ rS rSr        SU 4S jjrSrU =r$ )ColumnNullable]   c                4   > [         TU ]  " X40 UD6  X0l        g r#   )r;   r(   nullable)r&   rO   rH   rX   kwr>   s        r'   r(   ColumnNullable.__init__^   s     	1b1 r*   )rX   )rO   r+   rH   r+   rX   boolr-   r.   rA   rC   s   @r'   rU   rU   ]   s-    !!&)!59!	! !r*   rU   c                  <   ^  \ rS rSr        SU 4S jjrSrU =r$ )
ColumnTypee   c                ^   > [         TU ]  " X40 UD6  [        R                  " U5      U l        g r#   )r;   r(   rI   rJ   type_)r&   rO   rH   r`   rY   r>   s        r'   r(   ColumnType.__init__f   s)     	1b1))%0
r*   )r`   )rO   r+   rH   r+   r`   r   r-   r.   rA   rC   s   @r'   r]   r]   e   s-    11&)12<1	1 1r*   r]   c                  <   ^  \ rS rSr        SU 4S jjrSrU =r$ )
ColumnNamem   c                4   > [         TU ]  " X40 UD6  X0l        g r#   )r;   r(   newname)r&   rO   rH   rf   rY   r>   s        r'   r(   ColumnName.__init__n        	1b1r*   )rf   )rO   r+   rH   r+   rf   r+   r-   r.   rA   rC   s   @r'   rc   rc   m   s-    &)47	 r*   rc   c                  <   ^  \ rS rSr        SU 4S jjrSrU =r$ )ColumnDefaultu   c                4   > [         TU ]  " X40 UD6  X0l        g r#   r;   r(   defaultr&   rO   rH   rn   rY   r>   s        r'   r(   ColumnDefault.__init__v   s     	1b1r*   rn   )rO   r+   rH   r+   rn   rS   r-   r.   rA   rC   s   @r'   rj   rj   u   s3      *	 
 r*   rj   c                  <   ^  \ rS rSr        SU 4S jjrSrU =r$ )ComputedColumnDefault   c                4   > [         TU ]  " X40 UD6  X0l        g r#   rm   ro   s        r'   r(   ComputedColumnDefault.__init__   rh   r*   rq   )rO   r+   rH   r+   rn   zOptional[Computed]r-   r.   rA   rC   s   @r'   rs   rs      s-    &)4F	 r*   rs   c                  @   ^  \ rS rSr          SU 4S jjrSrU =r$ )IdentityColumnDefault   c                @   > [         TU ]  " X40 UD6  X0l        X@l        g r#   )r;   r(   rn   impl)r&   rO   rH   rn   r{   rY   r>   s         r'   r(   IdentityColumnDefault.__init__   s!     	1b1	r*   )rn   r{   )
rO   r+   rH   r+   rn   zOptional[Identity]r{   r   r-   r.   rA   rC   s   @r'   rx   rx      s=    

 
 $	

 
 

 
r*   rx   c                  F   ^  \ rS rSr  S         SU 4S jjjrSrU =r$ )	AddColumn   c                8   > [         TU ]  XS9  X l        X@l        g r:   )r;   r(   columnif_not_exists)r&   rO   r   r%   r   r>   s        r'   r(   AddColumn.__init__   s      	-*r*   )r   r   NN)
rO   r+   r   Column[Any]r%   r,   r   rR   r-   r.   rA   rC   s   @r'   r~   r~      sE    
 59(,	+	+ 	+ 2		+
 &	+ 
	+ 	+r*   r~   c                  F   ^  \ rS rSr  S         SU 4S jjjrSrU =r$ )
DropColumn   c                8   > [         TU ]  XS9  X l        X@l        g r:   )r;   r(   r   	if_exists)r&   rO   r   r%   r   r>   s        r'   r(   DropColumn.__init__   s     	-"r*   )r   r   r   )
rO   r+   r   r   r%   rQ   r   rR   r-   r.   rA   rC   s   @r'   r   r      sE    
 !%$(	#	# 	# 		#
 "	# 
	# 	#r*   r   c                  <   ^  \ rS rSr        SU 4S jjrSrU =r$ )ColumnComment   c                4   > [         TU ]  " X40 UD6  X0l        g r#   )r;   r(   comment)r&   rO   rH   r   rY   r>   s        r'   r(   ColumnComment.__init__   rh   r*   )r   )rO   r+   rH   r+   r   rQ   r-   r.   rA   rC   s   @r'   r   r      s-    &)4A	 r*   r   c                    [        XR                  U R                  5      < S[        XR                  U R                  5      < 3$ )Nz RENAME TO )alter_tabler$   r%   format_table_namer<   elementcompilerrY   s      r'   visit_rename_tabler      s6    
 	H00'..A($:$:GNNK r*   c                    [        XR                  U R                  5      < S[        XR                  4SU R
                  0UD6< 3$ )N r   )r   r$   r%   
add_columnr   r   r   s      r'   visit_add_columnr      sG     	H00'..Ann	
4;4I4I	
MO	
 r*   c                    [        XR                  U R                  5      < S[        XR                  R
                  4SU R                  0UD6< 3$ )Nr   r   )r   r$   r%   drop_columnr   rO   r   r   s      r'   visit_drop_columnr      sM     	H00'..Ann))	
5<5F5F	
JL	
 r*   c                    [        XR                  U R                  5      < S[        XR                  5      < SU R
                  (       a  S< 3$ S< 3$ )Nr   zDROP NOT NULLzSET NOT NULL)r   r$   r%   alter_columnrH   rX   r   s      r'   visit_column_nullabler      sQ    
 	H00'..AX223"++?  2@? r*   c           	         [        XR                  U R                  5      < S[        XR                  5      < SS[        XR                  5      -  < 3$ )Nr   zTYPE %s)r   r$   r%   r   rH   format_typer`   r   s      r'   visit_column_typer      sA     	H00'..AX223K--88 r*   c                    [        XR                  U R                  5      < S[        XR                  5      < S[        XR
                  5      < 3$ )Nz RENAME z TO )r   r$   r%   format_column_namerH   rf   r   s      r'   visit_column_namer      s<     	H00'..A8%8%898__5 r*   c           	         [        XR                  U R                  5      < S[        XR                  5      < SU R
                  b  S[        XR
                  5      -  < 3$ S< 3$ )Nr   zSET DEFAULT %szDROP DEFAULT)r   r$   r%   r   rH   rn   format_server_defaultr   s      r'   visit_column_defaultr      si    
 	H00'..AX223 * 4XOO  	    	 r*   c                .    [         R                  " S5      e)NztAdding or removing a "computed" construct, e.g. GENERATED ALWAYS AS, to or from an existing column is not supported.r   CompileErrorr   s      r'   visit_computed_columnr     s     

	E r*   c                .    [         R                  " S5      e)NzAdding, removing or modifying an "identity" construct, e.g. GENERATED AS IDENTITY, to or from an existing column is not supported in this dialect.r   r   s      r'   visit_identity_columnr     s     

	3 r*   c                    [        U [        5      (       a  U" U 5      $ SR                  U R                  S5       Vs/ s H
  o!" U5      PM     sn5      nU$ s  snf )z#quote the elements of a dotted name.)
isinstancer   joinsplit)rO   quotexresults       r'   quote_dottedr     sN    
 $$$T{XXC9AuQx9:FM :s   Ac                    [         R                  " U R                  R                  5      nU(       a  [	        X#5      S-   U" U5      -   $ U" U5      $ )Nr   )	functoolspartialpreparerr   r   )r   rO   r%   r   s       r'   r   r   #  sF    
 h//556EF*S05;>>T{r*   c                8    U R                   R                  U5      $ r#   )r   r   r   rO   s     r'   r   r   /  s     ""4((r*   c                L    U R                  [        S[        US95      nUc   eU$ )Nr   )server_default)get_column_default_stringr   r   )r   rn   default_strs      r'   r   r   5  s4     44sGG4K """r*   c                L    U R                   R                  R                  U5      $ r#   )dialecttype_compilerprocess)r   r`   s     r'   r   r   B  s    ))11%88r*   c                     S[        XU5      -  $ )NzALTER TABLE %s)r   )r   rO   r%   s      r'   r   r   F  s    
 /GGGr*   c                8    SU(       a  SOS< [        X5      < 3$ )NzDROP COLUMN z
IF EXISTS  r   )r   rO   r   rY   s       r'   r   r   N  s      "r)8* r*   c                    S[        X5      -  $ )NzALTER COLUMN %sr   r   s     r'   r   r   W  s    1(AAAr*   c                   ^  SU(       a  SOS< T R                   " U40 UD6< 3nSR                  U 4S jUR                   5       5      nU(       a  USU-   -  nU$ )NzADD COLUMN zIF NOT EXISTS r   r   c              3  F   >#    U  H  nTR                  U5      v   M     g 7fr#   )r   ).0
constraintr   s     r'   	<genexpr>add_column.<locals>.<genexpr>f  s#      7I$$7Is   !)get_column_specificationr   constraints)r   r   r   rY   textconsts   `     r'   r   r   [  se     *r1))&7B7D
 HH 7=7I7I E eKr*   )r   r7   r   r   r-   r+   )r   r~   r   r   r-   r+   )r   r   r   r   r-   r+   )r   rU   r   r   r-   r+   )r   r]   r   r   r-   r+   )r   rc   r   r   r-   r+   )r   rj   r   r   r-   r+   )r   rs   r   r   )r   rx   r   r   )rO   r@   r   zfunctools.partialr-   r@   )r   r   rO   r@   r%   r,   r-   r@   )r   r   rO   r,   r-   r@   )r   r   rn   rS   r-   r+   )r   r   r`   r   r-   r+   )r   r   rO   r+   r%   rQ   r-   r+   r#   )r   r   rO   r+   r   rR   r-   r+   )r   r   rO   r+   r-   r+   )r   r   r   r   r   rR   r-   r+   )H
__future__r   r   typingr   r   r   
sqlalchemyr   r   r	   rI   sqlalchemy.ext.compilerr
   sqlalchemy.schemar   r   sqlalchemy.sql.elementsr   util.sqla_compatr   r   r   r   r   r   r   r   sqlalchemy.sql.compilerr   r   r   sqlalchemy.sql.functionsr   sqlalchemy.sql.schemar   sqlalchemy.sql.type_apir   r{   r   r+   _ServerDefaultr    r7   rE   rU   r]   rc   rj   rs   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r*   r'   <module>r      s^   #        ( , $ ( / 6 , ' - 4##032122!|^_cIJ "-* -1* 1.![ !1 1 	K 	K K 
+
 
+
# 
#K  
+$/  
)  
*  
.'2  
*  
*  
-&1  

 ".9 ! 

 ".9 !
!*;		
!	 .	 		))!B))

%
 	
9HH
H H 		H CG!$1?B %) "
 	r*   