(
cls,
element: Union[_EntityType[_O], FromClause],
alias: Optional[FromClause] = None,
name: Optional[str] = None,
flat: bool = False,
adapt_on_names: bool = False,
)
| 1018 | |
| 1019 | @classmethod |
| 1020 | def _alias_factory( |
| 1021 | cls, |
| 1022 | element: Union[_EntityType[_O], FromClause], |
| 1023 | alias: Optional[FromClause] = None, |
| 1024 | name: Optional[str] = None, |
| 1025 | flat: bool = False, |
| 1026 | adapt_on_names: bool = False, |
| 1027 | ) -> Union[AliasedClass[_O], FromClause]: |
| 1028 | if isinstance(element, FromClause): |
| 1029 | if adapt_on_names: |
| 1030 | raise sa_exc.ArgumentError( |
| 1031 | "adapt_on_names only applies to ORM elements" |
| 1032 | ) |
| 1033 | if name: |
| 1034 | return element.alias(name=name, flat=flat) |
| 1035 | else: |
| 1036 | # see selectable.py->Alias._factory() for similar |
| 1037 | # mypy issue. Cannot get the overload to see this |
| 1038 | # in mypy (works fine in pyright) |
| 1039 | return coercions.expect( # type: ignore[no-any-return] |
| 1040 | roles.AnonymizedFromClauseRole, element, flat=flat |
| 1041 | ) |
| 1042 | else: |
| 1043 | return AliasedClass( |
| 1044 | element, |
| 1045 | alias=alias, |
| 1046 | flat=flat, |
| 1047 | name=name, |
| 1048 | adapt_on_names=adapt_on_names, |
| 1049 | ) |
| 1050 | |
| 1051 | @classmethod |
| 1052 | def _with_polymorphic_factory( |
no test coverage detected