MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _get_display_froms

Method _get_display_froms

lib/sqlalchemy/sql/selectable.py:5066–5118  ·  view source on GitHub ↗

Return the full list of 'from' clauses to be displayed. Takes into account a set of existing froms which may be rendered in the FROM clause of enclosing selects; this Select may want to leave those absent if it is automatically correlating.

(
        self,
        explicit_correlate_froms: Optional[Sequence[FromClause]] = None,
        implicit_correlate_froms: Optional[Sequence[FromClause]] = None,
    )

Source from the content-addressed store, hash-verified

5064 return froms
5065
5066 def _get_display_froms(
5067 self,
5068 explicit_correlate_froms: Optional[Sequence[FromClause]] = None,
5069 implicit_correlate_froms: Optional[Sequence[FromClause]] = None,
5070 ) -> List[FromClause]:
5071 """Return the full list of 'from' clauses to be displayed.
5072
5073 Takes into account a set of existing froms which may be
5074 rendered in the FROM clause of enclosing selects; this Select
5075 may want to leave those absent if it is automatically
5076 correlating.
5077
5078 """
5079
5080 froms = self.froms
5081
5082 if self.statement._correlate:
5083 to_correlate = self.statement._correlate
5084 if to_correlate:
5085 to_remove = _cloned_intersection(
5086 _cloned_intersection(
5087 froms, explicit_correlate_froms or ()
5088 ),
5089 to_correlate,
5090 )
5091 froms = [f for f in froms if f not in to_remove]
5092
5093 if self.statement._correlate_except is not None:
5094 to_remove = _cloned_difference(
5095 _cloned_intersection(froms, explicit_correlate_froms or ()),
5096 self.statement._correlate_except,
5097 )
5098 froms = [f for f in froms if f not in to_remove]
5099
5100 if (
5101 self.statement._auto_correlate
5102 and implicit_correlate_froms
5103 and len(froms) > 1
5104 ):
5105 to_remove = _cloned_intersection(froms, implicit_correlate_froms)
5106 froms = [f for f in froms if f not in to_remove]
5107
5108 if not len(froms):
5109 raise exc.InvalidRequestError(
5110 "Select statement '%r"
5111 "' returned no FROM clauses "
5112 "due to auto-correlation; "
5113 "specify correlate(<tables>) "
5114 "to control correlation "
5115 "manually." % self.statement
5116 )
5117
5118 return froms
5119
5120 def _memoized_attr__label_resolve_dict(
5121 self,

Callers 3

get_final_fromsMethod · 0.80
_setup_select_stackMethod · 0.80

Calls 2

_cloned_intersectionFunction · 0.85
_cloned_differenceFunction · 0.85

Tested by

no test coverage detected