From 984ffe8dedfef42fd6b7e3e731ad1d5836117482 Mon Sep 17 00:00:00 2001 From: reesercollins <10563996+reesercollins@users.noreply.github.com> Date: Wed, 22 Jun 2022 14:17:07 -0400 Subject: [PATCH] Fix linting errors --- .../src/views/CRUD/data/dataset/DatasetList.tsx | 2 +- superset/datasets/api.py | 5 ++--- superset/datasets/commands/duplicate.py | 11 +++++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx b/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx index 7659a2fca9634..4e950e0098b7f 100644 --- a/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx +++ b/superset-frontend/src/views/CRUD/data/dataset/DatasetList.tsx @@ -246,7 +246,7 @@ const DatasetList: FunctionComponent = ({ const openDatasetDuplicateModal = (dataset: VirtualDataset) => { setDatasetCurrentlyDuplicating(dataset); }; - + const handleBulkDatasetExport = (datasetsToExport: Dataset[]) => { const ids = datasetsToExport.map(({ id }) => id); handleResourceExport('dataset', ids, () => { diff --git a/superset/datasets/api.py b/superset/datasets/api.py index ac2f6590d9552..58134e9f3799d 100644 --- a/superset/datasets/api.py +++ b/superset/datasets/api.py @@ -20,10 +20,8 @@ from io import BytesIO from typing import Any from zipfile import is_zipfile, ZipFile -from numpy import save import simplejson -from superset.datasets.commands.duplicate import DuplicateDatasetCommand import yaml from flask import g, make_response, request, Response, send_file from flask_appbuilder.api import expose, protect, rison, safe @@ -40,6 +38,7 @@ from superset.datasets.commands.bulk_delete import BulkDeleteDatasetCommand from superset.datasets.commands.create import CreateDatasetCommand from superset.datasets.commands.delete import DeleteDatasetCommand +from superset.datasets.commands.duplicate import DuplicateDatasetCommand from superset.datasets.commands.exceptions import ( DatasetBulkDeleteFailedError, DatasetCreateFailedError, @@ -523,7 +522,7 @@ def export(self, **kwargs: Any) -> Response: log_to_statsd=False, ) @requires_json - def duplicate(self, **kwargs: Any) -> Response: + def duplicate(self) -> Response: """Duplicates a Dataset --- post: diff --git a/superset/datasets/commands/duplicate.py b/superset/datasets/commands/duplicate.py index df868618d46d4..3ee538230b68c 100644 --- a/superset/datasets/commands/duplicate.py +++ b/superset/datasets/commands/duplicate.py @@ -25,7 +25,7 @@ from superset.commands.base import BaseCommand, CreateMixin from superset.commands.exceptions import DatasourceTypeInvalidError -from superset.connectors.sqla.models import SqlMetric, SqlaTable, TableColumn +from superset.connectors.sqla.models import SqlaTable, SqlMetric, TableColumn from superset.dao.exceptions import DAOCreateFailedError from superset.datasets.commands.exceptions import ( DatasetDuplicateFailedError, @@ -36,7 +36,7 @@ from superset.datasets.dao import DatasetDAO from superset.errors import ErrorLevel, SupersetError, SupersetErrorType from superset.exceptions import SupersetErrorException -from superset.extensions import db, security_manager +from superset.extensions import db from superset.models.core import Database from superset.sql_parse import ParsedQuery @@ -46,6 +46,7 @@ class DuplicateDatasetCommand(CreateMixin, BaseCommand): def __init__(self, user: User, data: Dict[str, Any]): self._actor = user + self._base_model: SqlaTable = SqlaTable() self._properties = data.copy() def run(self) -> Model: @@ -108,9 +109,11 @@ def validate(self) -> None: base_model_id = self._properties["base_model_id"] duplicate_name = self._properties["table_name"] - self._base_model = DatasetDAO.find_by_id(base_model_id) - if not self._base_model: + base_model = DatasetDAO.find_by_id(base_model_id) + if not base_model: exceptions.append(DatasetNotFoundError()) + else: + self._base_model = base_model if self._base_model and self._base_model.kind != "virtual": exceptions.append(DatasourceTypeInvalidError())