MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _with_polymorphic_args

Method _with_polymorphic_args

lib/sqlalchemy/orm/mapper.py:2883–2906  ·  view source on GitHub ↗
(
        self,
        spec: Any = None,
        selectable: Union[Literal[False, None], FromClause] = False,
        innerjoin: bool = False,
    )

Source from the content-addressed store, hash-verified

2881 return self._with_polymorphic_selectable
2882
2883 def _with_polymorphic_args(
2884 self,
2885 spec: Any = None,
2886 selectable: Union[Literal[False, None], FromClause] = False,
2887 innerjoin: bool = False,
2888 ) -> Tuple[Sequence[Mapper[Any]], FromClause]:
2889 if selectable not in (None, False):
2890 selectable = coercions.expect(
2891 roles.FromClauseRole,
2892 selectable,
2893 )
2894
2895 if self.with_polymorphic:
2896 if not spec:
2897 spec = self.with_polymorphic[0]
2898 if selectable is False:
2899 selectable = self.with_polymorphic[1]
2900 elif selectable is False:
2901 selectable = None
2902 mappers = self._mappers_from_spec(spec, selectable)
2903 if selectable is not None:
2904 return mappers, selectable
2905 else:
2906 return mappers, self._selectable_from_mappers(mappers, innerjoin)
2907
2908 @HasMemoized.memoized_attribute
2909 def _polymorphic_properties(self):

Callers 4

_merge_withMethod · 0.80
test_reverse_d_bMethod · 0.80
test_d_b_missingMethod · 0.80

Calls 2

_mappers_from_specMethod · 0.95

Tested by 2

test_reverse_d_bMethod · 0.64
test_d_b_missingMethod · 0.64