HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/alembic/ddl/__pycache__/base.cpython-310.pyc
o

+we�%�@sddlmZddlZddlmZddlmZddlmZddlmZddlm	Z	ddlm
Zdd	lm
Z
dd
lmZddlmZddlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZer�ddlmZddlmZddlmZddlmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%d
dlm&Z&d
dlm'Z'eddd e(fZ)Gd!d"�d"e�Z*Gd#d$�d$e*�Z+Gd%d&�d&e*�Z,Gd'd(�d(e,�Z-Gd)d*�d*e,�Z.Gd+d,�d,e,�Z/Gd-d.�d.e,�Z0Gd/d0�d0e,�Z1Gd1d2�d2e,�Z2Gd3d4�d4e*�Z3Gd5d6�d6e*�Z4Gd7d8�d8e,�Z5e
e+�dpd>d?��Z6e
e3�dqd@dA��Z7e
e4�drdBdC��Z8e
e-�dsdDdE��Z9e
e.�dtdFdG��Z:e
e/�dudHdI��Z;e
e0�dvdJdK��Z<e
e1�dwdLdM��Z=e
e2�dxdNdO��Z>dydTdU�Z?dzdYdZ�Z@d{d[d\�ZAd|d_d`�ZBd}dcdd�ZCd~dfdg�ZDddhdi�ZEddjdk�ZFd�dndo�ZGdS)��)�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)�Compiled)�DDLCompiler)�
TextClause)�Function)�FetchedValue)�
TypeEngine�)�DefaultImpl)�Computed)�Identityrrz
Function[Any]c@seZdZdZ	ddd	d
�ZdS)
�
AlterTablez�Represent an ALTER TABLE statement.

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

    N�
table_name�str�schema�!Optional[Union[quoted_name, str]]�return�NonecCs||_||_dS�N)rr!)�selfrr!�r'�I/home/arjun/projects/env/lib/python3.10/site-packages/alembic/ddl/base.py�__init__0s
zAlterTable.__init__r%)rr r!r"r#r$)�__name__�
__module__�__qualname__�__doc__r)r'r'r'r(r's
�rc�"eZdZ	dd
�fd
d�
Z�ZS)�RenameTableN�old_table_namer �new_table_name�Union[quoted_name, str]r!r"r#r$c�t�j||d�||_dS�N)r!)�superr)r1)r&r0r1r!��	__class__r'r(r):�
zRenameTable.__init__r%)r0r r1r2r!r"r#r$�r*r+r,r)�
__classcell__r'r'r6r(r/9��r/cs*eZdZ					dd�fdd�
Z�ZS)�AlterColumnN�namer �column_namer!�
Optional[str]�
existing_type�Optional[TypeEngine]�existing_nullable�Optional[bool]�existing_server_default�Optional[_ServerDefault]�existing_commentr#r$csDt�j||d�||_|durt�|�nd|_||_||_||_dSr4)	r5r)r>�sqltypes�to_instancer@rBrDrF)r&r=r>r!r@rBrDrFr6r'r(r)Es

��
zAlterColumn.__init__)NNNNN)r=r r>r r!r?r@rArBrCrDrErFr?r#r$r9r'r'r6r(r<Ds�r<c�eZdZd
�fdd	�Z�ZS)�ColumnNullabler=r r>�nullable�boolr#r$c� t�j||fi|��||_dSr%)r5r)rK)r&r=r>rK�kwr6r'r(r)\�
zColumnNullable.__init__)r=r r>r rKrLr#r$r9r'r'r6r(rJ[�rJcrI)�
ColumnTyper=r r>�type_rr#r$cs&t�j||fi|��t�|�|_dSr%)r5r)rGrHrR)r&r=r>rRrNr6r'r(r)dszColumnType.__init__)r=r r>r rRrr#r$r9r'r'r6r(rQcrPrQcseZdZd	�fdd�Z�ZS)
�
ColumnNamer=r r>�newnamer#r$crMr%)r5r)rT)r&r=r>rTrNr6r'r(r)lrOzColumnName.__init__)r=r r>r rTr r#r$r9r'r'r6r(rSkrPrScrI)�
ColumnDefaultr=r r>�defaultrEr#r$crMr%�r5r)rV�r&r=r>rVrNr6r'r(r)ts
zColumnDefault.__init__)r=r r>r rVrEr#r$r9r'r'r6r(rUsrPrUcrI)�ComputedColumnDefaultr=r r>rV�Optional[Computed]r#r$crMr%rWrXr6r'r(r)�rOzComputedColumnDefault.__init__)r=r r>r rVrZr#r$r9r'r'r6r(rYrPrYcseZdZd�fd
d�Z�ZS)
�IdentityColumnDefaultr=r r>rV�Optional[Identity]�implrr#r$cs&t�j||fi|��||_||_dSr%)r5r)rVr])r&r=r>rVr]rNr6r'r(r)�s
zIdentityColumnDefault.__init__)
r=r r>r rVr\r]rr#r$r9r'r'r6r(r[�rPr[cr.)�	AddColumnNr=r �column�Column[Any]r!r"r#r$cr3r4�r5r)r_�r&r=r_r!r6r'r(r)�r8zAddColumn.__init__r%)r=r r_r`r!r"r#r$r9r'r'r6r(r^�r;r^cr.)�
DropColumnNr=r r_r`r!r?r#r$cr3r4rarbr6r'r(r)�s
zDropColumn.__init__r%)r=r r_r`r!r?r#r$r9r'r'r6r(rc�s�rccrI)�
ColumnCommentr=r r>�commentr?r#r$crMr%)r5r)re)r&r=r>rerNr6r'r(r)�rOzColumnComment.__init__)r=r r>r rer?r#r$r9r'r'r6r(rd�rPrd�element�compilerrr#r cKs$dt||j|j�t||j|j�fS)Nz%s RENAME TO %s)�alter_tablerr!�format_table_namer1�rfrgrNr'r'r(�visit_rename_table�s�rkcKs(dt||j|j�t||jfi|��fS�Nz%s %s)rhrr!�
add_columnr_rjr'r'r(�visit_add_column�s�rncKs*dt||j|j�t||jjfi|��fSrl)rhrr!�drop_columnr_r=rjr'r'r(�visit_drop_column�s�rpcKs0dt||j|j�t||j�|jrdfSdfS)N�%s %s %sz
DROP NOT NULLzSET NOT NULL)rhrr!�alter_columnr>rKrjr'r'r(�visit_column_nullable�s
��rscKs.dt||j|j�t||j�dt||j�fS)NrqzTYPE %s)rhrr!rrr>�format_typerRrjr'r'r(�visit_column_type�s

�rucKs*dt||j|j�t||j�t||j�fS)Nz%s RENAME %s TO %s)rhrr!�format_column_namer>rTrjr'r'r(�visit_column_name�s


�rwcKs@dt||j|j�t||j�|jdurdt||j�fSdfS)NrqzSET DEFAULT %szDROP DEFAULT)rhrr!rrr>rV�format_server_defaultrjr'r'r(�visit_column_default�s

���rycK�
t�d��)NztAdding or removing a "computed" construct, e.g. GENERATED ALWAYS AS, to or from an existing column is not supported.�r�CompileErrorrjr'r'r(�visit_computed_column���r}cKrz)Nz�Adding, removing or modifying an "identity" construct, e.g. GENERATED AS IDENTITY, to or from an existing column is not supported in this dialect.r{rjr'r'r(�visit_identity_column�r~rr=r2�quote�functools.partialcs4t|t�r	�|�Sd��fdd�|�d�D��}|S)z#quote the elements of a dotted name�.csg|]}�|��qSr'r')�.0�x�r�r'r(�
<listcomp>sz quote_dotted.<locals>.<listcomp>)�
isinstancer�join�split)r=r��resultr'r�r(�quote_dotted	s
r�rr!r"cCs0t�|jj�}|rt||�d||�S||�S)Nr�)�	functools�partial�preparerr�r�)rgr=r!r�r'r'r(risricCs|j�|�Sr%)r�r��rgr=r'r'r(rv srvrVrEcCs|�tdt|d��S)Nr�)�server_default)�get_column_default_stringr
r)rgrVr'r'r(rx&s�rxrRrcCs|jj�|�Sr%)�dialect�
type_compiler�process)rgrRr'r'r(rt/�rtr?cCsdt|||�S)NzALTER TABLE %s)ri)rgr=r!r'r'r(rh3srhcK�dt||�S)NzDROP COLUMN %s�rv)rgr=rNr'r'r(ro;r�rocCr�)NzALTER COLUMN %sr�r�r'r'r(rr?r�rrr_r`csDd�j|fi|��}d��fdd�|jD��}|r |d|7}|S)Nz
ADD COLUMN %s� c3s�|]}��|�VqdSr%)r�)r��
constraint�rgr'r(�	<genexpr>Fs�

�zadd_column.<locals>.<genexpr>)�get_column_specificationr��constraints)rgr_rN�text�constr'r�r(rmCs�rm)rfr/rgrr#r )rfr^rgrr#r )rfrcrgrr#r )rfrJrgrr#r )rfrQrgrr#r )rfrSrgrr#r )rfrUrgrr#r )rfrYrgr)rfr[rgr)r=r2r�r�r#r2)rgrr=r2r!r"r#r2)rgrr=r"r#r2)rgrrVrEr#r )rgrrRrr#r )rgrr=r r!r?r#r )rgrr=r r#r )rgrr_r`r#r )H�
__future__rr��typingrrr�
sqlalchemyrrrrG�sqlalchemy.ext.compilerr	�sqlalchemy.schemar
r�sqlalchemy.sql.elementsr�util.sqla_compatrrrrrr�sqlalchemy.sql.compilerrrr�sqlalchemy.sql.functionsr�sqlalchemy.sql.schemar�sqlalchemy.sql.type_apirr]rrrr �_ServerDefaultrr/r<rJrQrSrUrYr[r^rcrdrkrnrprsrurwryr}rr�rirvrxrtrhrorrrmr'r'r'r(�<module>s