1# sql/__init__.py
2# Copyright (C) 2005-2025 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
7from typing import Any
8from typing import TYPE_CHECKING
9
10from ._typing import ColumnExpressionArgument as ColumnExpressionArgument
11from ._typing import NotNullable as NotNullable
12from ._typing import Nullable as Nullable
13from .base import Executable as Executable
14from .base import SyntaxExtension as SyntaxExtension
15from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
16from .compiler import FROM_LINTING as FROM_LINTING
17from .compiler import NO_LINTING as NO_LINTING
18from .compiler import WARN_LINTING as WARN_LINTING
19from .ddl import BaseDDLElement as BaseDDLElement
20from .ddl import DDL as DDL
21from .ddl import DDLElement as DDLElement
22from .ddl import ExecutableDDLElement as ExecutableDDLElement
23from .expression import Alias as Alias
24from .expression import alias as alias
25from .expression import all_ as all_
26from .expression import and_ as and_
27from .expression import any_ as any_
28from .expression import asc as asc
29from .expression import between as between
30from .expression import bindparam as bindparam
31from .expression import case as case
32from .expression import cast as cast
33from .expression import ClauseElement as ClauseElement
34from .expression import collate as collate
35from .expression import column as column
36from .expression import ColumnCollection as ColumnCollection
37from .expression import ColumnElement as ColumnElement
38from .expression import CompoundSelect as CompoundSelect
39from .expression import cte as cte
40from .expression import Delete as Delete
41from .expression import delete as delete
42from .expression import desc as desc
43from .expression import distinct as distinct
44from .expression import except_ as except_
45from .expression import except_all as except_all
46from .expression import exists as exists
47from .expression import extract as extract
48from .expression import false as false
49from .expression import False_ as False_
50from .expression import from_dml_column as from_dml_column
51from .expression import FromClause as FromClause
52from .expression import func as func
53from .expression import funcfilter as funcfilter
54from .expression import Insert as Insert
55from .expression import insert as insert
56from .expression import intersect as intersect
57from .expression import intersect_all as intersect_all
58from .expression import Join as Join
59from .expression import join as join
60from .expression import label as label
61from .expression import LABEL_STYLE_DEFAULT as LABEL_STYLE_DEFAULT
62from .expression import (
63 LABEL_STYLE_DISAMBIGUATE_ONLY as LABEL_STYLE_DISAMBIGUATE_ONLY,
64)
65from .expression import LABEL_STYLE_NONE as LABEL_STYLE_NONE
66from .expression import (
67 LABEL_STYLE_TABLENAME_PLUS_COL as LABEL_STYLE_TABLENAME_PLUS_COL,
68)
69from .expression import lambda_stmt as lambda_stmt
70from .expression import LambdaElement as LambdaElement
71from .expression import lateral as lateral
72from .expression import literal as literal
73from .expression import literal_column as literal_column
74from .expression import modifier as modifier
75from .expression import not_ as not_
76from .expression import null as null
77from .expression import nulls_first as nulls_first
78from .expression import nulls_last as nulls_last
79from .expression import nullsfirst as nullsfirst
80from .expression import nullslast as nullslast
81from .expression import or_ as or_
82from .expression import outerjoin as outerjoin
83from .expression import outparam as outparam
84from .expression import over as over
85from .expression import quoted_name as quoted_name
86from .expression import Select as Select
87from .expression import select as select
88from .expression import Selectable as Selectable
89from .expression import SelectLabelStyle as SelectLabelStyle
90from .expression import SQLColumnExpression as SQLColumnExpression
91from .expression import StatementLambdaElement as StatementLambdaElement
92from .expression import Subquery as Subquery
93from .expression import table as table
94from .expression import TableClause as TableClause
95from .expression import TableSample as TableSample
96from .expression import tablesample as tablesample
97from .expression import text as text
98from .expression import true as true
99from .expression import True_ as True_
100from .expression import try_cast as try_cast
101from .expression import tuple_ as tuple_
102from .expression import type_coerce as type_coerce
103from .expression import union as union
104from .expression import union_all as union_all
105from .expression import Update as Update
106from .expression import update as update
107from .expression import Values as Values
108from .expression import values as values
109from .expression import within_group as within_group
110from .visitors import ClauseVisitor as ClauseVisitor
111
112
113def __go(lcls: Any) -> None:
114 from .. import util as _sa_util
115
116 from . import base
117 from . import coercions
118 from . import elements
119 from . import lambdas
120 from . import selectable
121 from . import schema
122 from . import traversals
123 from . import type_api
124
125 if not TYPE_CHECKING:
126 base.coercions = elements.coercions = coercions
127 base.elements = elements
128 base.type_api = type_api
129 coercions.elements = elements
130 coercions.lambdas = lambdas
131 coercions.schema = schema
132 coercions.selectable = selectable
133
134 from .annotation import _prepare_annotations
135 from .annotation import Annotated
136 from .elements import AnnotatedColumnElement
137 from .elements import ClauseList
138 from .selectable import AnnotatedFromClause
139
140 _prepare_annotations(ColumnElement, AnnotatedColumnElement)
141 _prepare_annotations(FromClause, AnnotatedFromClause)
142 _prepare_annotations(ClauseList, Annotated)
143
144 _sa_util.preloaded.import_prefix("sqlalchemy.sql")
145
146
147__go(locals())