
    -ji-                       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&  \\\'\\\   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      r/ " S, S-\+5      r0 " S. S/\+5      r1 " S0 S1\)5      r2 " S2 S3\)5      r3 " S4 S5\+5      r4\" \*5            SHS6 j5       r5\" \25      SIS7 j5       r6\" \35      SJS8 j5       r7\" \,5            SKS9 j5       r8\" \-5      SLS: j5       r9\" \.5      SMS; j5       r:\" \/5            SNS< j5       r;\" \05          SOS= j5       r<\" \15          SPS> j5       r=      SQS? jr>        SRS@ jr?      SSSA jr@      STSB jrASUSC jrB        SVSD jrC SW       SXSE jjrDSYSF jrE  SZ         S[SG jjrFg)\    )annotationsN)Any)Optional)TYPE_CHECKING)Union)exc)Integer)types)compiles)Column)
DDLElement)ColumnElement)quoted_name)
TextClause)FetchedValue   )_columns_for_constraint)_find_columns)_fk_spec)_is_type_bound)_table_for_constraint)Computed)Identity)Compiled)DDLCompiler)
TypeEngine   )DefaultImplc                  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      J/home/james-whalen/.local/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[_ServerDefaultType]rN   rQ   r-   r.   rA   rC   s   @r'   rE   rE   F   sl    
 !%.2,0@D*.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                  L   ^  \ rS rSr   S           SU 4S jjjrSrU =r$ )	AddColumn   c                D   > [         TU ]  XS9  X l        X@l        XPl        g r:   )r;   r(   columnif_not_existsinline_references)r&   rO   r   r%   r   r   r>   s         r'   r(   AddColumn.__init__   s&     	-*!2r*   )r   r   r   )NNN)rO   r+   r   Column[Any]r%   r,   r   rR   r   rR   r-   r.   rA   rC   s   @r'   r~   r~      sR    
 59(,,033 3 2	3
 &3 *3 
3 3r*   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   NN)
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[        UU R                  4U R
                  U R                  S.UD6< 3$ )N )r   r   )r   r$   r%   
add_columnr   r   r   r   s      r'   visit_add_columnr      sW     	H00'..ANN	
 "//%77		

 	
	 	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   5  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   ;  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   H  s    ))11%88r*   c                     S[        XU5      -  $ )NzALTER TABLE %s)r   )r   rO   r%   s      r'   r   r   L  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   T  s      "r)8* r*   c                    S[        X5      -  $ )NzALTER COLUMN %sr   r   s     r'   r   r   ]  s    1(AAAr*   c                b  ^  SU(       a  SOS< T R                   " U40 UD6< 3nUR                  (       a  US-  nU(       Ga8  [        UR                  5      S:X  Ga  [	        UR                  5      S   =n(       a  UR
                  b  [        UR
                  R                  5      S:X  a  UR                  nUR                  nUR                  (       aP  T R                  R                  UR                  5      < ST R                  R                  UR                  5      < 3n	O%T R                  R                  UR                  5      n	USU	< S	T R                  R                  UR                  5      < S
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   z PRIMARY KEYr   r   r   z REFERENCES z ()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>  s#      7I$$7Is   !)get_column_specificationprimary_keylenforeign_keyslistr   columnsr   tabler%   r   quote_schemar   rO   r   constraints)r   r   r   r   rY   textfkref_col	ref_tabler$   consts   `          r'   r   r   a  sj    *r1))&7B7D
  	##$)++,Q//R/MM%%%&!+))MM	 !!..y/?/?@!!''	7J
 "**00@J##GLL1
 	

 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   r   rR   r   rR   r-   r+   )G
__future__r   r   typingr   r   r   r   
sqlalchemyr   r	   r
   rI   sqlalchemy.ext.compilerr   sqlalchemy.schemar   r   sqlalchemy.sql.elementsr   r   r   sqlalchemy.sql.schemar   util.sqla_compatr   r   r   r   r   r   r   sqlalchemy.sql.compilerr   r   sqlalchemy.sql.type_apir   r{   r   r+   _ServerDefaultTyper    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      sq   #         ( , $ ( 1 / . . 6 , ' - 4##032!<j-:LLM  "-* -1* 1.![ !1 1 	K 	K K 3
 3
# 
#K  
+$/  
)
 
 
*  
.'2  
*  
*  
-&1  

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

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