
    +h&                    0   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z d d	lmZ d d
lmZ d dlmZ d dlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ er<d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z% ddl&m'Z' eddd e(f   Z) G d! d"e      Z* G d# d$e*      Z+ G d% d&e*      Z, G d' d(e,      Z- G d) d*e,      Z. G d+ d,e,      Z/ G d- d.e,      Z0 G d/ d0e,      Z1 G d1 d2e,      Z2 G d3 d4e*      Z3 G d5 d6e*      Z4 G d7 d8e,      Z5 ee+      	 	 	 	 	 	 dKd9       Z6 ee3      dLd:       Z7 ee4      dMd;       Z8 ee-      	 	 	 	 	 	 dNd<       Z9 ee.      dOd=       Z: ee/      dPd>       Z; ee0      	 	 	 	 	 	 dQd?       Z< ee1      	 	 	 	 dRd@       Z= ee2      	 	 	 	 dSdA       Z>	 	 	 	 	 	 dTdBZ?	 	 	 	 	 	 	 	 dUdCZ@	 	 	 	 	 	 dVdDZA	 	 	 	 	 	 dWdEZBdXdFZC	 	 	 	 	 	 	 	 dYdGZDdZdHZEdZdIZFd[dJZGy)\    )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                  &    e Zd ZdZ	 d	 	 	 	 	 ddZy)
AlterTablezRepresent an ALTER TABLE statement.

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

    Nc                     || _         || _        y N)
table_nameschema)selfr#   r$   s      C/var/www/html/venv/lib/python3.12/site-packages/alembic/ddl/base.py__init__zAlterTable.__init__2   s    
 %    r"   )r#   strr$   !Optional[Union[quoted_name, str]]returnNone)__name__
__module____qualname____doc__r'    r(   r&   r    r    *   s-     59 2 
	r(   r    c                  2     e Zd Z	 d	 	 	 	 	 	 	 d fdZ xZS )RenameTablec                6    t         |   ||       || _        y N)r$   )superr'   new_table_name)r%   old_table_namer7   r$   	__class__s       r&   r'   zRenameTable.__init__<   s     	7,r(   r"   )r8   r)   r7   Union[quoted_name, str]r$   r*   r+   r,   r-   r.   r/   r'   __classcell__r9   s   @r&   r3   r3   ;   s8    
 59	-- 0- 2	-
 
- -r(   r3   c                  J     e Zd Z	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZ xZS )AlterColumnc                    t         |   ||       || _        |t        j                  |      nd | _        || _        || _        || _        y r5   )	r6   r'   column_namesqltypesto_instanceexisting_typeexisting_nullableexisting_server_defaultexisting_comment)	r%   namerA   r$   rD   rE   rF   rG   r9   s	           r&   r'   zAlterColumn.__init__G   s\     	f-& (   / 	
 "3'>$ 0r(   )NNNNN)rH   r)   rA   r)   r$   Optional[str]rD   zOptional[TypeEngine]rE   zOptional[bool]rF   Optional[_ServerDefault]rG   rI   r+   r,   r;   r=   s   @r&   r?   r?   F   sl    
 !%.2,0<@*.11 1 	1
 ,1 *1 ":1 (1 
1 1r(   r?   c                  0     e Zd Z	 	 	 	 	 	 	 	 d fdZ xZS )ColumnNullablec                6    t        |   ||fi | || _        y r"   )r6   r'   nullable)r%   rH   rA   rN   kwr9   s        r&   r'   zColumnNullable.__init__^   s      	{1b1 r(   )rH   r)   rA   r)   rN   boolr+   r,   r;   r=   s   @r&   rL   rL   ]   s-    !!&)!59!	! !r(   rL   c                  0     e Zd Z	 	 	 	 	 	 	 	 d fdZ xZS )
ColumnTypec                \    t        |   ||fi | t        j                  |      | _        y r"   )r6   r'   rB   rC   type_)r%   rH   rA   rT   rO   r9   s        r&   r'   zColumnType.__init__f   s+     	{1b1))%0
r(   )rH   r)   rA   r)   rT   r   r+   r,   r;   r=   s   @r&   rR   rR   e   s-    11&)12<1	1 1r(   rR   c                  0     e Zd Z	 	 	 	 	 	 	 	 d fdZ xZS )
ColumnNamec                6    t        |   ||fi | || _        y r"   )r6   r'   newname)r%   rH   rA   rX   rO   r9   s        r&   r'   zColumnName.__init__n         	{1b1r(   )rH   r)   rA   r)   rX   r)   r+   r,   r;   r=   s   @r&   rV   rV   m   s-    &)47	 r(   rV   c                  0     e Zd Z	 	 	 	 	 	 	 	 d fdZ xZS )ColumnDefaultc                6    t        |   ||fi | || _        y r"   r6   r'   defaultr%   rH   rA   r^   rO   r9   s        r&   r'   zColumnDefault.__init__v   s      	{1b1r(   )rH   r)   rA   r)   r^   rJ   r+   r,   r;   r=   s   @r&   r[   r[   u   s3      *	 
 r(   r[   c                  0     e Zd Z	 	 	 	 	 	 	 	 d fdZ xZS )ComputedColumnDefaultc                6    t        |   ||fi | || _        y r"   r]   r_   s        r&   r'   zComputedColumnDefault.__init__   rY   r(   )rH   r)   rA   r)   r^   zOptional[Computed]r+   r,   r;   r=   s   @r&   ra   ra      s-    &)4F	 r(   ra   c                  4     e Zd Z	 	 	 	 	 	 	 	 	 	 d fdZ xZS )IdentityColumnDefaultc                D    t        |   ||fi | || _        || _        y r"   )r6   r'   r^   impl)r%   rH   rA   r^   rf   rO   r9   s         r&   r'   zIdentityColumnDefault.__init__   s'     	{1b1	r(   )
rH   r)   rA   r)   r^   zOptional[Identity]rf   r   r+   r,   r;   r=   s   @r&   rd   rd      s=    

 
 $	

 
 

 
