Ejemplo n.º 1
0
    def _aliases_from_query(cls, query: Query) -> 'Dict[str, _MapperEntity]':
        """
        Get aliases from SQLAlchemy query.

        Args:
            query: SQLAlchemy query.

        Returns:
            Dictionary of model aliases.

        """

        join_entities = getattr(query, '_join_entities', None)
        if join_entities:
            aliases = {(mapper._target, mapper.name): mapper.entity
                       for mapper in join_entities}
        else:
            aliases = {
                (join_entity._target, join_entity.name): join_entity.entity
                for join_entity in query._compile_state()._join_entities
            }

        return aliases