File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/__pycache__/selectable.cpython-310.pyc
o
���g�� � @ sl
d Z ddlmZ ddlZddlmZ ddlZddlmZ ddlm Z
ddlm Z ddlmZ ddlmZ dd lm
Z
dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddlm"Z" ddlm#Z# dd lm$Z$ dd!l%m&Z& dd"l%m'Z' dd#l%m(Z( dd$l%m)Z) dd%l%m*Z* dd&l%m+Z+ dd'l%m,Z, dd(l%m-Z- dd)l.m/Z/ dd*l.m0Z0 dd+l1m2Z2 dd,l1m3Z3 dd-l1m4Z4 dd.l1m5Z5 dd/l1m6Z6 dd0l1m7Z7 dd1l1m8Z8 dd2l1m9Z9 dd3l1m:Z: dd4l1m;Z; dd5l1m<Z< dd6l1m=Z= dd7l1m>Z> dd8l1m?Z? dd9l1m@Z@ dd:l1mAZA dd;l1mBZB dd<l1mCZC dd=l1mDZD dd>l1mEZE dd?l1mFZF dd@lmGZG ddAlHmIZI ddBlHmJZJ ddClHmKZK ddDlHmLZL ddElHmMZM ddFlHmNZN ddGlHmOZO ddHlHmPZP ddIlHmQZQ ddJlHmRZR ddKlHmSZS ddLlHmTZT ddMl mUZU ddNlVmWZW ddOl$mXZX ddPl$mYZY ddQl$mZZZ dRdSlm[Z[ dRdTlm\Z\ dRdUl\m]Z] dRdVl^m_Z_ dRdWl^m`Z` dRdXl^maZa eKjbZbedYe dZ�Zce�r�dd[l%mdZd dd\l%meZe dd]l%mfZf dd^l%mgZg dd_l%mhZh dd`l%miZi ddal%mjZj ddbl%mkZk ddcl%mlZl dddl%mmZm ddel%mnZn ddfl%moZo ddgl%mpZp ddhl%mqZq ddil%mrZr ddjl%msZs ddkl%mtZt ddll%muZu ddml%mvZw ddnl%mxZx ddol1myZy ddpl1mzZz ddql1m{Z{ ddrlm|Z| ddsl}m~Z~ ddtlm�Z� ddulm�Z� ddvlHm�Z� ddwlHm�Z� ddxlHm�Z� ddylHm�Z� ddzlHm�Z� dd{l�m�Z� dd|l�m�Z� dd}l�m�Z� dd~lVm�Z� ddl#m�Z� dd�l$m�Z� ed�eOe d�f Z�eed� gee� f Z�G d�d�� d�e`�Z�ed�e�f Z�ed�e�f Z�eed� ed� f Z�ee�ee� ed� e
e�e f f Z�eed� Z�G d�d�� d�eJe� �Z�G d�d�� d�e!j�eP�Z�G d�d�� d�eBe��Z�G d�d�� d�e�ee( �Z�G d�d�� d�e��Z�G d�d�� d��Z�G d�d�� d��Z�G d�d�� d��Z�G d�d�� d�e!j�e��Z�G d�d�� d�e��Z�G d�d�� d�e�Z�e�e��\Z�Z�Z�Z�e�Z�G d�d�� d�e!j�e��Z�G d�d�� d��Z�G d�d�� d�e��Z�G d�d�� d�e�e��Z�G d�d�� d�e��Z�G d�d�� d�e!j�e��Z�G d�d�� d�e�e��Z�G d�d�� d�e�e��Z�G d�d�� d�e��Z�G d�d�� d�e!j�e!j�eCe�e�e��Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e��Z�G d�d�� d�e!j�e��Z�G d�d�� d�e��Z�G d�d�� d�eQe��Z�G d�d�� d�e�e��Z�G d�d�� d�e!j�eFe��Z�ed�de�e
e�e f f Z�G d�d d�eL�Z�G d�dń d�e!j�eCe��Z�G d�dDŽ d�e!j�eQeOe �Z�G d�dɄ d�e!j�e!j�e!j�e!j�e�e0e�� Z�ed�e�dZ�Z�G d�d̄ d�eQe�ee� �Z�G d�d΄ d�e�eC�Z�e@��d�dСG d�d҄ d�e@��Z�G d�dԄ d�e�Z�G d�dք d�eDe�e��Z�e�D ]
Z�e�e�e�j�e҃ �q�e@��d�dסG d�dل d�e\j�e@��Z�G d�dۄ dۃZ�G d�d݄ d�ej�e"j�e$jڃZ�G d�d߄ d�e�e�e�eDe�e�e�e( � Z�G d�d� d�e!j�eCeQeOec �Z�G d�d� d�eTe� �Z�G d�d� d�e�e�eC�Z�e�Z� G d�d� d�e/�Z�dS )�ztThe :class:`_expression.FromClause` class of SQL expression elements,
representing
SQL tables and derived rowsets.
� )�annotationsN)�Enum)�AbstractSet)�Any)�Callable)�cast)�Dict)�Generic)�Iterable)�Iterator)�List)�
NamedTuple)�NoReturn)�Optional)�overload)�Sequence)�Set)�Tuple)�Type)�
TYPE_CHECKING)�TypeVar)�Union� )� cache_key)� coercions)� operators)�roles)�
traversals)�type_api)�visitors)�_ColumnsClauseArgument)�_no_kw)�_TP��is_column_element)�is_select_statement)�is_subquery)�is_table)�is_text_clause)� Annotated)�SupportsCloneAnnotations)�_clone)�_cloned_difference��_cloned_intersection��_entity_namespace_key)�_EntityNamespace)�_expand_cloned��
_from_objects)�_generative��_never_select_column)�_NoArg)�_select_iterables)�CacheableOptions)�ColumnCollection)� ColumnSet)�CompileState)�DedupeColumnCollection)�
Executable)�
Generative)�HasCompileState)�HasMemoized)� Immutable)�_document_text_coercion)�_anonymous_label)�
BindParameter)�BooleanClauseList)�
ClauseElement)�
ClauseList)�ColumnClause)�
ColumnElement)�DQLDMLClauseElement)�GroupedElement)�literal_column)�TableValuedColumn)�UnaryExpression)�OperatorType)�NULLTYPE)�_TraverseInternalsType)�InternalTraversal)�prefix_anon_map� )�exc)�util)�!HasMemoized_ro_memoized_attribute)�Literal)�Protocol)�Self�_T)�bound)�_ColumnExpressionArgument)�#_ColumnExpressionOrStrLabelArgument)�_FromClauseArgument)�_JoinTargetArgument)�_LimitOffsetType)�
_MAYBE_ENTITY)�_NOT_ENTITY)�_OnClauseArgument)�#_SelectStatementForCompoundArgument)�_T0)�_T1)�_T2)�_T3)�_T4)�_T5)�_T6)�_T7)�_TextCoercedExpressionArgument)�_TypedColumnClauseArgument)�_TypeEngineArgument)�_AmbiguousTableNameMap)�ExecutableOption)�ReadOnlyColumnCollection)�_CacheKeyTraversalType)�SQLCompiler)�Delete)�Update)�BinaryExpression)�KeyedColumnElement)�Label)�NamedColumn)�
TextClause)�Function)�
ForeignKey)�ForeignKeyConstraint)�TableValueType)�
TypeEngine)�_CloneCallableType�
FromClauser~ )�ColumnElement[Any]r~ c @ s, e Zd Zejd dd��Zejd
dd��ZdS )�_JoinTargetProtocol�return�List[FromClause]c C � d S �N� ��selfr� r� �D/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/selectable.pyr4 � � z!_JoinTargetProtocol._from_objectsr1 c C r� r� r� r� r� r� r� �entity_namespace� r� z$_JoinTargetProtocol.entity_namespaceN�r� r� �r� r1 )�__name__�
__module__�__qualname__rX �ro_non_memoized_propertyr4 r� r� r� r� r� r� � s
r� �ColumnElement[bool])�_ColumnExpressionArgument[Any]ra r� c @ s e Zd ZdZeddd��ZdS )�_OffsetLimitParamTr� �
Optional[int]c C � | j S r� )�effective_valuer� r� r� r� �_limit_offset_value� � z%_OffsetLimitParam._limit_offset_valueN�r� r� )r� r� r� �
inherit_cache�propertyr� r� r� r� r� r� � s r� c @ sn e Zd ZdZdZdZdZdZdZe d!dd��Z
ejd"dd ��Z
d#d
d�Zd$dd�Zd%dd�Ze d&dd��Zd S )'�ReturnsRowsa� The base-most class for Core constructs that have some concept of
columns that can represent rows.
While the SELECT statement and TABLE are the primary things we think
of in this category, DML like INSERT, UPDATE and DELETE can also specify
RETURNING which means they can be used in CTEs and other forms, and
PostgreSQL has functions that return rows also.
.. versionadded:: 1.4
TFr� c C � | S r� r� r� r� r� r� �
selectable� � zReturnsRows.selectable�_SelectIterablec C � t � �)aE A sequence of column expression objects that represents the
"selected" columns of this :class:`_expression.ReturnsRows`.
This is typically equivalent to .exported_columns except it is
delivered in the form of a straight sequence and not keyed
:class:`_expression.ColumnCollection`.
��NotImplementedErrorr� r� r� r� �_all_selected_columns� s
z!ReturnsRows._all_selected_columns�
fromclause�Optional[FromClause]�boolc C r� )z�Return ``True`` if this :class:`.ReturnsRows` is
'derived' from the given :class:`.FromClause`.
An example would be an Alias of a Table is derived from that Table.
r� �r� r� r� r� r� �is_derived_from� � zReturnsRows.is_derived_fromr� �columns�.ColumnCollection[str, KeyedColumnElement[Any]]�primary_keyr<