r(   rd   c                  2     e Zd Z	 d	 	 	 	 	 	 	 d fdZ xZS )	AddColumnc                6    t         |   ||       || _        y r5   r6   r'   columnr%   rH   rk   r$   r9   s       r&   r'   zAddColumn.__init__   s     	f-r(   r"   )rH   r)   rk   Column[Any]r$   r*   r+   r,   r;   r=   s   @r&   rh   rh      s8    
 59	  2	
 
 r(   rh   c                  2     e Zd Z	 d	 	 	 	 	 	 	 d fdZ xZS )
DropColumnc                6    t         |   ||       || _        y r5   rj   rl   s       r&   r'   zDropColumn.__init__   s     	f-r(   r"   )rH   r)   rk   rm   r$   rI   r+   r,   r;   r=   s   @r&   ro   ro      s0    FJ!,6C	 r(   ro   c                  0     e Zd Z	 	 	 	 	 	 	 	 d fdZ xZS )ColumnCommentc                6    t        |   ||fi | || _        y r"   )r6   r'   comment)r%   rH   rA   rt   rO   r9   s        r&   r'   zColumnComment.__init__   rY   r(   )rH   r)   rA   r)   rt   rI   r+   r,   r;   r=   s   @r&   rr   rr      s-    &)4A	 r(   rr   c                    t        || j                  | j                        dt        || j                  | j                        S )Nz RENAME TO )alter_tabler#   r$   format_table_namer7   elementcompilerrO   s      r&   visit_rename_tabler{      s:    
 	Hg00'..A(G$:$:GNNK r(   c                x    t        || j                  | j                        dt        || j                  fi |S N )rv   r#   r$   
