11from typing import Any
2+ from typing import Callable
3+ from typing import Iterable
4+ from typing import Iterator
5+ from typing import List
26from typing import Optional
7+ from typing import Sequence
8+ from typing import TypeVar
9+ from typing import Union
310
4- from . import coercions as coercions
5- from . import operators as operators
6- from . import roles as roles
7- from . import visitors as visitors
8- from .base import ColumnSet as ColumnSet
9- from .ddl import sort_tables as sort_tables
10- from .elements import BindParameter as BindParameter
11- from .elements import ColumnClause as ColumnClause
12- from .elements import ColumnElement as ColumnElement
13- from .elements import Grouping as Grouping
14- from .elements import Label as Label
15- from .elements import Null as Null
16- from .elements import UnaryExpression as UnaryExpression
17- from .schema import Column as Column
18- from .selectable import Alias as Alias
19- from .selectable import FromClause as FromClause
20- from .selectable import FromGrouping as FromGrouping
21- from .selectable import Join as Join
22- from .selectable import ScalarSelect as ScalarSelect
23- from .selectable import SelectBase as SelectBase
24- from .selectable import TableClause as TableClause
25- from .traversals import HasCacheKey as HasCacheKey
26- from .. import exc as exc
27- from .. import util as util
11+ from typing_extensions import Protocol
2812
29- join_condition : Any
13+ from . import visitors
14+ from .base import ColumnCollection
15+ from .base import ColumnSet
16+ from .elements import ClauseElement
17+ from .elements import ColumnClause
18+ from .schema import Table
19+ from .selectable import Alias
20+ from .selectable import FromClause
21+ from .selectable import Join
22+ from .selectable import Selectable
3023
31- def find_join_source (clauses : Any , join_to : Any ): ...
32- def find_left_clause_that_matches_given (clauses : Any , join_from : Any ): ...
24+ _T = TypeVar ("_T" )
25+ _COLA = TypeVar ("_COLA" , bound = ColumnAdapter )
26+
27+ class _IsDerivedFrom (Protocol ):
28+ def is_derived_from (self , __fromclause : FromClause ) -> bool : ...
29+
30+ join_condition = Join ._join_condition
31+
32+ def find_join_source (
33+ clauses : Iterable [_IsDerivedFrom ], join_to : Selectable
34+ ) -> List [int ]: ...
35+ def find_left_clause_that_matches_given (
36+ clauses : Sequence [_IsDerivedFrom ], join_from : Selectable
37+ ) -> List [int ]: ...
3338def find_left_clause_to_join_from (
34- clauses : Any , join_to : Any , onclause : Any
35- ): ...
36- def visit_binary_product (fn : Any , expr : Any ) -> None : ...
39+ clauses : Sequence [FromClause ],
40+ join_to : Selectable ,
41+ onclause : Optional [Any ],
42+ ) -> Iterable [int ]: ...
43+ def visit_binary_product (
44+ fn : Callable [[Any , Any , Any ], Any ], expr : ClauseElement
45+ ) -> Iterator [ClauseElement ]: ...
3746def find_tables (
38- clause : Any ,
47+ clause : Union [ ClauseElement , FromClause ] ,
3948 check_columns : bool = ...,
4049 include_aliases : bool = ...,
4150 include_joins : bool = ...,
4251 include_selects : bool = ...,
4352 include_crud : bool = ...,
44- ): ...
45- def unwrap_order_by (clause : Any ): ...
46- def unwrap_label_reference (element : Any ): ...
47- def expand_column_list_from_order_by (collist : Any , order_by : Any ): ...
48- def clause_is_present (clause : Any , search : Any ): ...
49- def tables_from_leftmost (clause : Any ) -> None : ...
50- def surface_selectables (clause : Any ) -> None : ...
51- def surface_selectables_only (clause : Any ) -> None : ...
52- def extract_first_column_annotation (column : Any , annotation_name : Any ): ...
53- def selectables_overlap (left : Any , right : Any ): ...
54- def bind_values (clause : Any ): ...
53+ ) -> List [Table ]: ...
54+ def unwrap_order_by (clause : ClauseElement ) -> List [ClauseElement ]: ...
55+ def unwrap_label_reference (element : _T ) -> _T : ...
56+ def expand_column_list_from_order_by (
57+ collist : ColumnCollection [Any ], order_by : ClauseElement
58+ ) -> List [ClauseElement ]: ...
59+ def clause_is_present (clause : Selectable , search : Selectable ) -> bool : ...
60+ def tables_from_leftmost (clause : Table ) -> Iterator [Table ]: ...
61+ def surface_selectables (clause : Any ) -> Iterator [FromClause ]: ...
62+ def surface_selectables_only (
63+ clause : Any ,
64+ ) -> Iterator [Union [Alias , FromClause , ColumnClause [Any ]]]: ...
65+ def extract_first_column_annotation (
66+ column : Any , annotation_name : str
67+ ) -> Optional [Any ]: ...
68+ def selectables_overlap (left : Any , right : Any ) -> bool : ...
69+ def bind_values (clause : Any ) -> List [Any ]: ...
5570
5671class _repr_base :
57- def trunc (self , value : Any ): ...
72+ def trunc (self , value : Any ) -> str : ...
5873
5974class _repr_row (_repr_base ):
6075 row : Any = ...
61- max_chars : Any = ...
76+ max_chars : int = ...
6277 def __init__ (self , row : Any , max_chars : int = ...) -> None : ...
6378
6479class _repr_params (_repr_base ):
6580 params : Any = ...
66- ismulti : Any = ...
81+ ismulti : Optional [ bool ] = ...
6782 batches : Any = ...
68- max_chars : Any = ...
83+ max_chars : int = ...
6984 def __init__ (
7085 self ,
7186 params : Any ,
7287 batches : Any ,
7388 max_chars : int = ...,
74- ismulti : Optional [Any ] = ...,
89+ ismulti : Optional [bool ] = ...,
7590 ) -> None : ...
7691
77- def adapt_criterion_to_null (crit : Any , nulls : Any ): ...
78- def splice_joins (left : Any , right : Any , stop_on : Optional [Any ] = ...): ...
79- def reduce_columns (columns : Any , * clauses : Any , ** kw : Any ): ...
92+ def adapt_criterion_to_null (crit : Any , nulls : Any ) -> Any : ...
93+ def splice_joins (
94+ left : Any , right : Any , stop_on : Optional [Any ] = ...
95+ ) -> Any : ...
96+ def reduce_columns (
97+ columns : Any , * clauses : Any , ** kw : Any
98+ ) -> ColumnSet [Any ]: ...
8099def criterion_as_pairs (
81100 expression : Any ,
82101 consider_as_foreign_keys : Optional [Any ] = ...,
83102 consider_as_referenced_keys : Optional [Any ] = ...,
84103 any_operator : bool = ...,
85- ): ...
104+ ) -> Any : ...
86105
87106class ClauseAdapter (visitors .ReplacingExternalTraversal ):
88107 __traverse_options__ : Any = ...
@@ -100,7 +119,7 @@ class ClauseAdapter(visitors.ReplacingExternalTraversal):
100119 adapt_on_names : bool = ...,
101120 anonymize_labels : bool = ...,
102121 ) -> None : ...
103- def replace (self , col : Any ): ...
122+ def replace (self , col : Any ) -> Optional [ Any ] : ...
104123
105124class ColumnAdapter (ClauseAdapter ):
106125 columns : Any = ...
@@ -121,9 +140,9 @@ class ColumnAdapter(ClauseAdapter):
121140 parent : Any = ...
122141 columns : Any = ...
123142 def __init__ (self , parent : Any , columns : Any ) -> None : ...
124- def __getitem__ (self , key : Any ): ...
125- def wrap (self , adapter : Any ): ...
126- def traverse (self , obj : Any ): ...
127- adapt_clause : Any = ...
128- adapt_list : Any = ...
129- def adapt_check_present (self , col : Any ): ...
143+ def __getitem__ (self , key : Any ) -> Any : ...
144+ def wrap (self : _COLA , adapter : Any ) -> _COLA : ...
145+ def traverse (self , obj : Any ) -> Any : ...
146+ def adapt_clause ( self , obj : Any ) -> Any : ...
147+ adapt_list = ClauseAdapter . copy_and_process
148+ def adapt_check_present (self , col : Any ) -> Optional [ Any ] : ...
0 commit comments