XylotrechusZ
�
Ȓ�g�� � � � 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( er6dd#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&jf d,d-� Z4dRd0�Z5ed.e6eee6d1f e
e6 f Z7ed2e6e6e
e6 f Z8ed/e6d1e
e6 f Z9ee7 Z: G d3� d4e
� Z; dSd5�Z<e dT dUd6�� Z=e dVd7�� Z= dW dXd8�Z=d9� Z> dYd:�Z?d;� Z@d<� ZAd=� ZBd>� ZCd?� ZDd@� ZEdA� ZF dZdB�ZGdC� ZHe d[ d\dD�� ZIe d]dE�� ZI d^ d_dF�ZIe d[ d\dG�� ZJe d]dH�� ZJ d^ d_dI�ZJ G dJ� dKej^ e � ZK d`dL�ZLdM� ZM dadN�ZNdO� ZOdP� ZPdQ� ZQy)bziFunctions 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.
�ColumnElement[Any]�ColumnClause[Any]c �V � t | t � st j d| ��� �| S )Nz5Can't create DML statement against column expression )�
isinstancer r �CompileError)�cs �D/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/sql/crud.py�_as_dml_columnr4 J s0 � ��a��&����C�A�5�I�
�
�
�H� r* �KeyedColumnElement[Any]c �L � e Zd ZU ded<