add_columnrk   rx   s      r&   visit_add_columnr      s7     	Hg00'..A8W^^2r2 r(   c                    t        || j                  | j                        dt        || j                  j
                  fi |S r}   )rv   r#   r$   drop_columnrk   rH   rx   s      r&   visit_drop_columnr      s=     	Hg00'..AHgnn118R8 r(   c                    t        || j                  | j                        dt        || j                        d| j
                  rdS dS )Nr~   zDROP NOT NULLzSET NOT NULL)rv   r#   r$   alter_columnrA   rN   rx   s      r&   visit_column_nullabler      sU    
 	Hg00'..AXw223"++?  2@? r(   c           	         t        || j                  | j                        dt        || j                        ddt        || j                        z  S )Nr~   zTYPE %s)rv   r#   r$   r   rA   format_typerT   rx   s      r&   visit_column_typer      sG     	Hg00'..AXw223K'--88 r(   c                    t        || j                  | j                        dt        || j                        dt        || j
                        S )Nz RENAME z TO )rv   r#   r$   format_column_namerA   rX   rx   s      r&   visit_column_namer      sB     	Hg00'..A8W%8%898W__5 r(   c           	         t        || j                  | j                        dt        || j                        d| j
                  dt        || j
                        z  S dS )Nr~   zSET DEFAULT %szDROP DEFAULT)rv   r#   r$   r   rA   r^   format_server_defaultrx   s      r&   visit_column_defaultr      so    
 	Hg00'..AXw223 * 4XwOO  	    	 r(   c                ,    t        j                  d      )NztAdding or removing a "computed" construct, e.g. GENERATED ALWAYS AS, to or from an existing column is not supported.r   CompileErrorrx   s      r&   visit_computed_columnr      s     

	E r(   c                ,    t        j                  d      )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   rx   s      r&   visit_identity_columnr     s     

	3 r(   c                    t        | t              r ||       S dj                  | j                  d      D cg c]
  } ||       c}      }|S c c}w )z#quote the elements of a dotted name.)
isinstancer   joinsplit)rH   quotexresults       r&   quote_dottedr     sG    
 $$T{XXC9AuQx9:FM :s   Ac                    t        j                  | j                  j                        }|rt	        ||      dz    ||      z   S  ||      S )Nr   )	functoolspartialpreparerr   r   )rz   rH   r$   r   s       r&   rw   rw     sH    
 h//556EFE*S05;>>T{r(   c                8    | j                   j                  |      S r"   )r   r   rz   rH   s     r&   r   r   $  s     ""4((r(   c                P    | j                  t        dt        |            }|J |S )Nr   )server_default)get_column_default_stringr   r   )rz   r^   default_strs      r&   r   r   *  s4     44sGG4K """r(   c                L    | j                   j                  j                  |      S r"   )dialecttype_compilerprocess)rz   rT   s     r&   r   r   7  s    ))11%88r(   c                "    dt        | ||      z  S )NzALTER TABLE %s)rw   )rz   rH   r$   s      r&   rv   rv   ;  s    
 /$GGGr(   c                     dt        | |      z  S )NzDROP COLUMN %sr   )rz   rH   rO   s      r&   r   r   C  s    04@@@r(   c                     dt        | |      z  S )NzALTER COLUMN %sr   r   s     r&   r   r   G  s    1(DAAAr(   c                     d  j                   |fi |z  }dj                   fd|j                  D              }|r|d|z   z  }|S )NzADD COLUMN %sr~   c              3  @   K   | ]  }j                  |        y wr"   )r   ).0
constraintrz   s     r&   	<genexpr>zadd_column.<locals>.<genexpr>N  s!      )3$s   )get_column_specificationr   constraints)rz   rk   rO   textconsts   `    r&   r   r   K  sY    >X>>vLLLDHH 7=7I7I E eKr(   )ry   r3   rz   r   r+   r)   )ry   rh   rz   r   r+   r)   )ry   ro   rz   r   r+   r)   )ry   rL   rz   r   r+   r)   )ry   rR   rz   r   r+   r)   )ry   rV   rz   r   r+   r)   )ry   r[   rz   r   r+   r)   )ry   ra   rz   r   )ry   rd   rz   r   )rH   r:   r   zfunctools.partialr+   r:   )rz   r   rH   r:   r$   r*   r+   r:   )rz   r   rH   r*   r+   r:   )rz   r   r^   rJ   r+   r)   )rz   r   rT   r   r+   r)   )rz   r   rH   r)   r$   rI   r+   r)   )rz   r   rH   r)   r+   r)   )rz   r   rk   rm   r+   r)   )H
__future__r   r   typingr   r   r   
sqlalchemyr   r   r	   rB   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   rf   r   r)   _ServerDefaultr    r3   r?   rL   rR   rV   r[   ra   rd   rh   ro   rr   r{   r   r   r   r   r   r   r   r   r   rw   r   r   r   rv   r   r   r   r1   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AB	r(   