diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-01-09 11:49:02 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-01-14 16:30:41 -0500 |
| commit | 4999784664b9e73204474dd3dd91ee60fd174e3e (patch) | |
| tree | 18f612f9960d5abee702b1bc1e0769ca26728793 /lib/sqlalchemy/sql/selectable.py | |
| parent | 43f6ae639ca0186f4802255861acdc20f19e702f (diff) | |
| download | sqlalchemy-4999784664b9e73204474dd3dd91ee60fd174e3e.tar.gz | |
Initial ORM typing layout
introduces:
1. new mapped_column() helper
2. DeclarativeBase helper
3. declared_attr has been re-typed
4. rework of Mapped[] to return InstrumentedAtribute for
class get, so works without Mapped itself having expression
methods
5. ORM constructs now generic on [_T]
also includes some early typing work, most of which will
be in later commits:
1. URL and History become typing.NamedTuple
2. come up with type-checking friendly way of type
checking cy extensions, where type checking will be applied
to the py versions, just needed to come up with a succinct
conditional pattern for the imports
References: #6810
References: #7535
References: #7562
Change-Id: Ie5d9a44631626c021d130ca4ce395aba623c71fb
Diffstat (limited to 'lib/sqlalchemy/sql/selectable.py')
| -rw-r--r-- | lib/sqlalchemy/sql/selectable.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index fd1abd71b..00e20e3fb 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -15,6 +15,9 @@ import collections import itertools from operator import attrgetter import typing +from typing import Any as TODO_Any +from typing import Optional +from typing import Tuple from typing import Type from typing import Union @@ -53,6 +56,7 @@ from .elements import BooleanClauseList from .elements import ClauseElement from .elements import ClauseList from .elements import ColumnClause +from .elements import ColumnElement from .elements import GroupedElement from .elements import Grouping from .elements import literal_column @@ -2648,8 +2652,7 @@ class SelectBase( """ return self.selected_columns - @property - @util.deprecated( + @util.deprecated_property( "1.4", "The :attr:`_expression.SelectBase.c` and " ":attr:`_expression.SelectBase.columns` attributes " @@ -4039,16 +4042,16 @@ class Select( __visit_name__ = "select" - _setup_joins = () - _memoized_select_entities = () + _setup_joins: Tuple[TODO_Any, ...] = () + _memoized_select_entities: Tuple[TODO_Any, ...] = () _distinct = False - _distinct_on = () - _correlate = () - _correlate_except = None - _where_criteria = () - _having_criteria = () - _from_obj = () + _distinct_on: Tuple[ColumnElement, ...] = () + _correlate: Tuple[FromClause, ...] = () + _correlate_except: Optional[Tuple[FromClause, ...]] = None + _where_criteria: Tuple[ColumnElement, ...] = () + _having_criteria: Tuple[ColumnElement, ...] = () + _from_obj: Tuple[FromClause, ...] = () _auto_correlate = True _compile_options = SelectState.default_select_compile_options @@ -4417,8 +4420,7 @@ class Select( """ return self._compile_state_factory(self, None)._get_display_froms() - @property - @util.deprecated( + @util.deprecated_property( "1.4.23", "The :attr:`_expression.Select.froms` attribute is moved to " "the :meth:`_expression.Select.get_final_froms` method.", |
