�
J�g�r �
�� � d dl mZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ d dlm Z d dlm
Z
d d lmZ d d
lmZ d dlm
Z
d dlmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ er�d dlmZ d dl m!Z! d dl"m#Z# d dl"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)m0Z0 d d*l)m1Z1 d d+l)m2Z2 d d,l)m3Z3 d d-l)m4Z4 d d.l)m5Z5 d d/l6m7Z7 d d0l8m9Z9 dd1l:m;Z; dd2l<m=Z= dd3l>m?Z? ed4e�5� � Z@ ed6d7�5� � ZA G d8� d9� � ZB G d:� d7eB� � ZC ejD d;� � ejD d;d<� � G d=� d>eB� � � � � � ZE ejD d?� � ejD d?d@� � eC�F dA� � G dB� dCeC� � � � � � � � ZG ejD dD� � ejD dDdE� � eC�F dF� � G dG� dHeC� � � � � � � � ZH ejD dI� � ejD dIdJ� � eC�F dK� � G dL� dMeC� � � � � � � � ZI ejD dN� � ejD dNdO� � eC�F dP� � eC�F dQ� � eC�F dR� � G dS� dTeC� � � � � � � � � � � � ZJ ejD dU� � ejD dUdV� � G dW� dXeB� � � � � � ZK ejD dY� � ejD dYdZ� � G d[� d\eB� � � � � � ZL ejD d]� � G d^� d_eB� � � � ZM ejD d`� � G da� dbeB� � � � ZN G dc� ddeB� � ZO ejD de� � G df� dgeO� � � � ZP ejD dh� � ejD dhdi� � G dj� dkeO� � � � � � ZQ ejD dl� � ejD dldm� � G dn� doeO� � � � � � ZR ejD dp� � ejD dpdq� � G dr� dseO� � � � � � ZS ejD dt� � ejD dtdu� � G dv� dweO� � � � � � ZT ejD dx� � ejD dxdy� � G dz� d{eO� � � � � � ZU ejD d|� � G d}� d~eB� � � � ZV ejD d� � ejD dd�� � G d�� d�eB� � � � � � ZW G d�� d�eB� � ZX G d�� d�eX� � ZY G d�� d�eX� � ZZ G d�� d�eX� � Z[ G d�� d�eB� � Z\dS )�� )�annotations)�abstractmethodN)�Any)�Callable)�cast)�Dict)� FrozenSet)�Iterator)�List)�MutableMapping)�Optional)�Sequence)�Set)�Tuple)�Type)�
TYPE_CHECKING)�TypeVar)�Union)�NULLTYPE� )� schemaobj)�BatchOperations)�
Operations� )�util)�sqla_compat)�Literal)�
Executable)�
ColumnElement)�conv)�quoted_name)�
TextClause)�Function)�CheckConstraint)�Column)�Computed)�
Constraint)�ForeignKeyConstraint)�Identity)�Index)�MetaData)�PrimaryKeyConstraint)�
SchemaItem)�Table)�UniqueConstraint)�TableClause)�
TypeEngine)�Rewriter)�MigrationContext)�
_RevIdType�_T)�bound�_AC�AddConstraintOpc �d � e Zd ZU dZej dd�� � Z e� � Zde d<