o
    i                     @   s   d dl mZmZmZmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZ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#m$Z$ d dl%m&Z& ededZ'G dd deZdS )    )AnyDictMappingOptionalSequenceTypeVarUnionoverload)util)CursorResult)_CoreAnyExecuteParams)ResultScalarResultTupleResult)Query)Session)OrmExecuteOptionsParameter)_ColumnsClauseArgument)
Executable)
UpdateBase)SelectSelectOfScalar)
deprecated_TSelectParam)boundc                       s  e Zd Zedejdddddee dee	e
eef ee
eef  f  de
eef deeeef  dee dee d	ee fd
dZedejdddddee dee	e
eef ee
eef  f  de
eef deeeef  dee dee d	ee fddZedejdddddedee	e
eef ee
eef  f  de
eef deeeef  dee dee d	ee fddZdejddddde	ee ee ee ef dee	e
eef ee
eef  f  de
eef deeeef  dee dee d	e	ee ee ee f f fddZeddd	dejdddddedee dedeeeef  dee dee d	ee f fddZeddee ded	ee f fddZ  ZS )r   Nparamsexecution_optionsbind_arguments_parent_execute_state
_add_event	statementr   r   r   r   r    returnc                C      d S N selfr!   r   r   r   r   r    r%   r%   Z/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/sqlmodel/orm/session.pyexec      
zSession.execc                C   r#   r$   r%   r&   r%   r%   r(   r)   *   r*   c                C   r#   r$   r%   r&   r%   r%   r(   r)   6   r*   c                   s.   t  j||||||d}t|tr| S |S )Nr   )superexecute
isinstancer   scalars)r'   r!   r   r   r   r   r    results	__class__r%   r(   r)   B   s   
  
        🚨 You probably want to use `session.exec()` instead of `session.execute()`.

        This is the original SQLAlchemy `session.execute()` method that returns objects
        of type `Row`, and that you have to call `scalars()` to get the model objects.

        For example:

        ```Python
        heroes = session.execute(select(Hero)).scalars().all()
        ```

        instead you could use `exec()`:

        ```Python
        heroes = session.exec(select(Hero)).all()
        ```
        )category)r   r   r   r    c                   s   t  j||||||dS )r2   r   )r+   r,   r&   r0   r%   r(   r,   _   s   1zSession.execute'  
        🚨 You probably want to use `session.exec()` instead of `session.query()`.

        `session.exec()` is SQLModel's own short version with increased type
        annotations.

        Or otherwise you might want to use `session.execute()` instead of
        `session.query()`.
        entitieskwargsc                    s   t  j|i |S )r4   )r+   query)r'   r5   r6   r0   r%   r(   r7      s   zSession.queryr$   ) __name__
__module____qualname__r	   r
   
EMPTY_DICTr   r   r   r   r   strr   r   r   r   r)   r   r   r   r   r   r   _Executabler   r   r   r,   r   _Queryr7   __classcell__r%   r%   r0   r(   r      s    "
	"
	"
	"	

	%r   N)(typingr   r   r   r   r   r   r   r	   
sqlalchemyr
   sqlalchemy.engine.cursorr   sqlalchemy.engine.interfacesr   sqlalchemy.engine.resultr   r   r   sqlalchemy.ormr   r>   r   _Sessionsqlalchemy.orm._typingr   sqlalchemy.sql._typingr   sqlalchemy.sql.baser   r=   sqlalchemy.sql.dmlr   sqlmodel.sql.basesqlmodel.sql.expressionr   r   typing_extensionsr   r   r%   r%   r%   r(   <module>   s    ( 