관리-도구
편집 파일: util.cpython-311.pyc
� �܋fZu � �� � d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm Z dd lmZ dd lm Z ddlmZ ddlmZ dd lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddlm&Z& d d!lm'Z' d d"lm(Z( e(j) �* e#j+ d#� � Z,d$� Z-d%� Z.d&� Z/d'� Z0 dEd)�Z1d*� Z2d+� Z3d,� Z4d-� Z5d.� Z6d/� Z7d0� Z8dFd2�Z9d3� Z:d4� Z;d5� Z< G d6� d7e=� � Z> G d8� d9e>� � Z? G d:� d;e>� � Z@d<� ZAdGd>�ZBd?� ZC dHd@�ZD G dA� dBejE � � ZF G dC� dDeF� � ZGd=S )Iz;High level utilities which build upon other modules here. � )�deque)�chain� )� operators)�visitors)�_deep_annotate)�_deep_deannotate)�_shallow_annotate)� _from_objects)� ColumnSet)�sort_tables)�_expand_cloned)� _find_columns)�_label_reference)�_textual_label_reference)� BindParameter)�ColumnClause)� ColumnElement)�Grouping)�Label)�Null)�UnaryExpression)�Column)�Alias)� FromClause)�FromGrouping)�Join)�ScalarSelect)� SelectBase)�TableClause� )�exc)�utilz.sql.util.join_conditionc �� � t t |� � � � }g }t | � � D ]4\ }}|D ],}|� |� � r|� |� � �-�5|S )a� Given a list of FROM clauses and a selectable, return the first index and element from the list of clauses which can be joined against the selectable. returns None, None if no match is found. e.g.:: clause1 = table1.join(table2) clause2 = table4.join(table5) join_to = table2.join(table3) find_join_source([clause1, clause2], join_to) == clause1 )�listr � enumerate�is_derived_from�append)�clauses�join_to�selectables�idx�i�f�ss �J/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/sql/util.py�find_join_sourcer1 3 sz � �"