Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/sqlalchemy/sql/__pycache__/selectable.cpython-39.pyc
Ðазад
a _�h�! � @ sl d Z ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlm Z ddl mZ 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# ddlm$Z$ dd lm%Z% dd!lm&Z& dd"lm'Z' dd#lm(Z( dd$lm)Z) d%d&lm*Z* d%d'lm+Z+ d%d(lm,Z, d)d*� Z-d+d,� Z.G d-d.� d.e#�Z/d_d/d0�Z0d1d2� Z1d3d4� Z2G d5d6� d6e$�Z3G d7d8� d8e4�Z5G d9d:� d:e4�Z6G d;d<� d<e3�Z7G d=d>� d>e7�Z8G d?d@� d@e7�Z9G dAdB� dBe9�Z:G dCdD� dDe9�Z;G dEdF� dFee5e6e9�Z<G dGdH� dHe4�Z=G dIdJ� dJe7�Z>G dKdL� dLee7�Z?G dMdN� dNe$�Z@G dOdP� dPe=ee7�ZAG dQdR� dReA�ZBG dSdT� dTeB�ZCG dUdV� dVe5e6eB�ZDG dWdX� dXee&�ZEG dYdZ� dZe)�ZFG d[d\� d\eA�ZGG d]d^� d^e�ZHdS )`ztThe :class:`_expression.FromClause` class of SQL expression elements, representing SQL tables and derived rowsets. � N)� attrgetter)� Visitable� )� operators)�type_api)� Annotated)� _from_objects)�_generative)�ColumnCollection)� ColumnSet)� Executable)� Generative)� Immutable)�_anonymous_label)�_clause_element_as_expr)�_clone)�_cloned_difference��_cloned_intersection)�_document_text_coercion)�_expand_cloned��_interpret_as_column_or_from)�&_literal_and_labels_as_label_reference��_literal_as_label_reference��_literal_as_text)�_no_text_coercion)�_select_iterables)�and_)� BindParameter)� ClauseElement)� ClauseList)�Grouping)�literal_column)�True_)�UnaryExpression� )�exc)� inspection)�utilc C sp t j| dd�}|d u r*t| tj�r*t| � z|jW S tyj } z tjt � d�|d� W Y d }~n d }~0 0 d S )NF)ZraiseerrzFROM expression expected�Zreplace_context)r* �inspect� isinstancer+ �string_typesr � selectable�AttributeError�raise_r) � ArgumentError)�elementZinsp�err� r6 ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/sqlalchemy/sql/selectable.py�_interpret_as_from8 s �r8 c C s. t | �} t| t�r| j} t| t�s*| �� } | S �N)r8 r. �Alias�original� SelectBase�select�r4 r6 r6 r7 �_interpret_as_selectE s r? c @ s e Zd Zedd� �ZdS )�_OffsetLimitParamc C s | j S r9 )Zeffective_value��selfr6 r6 r7 �_limit_offset_valueO s z%_OffsetLimitParam._limit_offset_valueN)�__name__� __module__�__qualname__�propertyrC r6 r6 r6 r7 r@ N s r@ c C sJ | du rdS t | d�r| �� S t| t�r,| S t�| �}t|||dd�S dS )z�Convert the given value to an "offset or limit" clause. This handles incoming integers and converts to an expression; if an expression is already given, it is passed through. N�__clause_element__T)�type_�unique)�hasattrrH r. r r+ �asintr@ )r4 �namerI �valuer6 r6 r7 �_offset_or_limit_clauseT s rO c C sb | du rdS z | j }W n< tyR } z$tjt�d| �|d� W Y d}~nd}~0 0 t�|�S dS )z�Convert the "offset or limit" clause of a select construct to an integer. This is only possible if the value is stored as a simple bound parameter. Otherwise, a compilation error is raised. Nz@This SELECT structure does not use a simple integer value for %sr, )rC r1 r+ r2 r) �CompileErrorrL )�clause�attrnamerN r5 r6 r6 r7 �_offset_or_limit_clause_asintf s ���rS c O s t |i |���| �S )z�Return an :class:`_expression.Alias` object derived from a :class:`_expression.Select`. :param alias: the alias name :param \*args, \**kwargs: all other arguments are delivered to the :func:`_expression.select` function. )�Select�alias)rU �args�kwargsr6 r6 r7 �subquery~ s rX c @ s$ e Zd ZdZdZdZedd� �ZdS )� Selectablez!Mark a class as being selectable.r0 Tc C s | S r9 r6 rA r6 r6 r7 r0 � s zSelectable.selectableN)rD rE rF �__doc__�__visit_name__Z is_selectablerG r0 r6 r6 r6 r7 rY � s rY c @ s2 e Zd ZdZeeddd�dd� ��Zd dd �ZdS )�HasPrefixesr6 �exprz+:meth:`_expression.HasPrefixes.prefix_with`z*:paramref:`.HasPrefixes.prefix_with.*expr`c O s4 |� dd�}|r$t�dd�|� ��| �||� dS )a� Add one or more expressions following the statement keyword, i.e. SELECT, INSERT, UPDATE, or DELETE. Generative. This is used to support backend-specific prefix keywords such as those provided by MySQL. E.g.:: stmt = table.insert().prefix_with("LOW_PRIORITY", dialect="mysql") # MySQL 5.7 optimizer hints stmt = select([table]).prefix_with( "/*+ BKA(t1) */", dialect="mysql") Multiple prefixes can be specified by multiple calls to :meth:`_expression.HasPrefixes.prefix_with`. :param \*expr: textual or :class:`_expression.ClauseElement` construct which will be rendered following the INSERT, UPDATE, or DELETE keyword. :param \**kw: A single keyword 'dialect' is accepted. This is an optional string dialect name which will limit rendering of this prefix to only that dialect. �dialectN�Unsupported argument(s): %s�,)�popr) r3 �join�_setup_prefixes�rB r] �kwr^ r6 r6 r7 �prefix_with� s !�zHasPrefixes.prefix_withNc s"