Hacked By AnonymousFox
�
�܋f! � �F � d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlmZ ddl
mZ dd l
mZ dd
l
mZ ddl
mZ ddl
mZ dd
l
mZ ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl!m"Z" ddl!m#Z# ddl!m$Z$ ddl!m%Z% dd l!m&Z& dd!l!m'Z' dd"l!m(Z( d#� Z)d$� Z*ej+ ej, �- d%d&�'� � G d(� d)e� � � � � � Z.d*� Z/ G d+� d,e0� � Z1 G d-� d.e0� � Z2dS )/a
Heuristics related to join conditions as used in
:func:`_orm.relationship`.
Provides the :class:`.JoinCondition` object, which encapsulates
SQL annotation and aliasing behavior focused on the `primaryjoin`
and `secondaryjoin` aspects of :func:`_orm.relationship`.
� )�absolute_importN� )�
attributes)�
dependency)�mapper)�_is_mapped_class)� state_str)�
MANYTOMANY)� MANYTOONE)� ONETOMANY)�PropComparator)�StrategizedProperty)�
_orm_annotate)�_orm_deannotate)�CascadeOptions� )�exc)�log)�schema)�sql)�util)�inspect)�
expression)� operators)�visitors)�_deep_deannotate)�_shallow_annotate)�adapt_criterion_to_null)�
ClauseAdapter)�join_condition)�selectables_overlap��visit_binary_productc �J � t t j | � � ddi� � S )a Annotate a portion of a primaryjoin expression
with a 'remote' annotation.
See the section :ref:`relationship_custom_foreign` for a
description of use.
.. seealso::
:ref:`relationship_custom_foreign`
:func:`.foreign`
�remoteT��_annotate_columnsr �_clause_element_as_expr��exprs �S/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/orm/relationships.pyr% r% 4 s+ � � ��*�4�0�0�8�T�2B�� � � c �J � t t j | � � ddi� � S )a Annotate a portion of a primaryjoin expression
with a 'foreign' annotation.
See the section :ref:`relationship_custom_foreign` for a
description of use.
.. seealso::
:ref:`relationship_custom_foreign`
:func:`.remote`
�foreignTr&