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