File: //opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/sql/__pycache__/crud.cpython-37.pyc
B
��4]�d � @ s" d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ e�d d
�Ze�d�Z e�d�Z
e�d
�Zdd� Zdd� Z
d:dd�Zdd� Zdd� Zdd� Zdd� Zdd� Zd;d d!�Zd<d"d#�ZG d$d%� d%ej�Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Z d8d9� Z!dS )=ziFunctions used by compiler.py to determine the parameters rendered
within INSERT and UPDATE statements.
� N� )�dml)�elements� )�exc)�util�REQUIREDa1
Placeholder for the value within a :class:`.BindParameter`
which is required to be present when the statement is passed
to :meth:`.Connection.execute`.
This symbol is typically used when a :func:`.expression.insert`
or :func:`.expression.update` statement is compiled without parameter
values present.
�ISINSERT�ISUPDATE�ISDELETEc K s� | j }| j}| j}|p*|p*|p*t| j�dk}|tkrBd| _d| _ n6|tkrXd| _d| _ n |tkrl|sxd| _ndsxtd��z|ttfkr�t | |f|�S W d |r�|| _ || _|| _X d S )Nr FTz(ISINSERT, ISUPDATE, or ISDELETE expected)
�isinsert�isupdateZisdelete�len�stackr r
r �AssertionError�_get_crud_params)�compiler�stmtZlocal_stmt_type�kwZrestore_isinsertZrestore_isupdateZrestore_isdeleteZshould_restore� r �F/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/sql/crud.py�_setup_crud_params'