1# orm/__init__.py
2# Copyright (C) 2005-2026 the SQLAlchemy authors and contributors
3# <see AUTHORS file>
4#
5# This module is part of SQLAlchemy and is released under
6# the MIT License: https://www.opensource.org/licenses/mit-license.php
7
8"""
9Functional constructs for ORM configuration.
10
11See the SQLAlchemy object relational tutorial and mapper configuration
12documentation for an overview of how this module is used.
13
14"""
15
16from __future__ import annotations
17
18from typing import Any
19
20from . import exc as exc
21from . import mapper as mapperlib
22from . import strategy_options as strategy_options
23from ._orm_constructors import _mapper_fn as mapper
24from ._orm_constructors import aliased as aliased
25from ._orm_constructors import backref as backref
26from ._orm_constructors import clear_mappers as clear_mappers
27from ._orm_constructors import column_property as column_property
28from ._orm_constructors import composite as composite
29from ._orm_constructors import contains_alias as contains_alias
30from ._orm_constructors import create_session as create_session
31from ._orm_constructors import deferred as deferred
32from ._orm_constructors import dynamic_loader as dynamic_loader
33from ._orm_constructors import join as join
34from ._orm_constructors import mapped_column as mapped_column
35from ._orm_constructors import orm_insert_sentinel as orm_insert_sentinel
36from ._orm_constructors import outerjoin as outerjoin
37from ._orm_constructors import query_expression as query_expression
38from ._orm_constructors import relationship as relationship
39from ._orm_constructors import synonym as synonym
40from ._orm_constructors import unmapped_column as unmapped_column
41from ._orm_constructors import with_loader_criteria as with_loader_criteria
42from ._orm_constructors import with_polymorphic as with_polymorphic
43from .attributes import AttributeEventToken as AttributeEventToken
44from .attributes import InstrumentedAttribute as InstrumentedAttribute
45from .attributes import QueryableAttribute as QueryableAttribute
46from .base import class_mapper as class_mapper
47from .base import DynamicMapped as DynamicMapped
48from .base import InspectionAttrExtensionType as InspectionAttrExtensionType
49from .base import LoaderCallableStatus as LoaderCallableStatus
50from .base import Mapped as Mapped
51from .base import NotExtension as NotExtension
52from .base import ORMDescriptor as ORMDescriptor
53from .base import PassiveFlag as PassiveFlag
54from .base import SQLORMExpression as SQLORMExpression
55from .base import Unmapped as Unmapped
56from .base import WriteOnlyMapped as WriteOnlyMapped
57from .context import FromStatement as FromStatement
58from .context import QueryContext as QueryContext
59from .decl_api import add_mapped_attribute as add_mapped_attribute
60from .decl_api import as_declarative as as_declarative
61from .decl_api import as_typed_table as as_typed_table
62from .decl_api import declarative_base as declarative_base
63from .decl_api import declarative_mixin as declarative_mixin
64from .decl_api import DeclarativeBase as DeclarativeBase
65from .decl_api import DeclarativeBaseNoMeta as DeclarativeBaseNoMeta
66from .decl_api import DeclarativeMeta as DeclarativeMeta
67from .decl_api import declared_attr as declared_attr
68from .decl_api import has_inherited_table as has_inherited_table
69from .decl_api import mapped_as_dataclass as mapped_as_dataclass
70from .decl_api import MappedAsDataclass as MappedAsDataclass
71from .decl_api import registry as registry
72from .decl_api import synonym_for as synonym_for
73from .decl_api import TypeResolve as TypeResolve
74from .decl_api import unmapped_dataclass as unmapped_dataclass
75from .decl_base import MappedClassProtocol as MappedClassProtocol
76from .descriptor_props import Composite as Composite
77from .descriptor_props import CompositeProperty as CompositeProperty
78from .descriptor_props import Synonym as Synonym
79from .descriptor_props import SynonymProperty as SynonymProperty
80from .dynamic import AppenderQuery as AppenderQuery
81from .events import AttributeEvents as AttributeEvents
82from .events import InstanceEvents as InstanceEvents
83from .events import InstrumentationEvents as InstrumentationEvents
84from .events import MapperEvents as MapperEvents
85from .events import QueryEvents as QueryEvents
86from .events import RegistryEvents as RegistryEvents
87from .events import SessionEvents as SessionEvents
88from .identity import IdentityMap as IdentityMap
89from .instrumentation import ClassManager as ClassManager
90from .interfaces import EXT_CONTINUE as EXT_CONTINUE
91from .interfaces import EXT_SKIP as EXT_SKIP
92from .interfaces import EXT_STOP as EXT_STOP
93from .interfaces import InspectionAttr as InspectionAttr
94from .interfaces import InspectionAttrInfo as InspectionAttrInfo
95from .interfaces import MANYTOMANY as MANYTOMANY
96from .interfaces import MANYTOONE as MANYTOONE
97from .interfaces import MapperProperty as MapperProperty
98from .interfaces import NO_KEY as NO_KEY
99from .interfaces import NO_VALUE as NO_VALUE
100from .interfaces import ONETOMANY as ONETOMANY
101from .interfaces import PropComparator as PropComparator
102from .interfaces import RelationshipDirection as RelationshipDirection
103from .interfaces import UserDefinedOption as UserDefinedOption
104from .loading import merge_frozen_result as merge_frozen_result
105from .loading import merge_result as merge_result
106from .mapped_collection import attribute_keyed_dict as attribute_keyed_dict
107from .mapped_collection import (
108 attribute_mapped_collection as attribute_mapped_collection,
109)
110from .mapped_collection import column_keyed_dict as column_keyed_dict
111from .mapped_collection import (
112 column_mapped_collection as column_mapped_collection,
113)
114from .mapped_collection import keyfunc_mapping as keyfunc_mapping
115from .mapped_collection import KeyFuncDict as KeyFuncDict
116from .mapped_collection import mapped_collection as mapped_collection
117from .mapped_collection import MappedCollection as MappedCollection
118from .mapper import configure_mappers as configure_mappers
119from .mapper import Mapper as Mapper
120from .mapper import reconstructor as reconstructor
121from .mapper import validates as validates
122from .properties import ColumnProperty as ColumnProperty
123from .properties import MappedColumn as MappedColumn
124from .properties import MappedSQLExpression as MappedSQLExpression
125from .query import AliasOption as AliasOption
126from .query import Query as Query
127from .relationships import foreign as foreign
128from .relationships import Relationship as Relationship
129from .relationships import RelationshipProperty as RelationshipProperty
130from .relationships import remote as remote
131from .scoping import QueryPropertyDescriptor as QueryPropertyDescriptor
132from .scoping import scoped_session as scoped_session
133from .session import close_all_sessions as close_all_sessions
134from .session import make_transient as make_transient
135from .session import make_transient_to_detached as make_transient_to_detached
136from .session import object_session as object_session
137from .session import ORMExecuteState as ORMExecuteState
138from .session import Session as Session
139from .session import sessionmaker as sessionmaker
140from .session import SessionTransaction as SessionTransaction
141from .session import SessionTransactionOrigin as SessionTransactionOrigin
142from .state import AttributeState as AttributeState
143from .state import InstanceState as InstanceState
144from .strategy_options import contains_eager as contains_eager
145from .strategy_options import defaultload as defaultload
146from .strategy_options import defer as defer
147from .strategy_options import immediateload as immediateload
148from .strategy_options import joinedload as joinedload
149from .strategy_options import lazyload as lazyload
150from .strategy_options import Load as Load
151from .strategy_options import load_only as load_only
152from .strategy_options import noload as noload
153from .strategy_options import raiseload as raiseload
154from .strategy_options import selectin_polymorphic as selectin_polymorphic
155from .strategy_options import selectinload as selectinload
156from .strategy_options import subqueryload as subqueryload
157from .strategy_options import undefer as undefer
158from .strategy_options import undefer_group as undefer_group
159from .strategy_options import with_expression as with_expression
160from .unitofwork import UOWTransaction as UOWTransaction
161from .util import Bundle as Bundle
162from .util import CascadeOptions as CascadeOptions
163from .util import DictBundle as DictBundle
164from .util import LoaderCriteriaOption as LoaderCriteriaOption
165from .util import object_mapper as object_mapper
166from .util import polymorphic_union as polymorphic_union
167from .util import was_deleted as was_deleted
168from .util import with_parent as with_parent
169from .writeonly import WriteOnlyCollection as WriteOnlyCollection
170from .. import util as _sa_util
171
172
173def __go(lcls: Any) -> None:
174 _sa_util.preloaded.import_prefix("sqlalchemy.orm")
175 _sa_util.preloaded.import_prefix("sqlalchemy.ext")
176
177
178__go(locals())