Skip to content

Commit

Permalink
Updated type: ignore in model's helper: (#10906)
Browse files Browse the repository at this point in the history
- added sql alchemy mapper as a type
  • Loading branch information
kkucharc authored Sep 17, 2020
1 parent ed9b50b commit 141ef4a
Showing 1 changed file with 10 additions and 16 deletions.
26 changes: 10 additions & 16 deletions superset/models/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
from flask_appbuilder.security.sqla.models import User
from sqlalchemy import and_, or_, UniqueConstraint
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import Session
from sqlalchemy.orm import Mapper, Session
from sqlalchemy.orm.exc import MultipleResultsFound

from superset.utils.core import QueryStatus
Expand Down Expand Up @@ -66,10 +66,12 @@ class ImportMixin:
# The names of the attributes
# that are available for import and export

__mapper__: Mapper

@classmethod
def _parent_foreign_key_mappings(cls) -> Dict[str, str]:
"""Get a mapping of foreign name to the local name of foreign keys"""
parent_rel = cls.__mapper__.relationships.get(cls.export_parent) # type: ignore
parent_rel = cls.__mapper__.relationships.get(cls.export_parent)
if parent_rel:
return {l.name: r.name for (l, r) in parent_rel.local_remote_pairs}
return {}
Expand All @@ -94,9 +96,7 @@ def export_schema(
"""Export schema as a dictionary"""
parent_excludes = set()
if not include_parent_ref:
parent_ref = cls.__mapper__.relationships.get( # type: ignore
cls.export_parent
)
parent_ref = cls.__mapper__.relationships.get(cls.export_parent)
if parent_ref:
parent_excludes = {column.name for column in parent_ref.local_columns}

Expand All @@ -114,9 +114,7 @@ def formatter(column: sa.Column) -> str:
}
if recursive:
for column in cls.export_children:
child_class = cls.__mapper__.relationships[ # type: ignore
column
].argument.class_
child_class = cls.__mapper__.relationships[column].argument.class_
schema[column] = [
child_class.export_schema(
recursive=recursive, include_parent_ref=include_parent_ref
Expand All @@ -125,7 +123,8 @@ def formatter(column: sa.Column) -> str:
return schema

@classmethod
def import_from_dict( # pylint: disable=too-many-arguments,too-many-branches,too-many-locals
def import_from_dict(
# pylint: disable=too-many-arguments,too-many-branches,too-many-locals
cls,
session: Session,
dict_rep: Dict[Any, Any],
Expand Down Expand Up @@ -207,9 +206,7 @@ def import_from_dict( # pylint: disable=too-many-arguments,too-many-branches,to
# Recursively create children
if recursive:
for child in cls.export_children:
child_class = cls.__mapper__.relationships[ # type: ignore
child
].argument.class_
child_class = cls.__mapper__.relationships[child].argument.class_
added = []
for c_obj in new_children.get(child, []):
added.append(
Expand Down Expand Up @@ -246,9 +243,7 @@ def export_to_dict(
cls = self.__class__
parent_excludes = set()
if recursive and not include_parent_ref:
parent_ref = cls.__mapper__.relationships.get( # type: ignore
cls.export_parent
)
parent_ref = cls.__mapper__.relationships.get(cls.export_parent)
if parent_ref:
parent_excludes = {c.name for c in parent_ref.local_columns}
dict_rep = {
Expand Down Expand Up @@ -334,7 +329,6 @@ def _user_link(user: User) -> Union[Markup, str]: # pylint: disable=no-self-use


class AuditMixinNullable(AuditMixin):

"""Altering the AuditMixin to use nullable fields
Allows creating objects programmatically outside of CRUD
Expand Down

0 comments on commit 141ef4a

Please sign in to comment.