File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/__pycache__/crud.cpython-310.pyc
o
���g�� � @ s� d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlmZ ddlm Z ddlm
Z
dd lmZ dd
lmZ ddlm
Z
ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddl"m#Z# ddl"m$Z$ dd lm%Z% dd!lm&Z& dd"l'm(Z( er�dd#l)m*Z* dd$l)m+Z+ dd%lm,Z, dd&lm-Z- dd'lm.Z. dd(lm/Z/ dd)lm0Z0 dd*lm1Z1 dd+lm2Z2 e&�3d,d-�Z4d�d2d3�Z5ed/e6eee6d4f e
e6 f Z7ed5e6e6e
e6 f Z8ed1e6d4e
e6 f Z9ee7 Z:G d6d7� d7e
�Z;d�dBdC�Z<e D E d�d�dNdO��Z=ed�dPdO��Z= Q E d�d�dSdO�Z=dTdU� Z>d�dWdX�Z?dYdZ� Z@d[d\� ZAd]d^� ZBd_d`� ZCdadb� ZDdcdd� ZEdedf� ZFd�dkdl�ZGdmdn� ZHe Dd�d�dodp��ZIed�dsdp��ZI Q d�d�dudp�ZIe Dd�d�dvdw��ZJed�dxdw��ZJ Q d�d�dydw�ZJG dzd{� d{ej/e �ZKd�d~d�ZLd�d�� ZMd�d�d��ZNd�d�� ZOd�d�� ZPd�d�� ZQdS )�ziFunctions used by compiler.py to determine the parameters rendered
within INSERT and UPDATE statements.
� )�annotationsN)�Any)�Callable)�cast)�Dict)�Iterable)�List)�MutableMapping)�
NamedTuple)�Optional)�overload)�Sequence)�Set)�Tuple)�
TYPE_CHECKING)�Union� )� coercions)�dml)�elements)�roles)�_DefaultDescriptionTuple)�isinsert)�ColumnClause)�default_is_clause_element)�default_is_sequence)�Select)�TableClause� )�exc)�util)�Literal)�_BindNameForColProtocol)�SQLCompiler)�_DMLColumnElement)�DMLState)�
ValuesBase)�
ColumnElement)�KeyedColumnElement)�_SQLExprDefault)�Column�REQUIREDa8
Placeholder for the value within a :class:`.BindParameter`
which is required to be present when the statement is passed
to :meth:`_engine.Connection.execute`.
This symbol is typically used when a :func:`_expression.insert`
or :func:`_expression.update` statement is compiled without parameter
values present.
�c�ColumnElement[Any]�return�ColumnClause[Any]c C s t | t�s
t�d| ����| S )Nz5Can't create DML statement against column expression )�
isinstancer r �CompileError)r, � r2 �>/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/crud.py�_as_dml_columnJ s
�r4 r) �KeyedColumnElement[Any]c @ sB e Zd ZU ded<