�
k\�g�� � �D � 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&j3 d,d-� � Z4dyd2�Z5ed/e6eee6d3f e
e6 f Z7ed4e6e6e
e6 f Z8ed1e6d3e
e6 f Z9ee7 Z: G d5� d6e
� � Z;dzdA�Z<e d{d|dL�� � Z=ed}dM�� � Z= d~ddP�Z=dQ� Z>d�dS�Z?dT� Z@dU� ZAdV� ZBdW� ZCdX� ZDdY� ZEdZ� ZFd�d_�ZGd`� ZHe d�d�da�� � ZIed�dd�� � ZI d�d�df�ZIe d�d�dg�� � ZJed�dh�� � ZJ d�d�di�ZJ G dj� dkej/ e � � ZKd�dn�ZLdo� ZMd�du�ZNdv� ZOdw� ZPdx� 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 �^ � t | t � � st j d| ��� � �| S )Nz5Can't create DML statement against column expression )�
isinstancer r �CompileError)r- s �c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sqlalchemy/sql/crud.py�_as_dml_columnr5 J s; � ��a��&�&�
���I�A�I�I�
�
�
�
�H� r* �KeyedColumnElement[Any]c �N � e Zd ZU ded<