�
g\�g�. � � � d Z ddlmZ ddlmZ ddlmZ ddlZddlZddlm Z ddlm
Z
ddlmZ ddlmZ dd lm
Z
dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ esesddlmZ nddl mZ erddl!m"Z" ddl!m#Z# ddl!m$Z$ ede �� � Z% edee d f �� � Z& G d!� d"eee ee& � � Z'eZ(e'Z) G d#� d$e� � Z* G d%� d&e*ej+ d' ej, e � � Z- G d(� d)e*ej. d'e f � � Z/ G d*� d+eej d'e f � � Z0dS ),z.Define row constructs including :class:`.Row`.� )�annotations)�ABCN)�Any)�Callable)�Dict)�Generic)�Iterator)�List)�Mapping)�NoReturn)�Optional)�overload)�Sequence)�Tuple)�
TYPE_CHECKING)�TypeVar)�Union� )�util)�
deprecated)�HAS_CYEXTENSION� )�BaseRow)�_KeyType)�_ProcessorsType)� RMKeyView�_T)�bound�_TP.c � � e Zd ZdZdZd6d �Zd7d
�Zd8d�Z ed
d� � d8d�� � Z e
d8d�� � Ze
ed
d� � d8d�� � � � Ze
d9d�� � Z
d:d�Zesd;d�Z ed� � Z ed� � Zd<d�Zd=d"�Zej Zered>d$�� � Zed?d'�� � Zd@d)�ZdAd*�ZdAd+�ZdAd,�ZdAd-�ZdAd.�ZdAd/�ZdBd0�Ze
dCd2�� � Z dDd4�Z!d5S )E�Rowa Represent a single result row.
The :class:`.Row` object represents a row of a database result. It is
typically associated in the 1.x series of SQLAlchemy with the
:class:`_engine.CursorResult` object, however is also used by the ORM for
tuple-like results as of SQLAlchemy 1.4.
The :class:`.Row` object seeks to act as much like a Python named
tuple as possible. For mapping (i.e. dictionary) behavior on a row,
such as testing for containment of keys, refer to the :attr:`.Row._mapping`
attribute.
.. seealso::
:ref:`tutorial_selecting_data` - includes examples of selecting
rows from SELECT statements.
.. versionchanged:: 1.4
Renamed ``RowProxy`` to :class:`.Row`. :class:`.Row` is no longer a
"proxy" object in that it contains the final form of data within it,
and now acts mostly like a named tuple. Mapping-like functionality is
moved to the :attr:`.Row._mapping` attribute. See
:ref:`change_4710_core` for background on this change.
� �name�str�valuer �returnr c � � t d� � �)Nzcan't set attribute��AttributeError)�selfr# r% s �e/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sqlalchemy/engine/row.py�__setattr__zRow.__setattr__P s � ��2�3�3�3� c � � t d� � �)Nzcan't delete attributer( )r* r# s r+ �__delattr__zRow.__delattr__S s � ��5�6�6�6r- r c � � | S )a5 Return a 'tuple' form of this :class:`.Row`.
At runtime, this method returns "self"; the :class:`.Row` object is
already a named tuple. However, at the typing level, if this
:class:`.Row` is typed, the "tuple" return type will be a :pep:`484`
``Tuple`` datatype that contains typing information about individual
elements, supporting typed unpacking and attribute access.
.. versionadded:: 2.0.19 - The :meth:`.Row._tuple` method supersedes
the previous :meth:`.Row.tuple` method, which is now underscored
to avoid name conflicts with column names in the same way as other
named-tuple methods on :class:`.Row`.
.. seealso::
:attr:`.Row._t` - shorthand attribute notation
:meth:`.Result.tuples`
r"