o
    voi                     @  s   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 erZd 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eZd/d!d"Zd0d(d)Zd1d-d.ZdS )2    )annotationsN)Any)Optional)TYPE_CHECKING)Union   )ops)PriorityDispatchResult)quoted_name)Column)Table   )AutogenContext)AlterColumnOp)ModifyTableOps)Pluginautogen_contextr   alter_column_opr   schemaOptional[str]tnameUnion[quoted_name, str]cnamer
   conn_colColumn[Any]metadata_colreturnr	   c           	      C  sl   | j d usJ | j jstjS |j}|j}|d u r|d u rtjS ||_||kr3||_td|| tj	S tjS )NzDetected column comment '%s.%s')
dialectsupports_commentsr	   CONTINUEcommentexisting_commentmodify_commentloginfoSTOP)	r   r   r   r   r   r   r   metadata_commentconn_col_comment r(   Y/home/ubuntu/.local/lib/python3.10/site-packages/alembic/autogenerate/compare/comments.py_compare_column_comment   s   	r*   modify_table_opsr   
conn_tableOptional[Table]metadata_tablec                 C  s   | j d usJ | j jstjS |d u s|d u rtjS |jd u r&|jd u r&tjS |jd u r@|jd ur@|jtj||j|d tjS |j|jkrX|jtj	||j|j|d tjS tjS )N)r!   r   )
r   r   r	   r   r    r   appendDropTableCommentOpr%   CreateTableCommentOp)r   r+   r   r   r,   r.   r(   r(   r)   _compare_table_comment7   s2   r2   pluginr   Nonec                 C  s    |  tdd |  tdd d S )Ncolumncommentstable)add_autogenerate_comparatorr*   r2   )r3   r(   r(   r)   setup`   s   r9   )r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r	   )r   r   r+   r   r   r   r   r   r,   r-   r.   r-   r   r	   )r3   r   r   r4   )
__future__r   loggingtypingr   r   r   r   
operationsr   utilr	   sqlalchemy.sql.elementsr
   sqlalchemy.sql.schemar   r   apir   operations.opsr   r   runtime.pluginsr   	getLogger__name__r#   r*   r2   r9   r(   r(   r(   r)   <module>   s(    


)