[flake8] Resolve I??? errors (#3797)
This commit is contained in:
parent
7987cb794b
commit
e2bca47421
|
|
@ -1,6 +1,7 @@
|
|||
from superset import sm
|
||||
from collections import defaultdict
|
||||
|
||||
from superset import sm
|
||||
|
||||
|
||||
def cleanup_permissions():
|
||||
# 1. Clean up duplicates.
|
||||
|
|
|
|||
5
setup.py
5
setup.py
|
|
@ -1,7 +1,8 @@
|
|||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import json
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
|
||||
PACKAGE_DIR = os.path.join(BASE_DIR, 'superset', 'static', 'assets')
|
||||
|
|
|
|||
|
|
@ -4,14 +4,13 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import json
|
||||
import logging
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
from flask import Flask, redirect
|
||||
from flask_appbuilder import SQLA, AppBuilder, IndexView
|
||||
from flask_appbuilder import AppBuilder, IndexView, SQLA
|
||||
from flask_appbuilder.baseviews import expose
|
||||
from flask_migrate import Migrate
|
||||
from flask_wtf.csrf import CSRFProtect
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from superset import tables_cache
|
||||
from flask import request
|
||||
|
||||
from superset import tables_cache
|
||||
|
||||
|
||||
def view_cache_key(*unused_args, **unused_kwargs):
|
||||
args_hash = hash(frozenset(request.args.items()))
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
from datetime import datetime
|
||||
import logging
|
||||
from subprocess import Popen
|
||||
|
||||
from colorama import Fore, Style
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from collections import OrderedDict
|
||||
import imp
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from collections import OrderedDict
|
||||
|
||||
from dateutil import tz
|
||||
from flask_appbuilder.security.manager import AUTH_DB
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import json
|
||||
|
||||
from sqlalchemy import (
|
||||
and_, Column, Integer, String, Text, Boolean,
|
||||
and_, Boolean, Column, Integer, String, Text,
|
||||
)
|
||||
from sqlalchemy.orm import foreign, relationship
|
||||
from sqlalchemy.ext.declarative import declared_attr
|
||||
from sqlalchemy.orm import foreign, relationship
|
||||
|
||||
from superset import utils
|
||||
from superset.models.core import Slice
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
from superset.views.base import SupersetModelView
|
||||
from superset.utils import SupersetException
|
||||
from flask import Markup
|
||||
|
||||
from superset.utils import SupersetException
|
||||
from superset.views.base import SupersetModelView
|
||||
|
||||
|
||||
class DatasourceModelView(SupersetModelView):
|
||||
def pre_delete(self, obj):
|
||||
|
|
|
|||
|
|
@ -1,41 +1,37 @@
|
|||
# pylint: disable=invalid-unary-operand-type
|
||||
from collections import OrderedDict
|
||||
import json
|
||||
import logging
|
||||
from copy import deepcopy
|
||||
from datetime import datetime, timedelta
|
||||
from six import string_types
|
||||
import json
|
||||
import logging
|
||||
from multiprocessing import Pool
|
||||
|
||||
import requests
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import (
|
||||
Column, Integer, String, ForeignKey, Text, Boolean,
|
||||
DateTime, or_,
|
||||
)
|
||||
from sqlalchemy.orm import backref, relationship
|
||||
from dateutil.parser import parse as dparse
|
||||
|
||||
from flask import escape, Markup
|
||||
from flask_appbuilder import Model
|
||||
from flask_appbuilder.models.decorators import renders
|
||||
from flask_babel import lazy_gettext as _
|
||||
from pydruid.client import PyDruid
|
||||
from pydruid.utils.aggregators import count
|
||||
from pydruid.utils.filters import Dimension, Filter, Bound
|
||||
from pydruid.utils.postaggregator import (
|
||||
Postaggregator, Quantile, Quantiles, Field, Const, HyperUniqueCardinality,
|
||||
)
|
||||
from pydruid.utils.filters import Bound, Dimension, Filter
|
||||
from pydruid.utils.having import Aggregation
|
||||
|
||||
from flask import Markup, escape
|
||||
from flask_appbuilder.models.decorators import renders
|
||||
from flask_appbuilder import Model
|
||||
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
from superset import conf, db, import_util, utils, sm
|
||||
from superset.utils import (
|
||||
flasher, MetricPermException, DimSelector, DTTM_ALIAS
|
||||
from pydruid.utils.postaggregator import (
|
||||
Const, Field, HyperUniqueCardinality, Postaggregator, Quantile, Quantiles,
|
||||
)
|
||||
from superset.connectors.base.models import BaseDatasource, BaseColumn, BaseMetric
|
||||
import requests
|
||||
from six import string_types
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import (
|
||||
Boolean, Column, DateTime, ForeignKey, Integer, or_, String, Text,
|
||||
)
|
||||
from sqlalchemy.orm import backref, relationship
|
||||
|
||||
from superset import conf, db, import_util, sm, utils
|
||||
from superset.connectors.base.models import BaseColumn, BaseDatasource, BaseMetric
|
||||
from superset.models.helpers import AuditMixinNullable, QueryResult, set_perm
|
||||
from superset.utils import (
|
||||
DimSelector, DTTM_ALIAS, flasher, MetricPermException,
|
||||
)
|
||||
|
||||
DRUID_TZ = conf.get("DRUID_TZ")
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +1,21 @@
|
|||
from datetime import datetime
|
||||
import logging
|
||||
|
||||
from flask import Markup, flash, redirect
|
||||
from flask import flash, Markup, redirect
|
||||
from flask_appbuilder import CompactCRUDMixin, expose
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
|
||||
from flask_babel import lazy_gettext as _
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
from superset import db, utils, appbuilder, sm, security
|
||||
from superset import appbuilder, db, security, sm, utils
|
||||
from superset.connectors.base.views import DatasourceModelView
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.utils import has_access
|
||||
from superset.connectors.base.views import DatasourceModelView
|
||||
from superset.views.base import (
|
||||
BaseSupersetView,
|
||||
SupersetModelView, validate_json, DeleteMixin, ListWidgetWithCheckboxes,
|
||||
DatasourceFilter, get_datasource_exist_error_mgs)
|
||||
|
||||
BaseSupersetView, DatasourceFilter, DeleteMixin,
|
||||
get_datasource_exist_error_mgs, ListWidgetWithCheckboxes, SupersetModelView,
|
||||
validate_json
|
||||
)
|
||||
from . import models
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,31 +1,28 @@
|
|||
from datetime import datetime
|
||||
import logging
|
||||
import sqlparse
|
||||
from past.builtins import basestring
|
||||
|
||||
import pandas as pd
|
||||
|
||||
from sqlalchemy import (
|
||||
Column, Integer, String, ForeignKey, Text, Boolean,
|
||||
DateTime,
|
||||
)
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import asc, and_, desc, select, or_
|
||||
from sqlalchemy.sql.expression import TextAsFrom
|
||||
from sqlalchemy.orm import backref, relationship
|
||||
from sqlalchemy.sql import table, literal_column, text, column
|
||||
|
||||
from flask import escape, Markup
|
||||
from flask_appbuilder import Model
|
||||
from flask_babel import lazy_gettext as _
|
||||
import pandas as pd
|
||||
from past.builtins import basestring
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import (
|
||||
and_, asc, Boolean, Column, DateTime, desc, ForeignKey, Integer, or_,
|
||||
select, String, Text,
|
||||
)
|
||||
from sqlalchemy.orm import backref, relationship
|
||||
from sqlalchemy.sql import column, literal_column, table, text
|
||||
from sqlalchemy.sql.expression import TextAsFrom
|
||||
import sqlparse
|
||||
|
||||
from superset import db, utils, import_util, sm
|
||||
from superset.connectors.base.models import BaseDatasource, BaseColumn, BaseMetric
|
||||
from superset.utils import DTTM_ALIAS, QueryStatus
|
||||
from superset.models.helpers import QueryResult
|
||||
from superset.models.core import Database
|
||||
from superset import db, import_util, sm, utils
|
||||
from superset.connectors.base.models import BaseColumn, BaseDatasource, BaseMetric
|
||||
from superset.jinja_context import get_template_processor
|
||||
from superset.models.core import Database
|
||||
from superset.models.helpers import QueryResult
|
||||
from superset.models.helpers import set_perm
|
||||
from superset.utils import DTTM_ALIAS, QueryStatus
|
||||
|
||||
|
||||
class TableColumn(Model, BaseColumn):
|
||||
|
|
|
|||
|
|
@ -1,22 +1,19 @@
|
|||
"""Views used by the SqlAlchemy connector"""
|
||||
from past.builtins import basestring
|
||||
|
||||
from flask import Markup, flash, redirect
|
||||
from flask import flash, Markup, redirect
|
||||
from flask_appbuilder import CompactCRUDMixin, expose
|
||||
from flask_appbuilder.actions import action
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
|
||||
from flask_babel import lazy_gettext as _
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
from past.builtins import basestring
|
||||
|
||||
from superset import appbuilder, db, utils, security, sm
|
||||
from superset.utils import has_access
|
||||
from superset import appbuilder, db, security, sm, utils
|
||||
from superset.connectors.base.views import DatasourceModelView
|
||||
from superset.utils import has_access
|
||||
from superset.views.base import (
|
||||
SupersetModelView, ListWidgetWithCheckboxes, DeleteMixin, DatasourceFilter,
|
||||
get_datasource_exist_error_mgs,
|
||||
DatasourceFilter, DeleteMixin, get_datasource_exist_error_mgs,
|
||||
ListWidgetWithCheckboxes, SupersetModelView,
|
||||
)
|
||||
|
||||
from . import models
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,22 +4,21 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import datetime
|
||||
import gzip
|
||||
import json
|
||||
import os
|
||||
import textwrap
|
||||
import datetime
|
||||
import random
|
||||
import textwrap
|
||||
|
||||
import pandas as pd
|
||||
from sqlalchemy import String, DateTime, Date, Float, BigInteger
|
||||
from sqlalchemy import BigInteger, Date, DateTime, Float, String
|
||||
|
||||
from superset import app, db, utils
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.models import core as models
|
||||
from superset.security import get_or_create_main_db
|
||||
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
|
||||
# Shortcuts
|
||||
DB = models.Database
|
||||
Slice = models.Slice
|
||||
|
|
|
|||
|
|
@ -10,13 +10,12 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from datetime import datetime, date
|
||||
from past.builtins import basestring
|
||||
|
||||
import pandas as pd
|
||||
from pandas.core.dtypes.dtypes import ExtensionDtype
|
||||
from datetime import date, datetime
|
||||
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
from pandas.core.dtypes.dtypes import ExtensionDtype
|
||||
from past.builtins import basestring
|
||||
|
||||
|
||||
INFER_COL_TYPES_THRESHOLD = 95
|
||||
|
|
|
|||
|
|
@ -16,24 +16,21 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from collections import namedtuple, defaultdict
|
||||
|
||||
from collections import defaultdict, namedtuple
|
||||
import inspect
|
||||
import logging
|
||||
import re
|
||||
import textwrap
|
||||
import time
|
||||
|
||||
import sqlparse
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.sql import text
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.engine.url import make_url
|
||||
from sqlalchemy.sql import text
|
||||
import sqlparse
|
||||
|
||||
from superset.utils import SupersetTemplateException
|
||||
from superset.utils import QueryStatus
|
||||
from superset import conf, cache_util, utils
|
||||
from superset import cache_util, conf, utils
|
||||
from superset.utils import QueryStatus, SupersetTemplateException
|
||||
|
||||
tracking_url_trans = conf.get('TRACKING_URL_TRANSFORMER')
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@
|
|||
# http://groups.google.com/group/sqlparse/browse_thread/thread/b0bd9a022e9d4895
|
||||
|
||||
import sqlparse
|
||||
from sqlparse.sql import IdentifierList, Identifier
|
||||
from sqlparse.tokens import Keyword, DML
|
||||
from sqlparse.sql import Identifier, IdentifierList
|
||||
from sqlparse.tokens import DML, Keyword
|
||||
|
||||
|
||||
def is_subselect(parsed):
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import logging
|
||||
|
||||
from sqlalchemy.orm.session import make_transient
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,10 +10,9 @@ import random
|
|||
import time
|
||||
import uuid
|
||||
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
from flask import request, g
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from flask import g, request
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
|
||||
from superset import app
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from __future__ import print_function
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import re
|
||||
|
||||
from superset import frontend_config
|
||||
|
||||
FORM_DATA_KEY_WHITELIST = list(frontend_config.get('controls').keys()) + ['slice_id']
|
||||
|
|
|
|||
|
|
@ -4,12 +4,11 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from flask_appbuilder import Model
|
||||
from sqlalchemy import (
|
||||
Column, Integer, String, ForeignKey, Text,
|
||||
DateTime, Index,
|
||||
Column, DateTime, ForeignKey, Index, Integer, String, Text,
|
||||
)
|
||||
from sqlalchemy.orm import relationship
|
||||
from flask_appbuilder import Model
|
||||
|
||||
from superset.models.helpers import AuditMixinNullable
|
||||
|
||||
|
|
|
|||
|
|
@ -4,43 +4,38 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from copy import copy, deepcopy
|
||||
from datetime import date, datetime
|
||||
import functools
|
||||
import json
|
||||
import logging
|
||||
import numpy
|
||||
import pickle
|
||||
import textwrap
|
||||
from future.standard_library import install_aliases
|
||||
from copy import copy
|
||||
from datetime import datetime, date
|
||||
from copy import deepcopy
|
||||
|
||||
import pandas as pd
|
||||
import sqlalchemy as sqla
|
||||
from sqlalchemy.engine.url import make_url
|
||||
from sqlalchemy.orm import subqueryload
|
||||
|
||||
from flask import escape, g, Markup, request
|
||||
from flask_appbuilder import Model
|
||||
from flask_appbuilder.models.decorators import renders
|
||||
|
||||
from future.standard_library import install_aliases
|
||||
import numpy
|
||||
import pandas as pd
|
||||
import sqlalchemy as sqla
|
||||
from sqlalchemy import (
|
||||
Column, Integer, String, ForeignKey, Text, Boolean,
|
||||
DateTime, Date, Table,
|
||||
create_engine, MetaData, select
|
||||
Boolean, Column, create_engine, Date, DateTime, ForeignKey, Integer,
|
||||
MetaData, select, String, Table, Text,
|
||||
)
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.engine import url
|
||||
from sqlalchemy.engine.url import make_url
|
||||
from sqlalchemy.orm import relationship, subqueryload
|
||||
from sqlalchemy.orm.session import make_transient
|
||||
from sqlalchemy.pool import NullPool
|
||||
from sqlalchemy.sql import text
|
||||
from sqlalchemy.sql.expression import TextAsFrom
|
||||
from sqlalchemy.engine import url
|
||||
from sqlalchemy_utils import EncryptedType
|
||||
|
||||
from superset import app, db, db_engine_specs, utils, sm
|
||||
from superset import app, db, db_engine_specs, sm, utils
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.viz import viz_types
|
||||
from superset.models.helpers import AuditMixinNullable, ImportMixin, set_perm
|
||||
from superset.viz import viz_types
|
||||
install_aliases()
|
||||
from urllib import parse # noqa
|
||||
|
||||
|
|
@ -648,7 +643,7 @@ class Database(Model, AuditMixinNullable):
|
|||
effective_username))
|
||||
if configuration:
|
||||
params["connect_args"] = {"configuration": configuration}
|
||||
|
||||
|
||||
return create_engine(url, **params)
|
||||
|
||||
def get_reserved_words(self):
|
||||
|
|
|
|||
|
|
@ -5,18 +5,18 @@ from __future__ import print_function
|
|||
from __future__ import unicode_literals
|
||||
|
||||
from datetime import datetime
|
||||
import humanize
|
||||
import json
|
||||
import re
|
||||
import sqlalchemy as sa
|
||||
|
||||
from sqlalchemy.ext.declarative import declared_attr
|
||||
|
||||
from flask import escape, Markup
|
||||
from flask_appbuilder.models.mixins import AuditMixin
|
||||
from flask_appbuilder.models.decorators import renders
|
||||
from superset.utils import QueryStatus
|
||||
from flask_appbuilder.models.mixins import AuditMixin
|
||||
import humanize
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.ext.declarative import declared_attr
|
||||
|
||||
from superset import sm
|
||||
from superset.utils import QueryStatus
|
||||
|
||||
|
||||
class ImportMixin(object):
|
||||
|
|
|
|||
|
|
@ -4,24 +4,21 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
from future.standard_library import install_aliases
|
||||
import re
|
||||
|
||||
from flask import Markup
|
||||
|
||||
from flask_appbuilder import Model
|
||||
|
||||
from future.standard_library import install_aliases
|
||||
import sqlalchemy as sqla
|
||||
from sqlalchemy import (
|
||||
Column, Integer, String, ForeignKey, Text, Boolean,
|
||||
DateTime, Numeric, )
|
||||
Boolean, Column, DateTime, ForeignKey, Integer, Numeric, String, Text,
|
||||
)
|
||||
from sqlalchemy.orm import backref, relationship
|
||||
|
||||
from superset import sm
|
||||
from superset.utils import QueryStatus
|
||||
from superset.models.helpers import AuditMixinNullable
|
||||
from superset.utils import QueryStatus
|
||||
|
||||
install_aliases()
|
||||
|
||||
|
|
@ -81,7 +78,7 @@ class Query(Model):
|
|||
user = relationship(sm.user_model, foreign_keys=[user_id])
|
||||
|
||||
__table_args__ = (
|
||||
sqla.Index('ti_user_id_changed_on', user_id, changed_on),
|
||||
sqla.Index('ti_user_id_changed_on', user_id, changed_on),
|
||||
)
|
||||
|
||||
@property
|
||||
|
|
|
|||
|
|
@ -5,11 +5,12 @@ from __future__ import print_function
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
|
||||
from flask_appbuilder.security.sqla import models as ab_models
|
||||
|
||||
from superset import conf, db, sm
|
||||
from superset.models import core as models
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.models import core as models
|
||||
|
||||
READ_ONLY_MODEL_VIEWS = {
|
||||
'DatabaseAsync',
|
||||
|
|
|
|||
|
|
@ -3,24 +3,24 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from time import sleep
|
||||
from datetime import datetime
|
||||
import json
|
||||
import logging
|
||||
from time import sleep
|
||||
import uuid
|
||||
|
||||
from celery.exceptions import SoftTimeLimitExceeded
|
||||
import pandas as pd
|
||||
import sqlalchemy
|
||||
|
||||
from sqlalchemy.pool import NullPool
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
from celery.exceptions import SoftTimeLimitExceeded
|
||||
from sqlalchemy.pool import NullPool
|
||||
|
||||
from superset import (app, db, utils, dataframe, results_backend)
|
||||
from superset.models.sql_lab import Query
|
||||
from superset.sql_parse import SupersetQuery
|
||||
from superset import app, dataframe, db, results_backend, utils
|
||||
from superset.db_engine_specs import LimitMethod
|
||||
from superset.jinja_context import get_template_processor
|
||||
from superset.utils import QueryStatus, get_celery_app
|
||||
from superset.models.sql_lab import Query
|
||||
from superset.sql_parse import SupersetQuery
|
||||
from superset.utils import get_celery_app, QueryStatus
|
||||
|
||||
config = app.config
|
||||
celery_app = get_celery_app(config)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from __future__ import unicode_literals
|
|||
import logging
|
||||
|
||||
import sqlparse
|
||||
from sqlparse.sql import IdentifierList, Identifier
|
||||
from sqlparse.sql import Identifier, IdentifierList
|
||||
from sqlparse.tokens import Keyword, Name
|
||||
|
||||
RESULT_OPERATIONS = {'UNION', 'INTERSECT', 'EXCEPT'}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import logging
|
||||
|
||||
from colorama import Fore, Style
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,45 +4,43 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from builtins import object
|
||||
from datetime import date, datetime, time, timedelta
|
||||
import decimal
|
||||
from email.mime.application import MIMEApplication
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import formatdate
|
||||
import functools
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import signal
|
||||
import parsedatetime
|
||||
import smtplib
|
||||
import pytz
|
||||
import sqlalchemy as sa
|
||||
import uuid
|
||||
import sys
|
||||
import uuid
|
||||
import zlib
|
||||
import numpy
|
||||
|
||||
from builtins import object
|
||||
from datetime import date, datetime, time, timedelta
|
||||
|
||||
import celery
|
||||
from dateutil.parser import parse
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.application import MIMEApplication
|
||||
from email.utils import formatdate
|
||||
|
||||
from flask import flash, Markup, render_template, url_for, redirect, request
|
||||
from flask_appbuilder.const import (
|
||||
LOGMSG_ERR_SEC_ACCESS_DENIED,
|
||||
FLAMSG_ERR_SEC_ACCESS_DENIED,
|
||||
PERMISSION_PREFIX
|
||||
)
|
||||
from flask import flash, Markup, redirect, render_template, request, url_for
|
||||
from flask_appbuilder._compat import as_unicode
|
||||
from flask_appbuilder.const import (
|
||||
FLAMSG_ERR_SEC_ACCESS_DENIED,
|
||||
LOGMSG_ERR_SEC_ACCESS_DENIED,
|
||||
PERMISSION_PREFIX,
|
||||
)
|
||||
from flask_babel import gettext as __
|
||||
from flask_cache import Cache
|
||||
import markdown as md
|
||||
import numpy
|
||||
import parsedatetime
|
||||
from past.builtins import basestring
|
||||
from pydruid.utils.having import Having
|
||||
import pytz
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import event, exc, select
|
||||
from sqlalchemy.types import TypeDecorator, TEXT
|
||||
from sqlalchemy.types import TEXT, TypeDecorator
|
||||
|
||||
logging.getLogger('MARKDOWN').setLevel(logging.INFO)
|
||||
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from flask_babel import gettext as __
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
from flask_babel import gettext as __
|
||||
|
||||
from superset.models.annotations import Annotation, AnnotationLayer
|
||||
from superset import appbuilder
|
||||
from .base import SupersetModelView, DeleteMixin
|
||||
from superset.models.annotations import Annotation, AnnotationLayer
|
||||
from .base import DeleteMixin, SupersetModelView
|
||||
|
||||
|
||||
class AnnotationModelView(SupersetModelView, DeleteMixin): # noqa
|
||||
|
|
|
|||
|
|
@ -3,18 +3,16 @@ import json
|
|||
import logging
|
||||
import traceback
|
||||
|
||||
from flask import g, redirect, Response, flash, abort, get_flashed_messages
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
from flask_babel import get_locale
|
||||
|
||||
from flask_appbuilder import BaseView
|
||||
from flask_appbuilder import ModelView
|
||||
from flask_appbuilder.widgets import ListWidget
|
||||
from flask import abort, flash, g, get_flashed_messages, redirect, Response
|
||||
from flask_appbuilder import BaseView, ModelView
|
||||
from flask_appbuilder.actions import action
|
||||
from flask_appbuilder.models.sqla.filters import BaseFilter
|
||||
from flask_appbuilder.widgets import ListWidget
|
||||
from flask_babel import get_locale
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
from superset import appbuilder, conf, db, utils, sm, sql_parse
|
||||
from superset import appbuilder, conf, db, sm, sql_parse, utils
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.translations.utils import get_language_pack
|
||||
|
|
|
|||
|
|
@ -7,46 +7,42 @@ from collections import defaultdict
|
|||
from datetime import datetime, timedelta
|
||||
import json
|
||||
import logging
|
||||
import pandas as pd
|
||||
import pickle
|
||||
import re
|
||||
import time
|
||||
import traceback
|
||||
from urllib import parse
|
||||
|
||||
import sqlalchemy as sqla
|
||||
|
||||
from flask import (
|
||||
g, request, redirect, flash, Response, render_template, Markup,
|
||||
url_for)
|
||||
flash, g, Markup, redirect, render_template, request, Response, url_for,
|
||||
)
|
||||
from flask_appbuilder import expose
|
||||
from flask_appbuilder.actions import action
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
from flask_appbuilder.security.decorators import has_access_api
|
||||
from flask_appbuilder.security.sqla import models as ab_models
|
||||
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
import pandas as pd
|
||||
import sqlalchemy as sqla
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.engine.url import make_url
|
||||
from werkzeug.routing import BaseConverter
|
||||
|
||||
from superset import (
|
||||
appbuilder, cache, db, viz, utils, app,
|
||||
sm, sql_lab, results_backend, security,
|
||||
app, appbuilder, cache, db, results_backend, security, sm, sql_lab, utils,
|
||||
viz,
|
||||
)
|
||||
from superset.legacy import cast_form_data
|
||||
from superset.utils import has_access, QueryStatus, merge_extra_filters
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.legacy import cast_form_data
|
||||
import superset.models.core as models
|
||||
from superset.models.sql_lab import Query
|
||||
from superset.sql_parse import SupersetQuery
|
||||
|
||||
from superset.utils import has_access, merge_extra_filters, QueryStatus
|
||||
from .base import (
|
||||
api, SupersetModelView, BaseSupersetView, DeleteMixin,
|
||||
SupersetFilter, get_user_roles, json_error_response, get_error_msg,
|
||||
CsvResponse)
|
||||
api, BaseSupersetView, CsvResponse, DeleteMixin, get_error_msg,
|
||||
get_user_roles, json_error_response, SupersetFilter, SupersetModelView,
|
||||
)
|
||||
|
||||
config = app.config
|
||||
stats_logger = config.get('STATS_LOGGER')
|
||||
|
|
@ -1452,7 +1448,7 @@ class Superset(BaseSupersetView):
|
|||
url = make_url(uri)
|
||||
db_engine = models.Database.get_db_engine_spec_for_backend(url.get_backend_name())
|
||||
db_engine.patch()
|
||||
|
||||
|
||||
masked_url = database.get_password_masked_url_from_uri(uri)
|
||||
logging.info("Superset.testconn(). Masked URL: {0}".format(masked_url))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
from flask import redirect, g
|
||||
|
||||
from flask import g, redirect
|
||||
from flask_appbuilder import expose
|
||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||
|
||||
from flask_babel import gettext as __
|
||||
from flask_babel import lazy_gettext as _
|
||||
|
||||
from superset import appbuilder
|
||||
from superset.models.sql_lab import Query, SavedQuery
|
||||
from .base import SupersetModelView, BaseSupersetView, DeleteMixin
|
||||
from .base import BaseSupersetView, DeleteMixin, SupersetModelView
|
||||
|
||||
|
||||
class QueryView(SupersetModelView):
|
||||
|
|
|
|||
|
|
@ -8,29 +8,28 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from collections import defaultdict
|
||||
import copy
|
||||
from datetime import datetime, timedelta
|
||||
import hashlib
|
||||
import inspect
|
||||
from itertools import product
|
||||
import logging
|
||||
import traceback
|
||||
import uuid
|
||||
import zlib
|
||||
|
||||
from collections import defaultdict
|
||||
from itertools import product
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from dateutil import relativedelta as rdelta
|
||||
from flask import request
|
||||
from flask_babel import lazy_gettext as _
|
||||
from markdown import markdown
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import simplejson as json
|
||||
from six import string_types, PY3
|
||||
from six import PY3, string_types
|
||||
from six.moves import reduce
|
||||
from dateutil import relativedelta as rdelta
|
||||
|
||||
from superset import app, utils, cache, get_manifest_file
|
||||
from superset import app, cache, get_manifest_file, utils
|
||||
from superset.utils import DTTM_ALIAS, merge_extra_filters
|
||||
|
||||
config = app.config
|
||||
|
|
|
|||
|
|
@ -5,16 +5,15 @@ from __future__ import print_function
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import json
|
||||
import mock
|
||||
import unittest
|
||||
|
||||
from superset import db, sm, security
|
||||
import mock
|
||||
|
||||
from superset.models import core as models
|
||||
from superset import db, security, sm
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.connectors.druid.models import DruidDatasource
|
||||
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.models import core as models
|
||||
from .base_tests import SupersetTestCase
|
||||
|
||||
ROLE_TABLES_PERM_DATA = {
|
||||
|
|
|
|||
|
|
@ -4,18 +4,18 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from flask_appbuilder.security.sqla import models as ab_models
|
||||
|
||||
from superset import app, cli, db, appbuilder, security, sm
|
||||
from superset import app, appbuilder, cli, db, security, sm
|
||||
from superset.connectors.druid.models import DruidCluster, DruidDatasource
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.models import core as models
|
||||
from superset.security import sync_role_definitions
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.connectors.druid.models import DruidCluster, DruidDatasource
|
||||
|
||||
os.environ['SUPERSET_CONFIG'] = 'tests.superset_test_config'
|
||||
|
||||
|
|
|
|||
|
|
@ -9,19 +9,19 @@ import os
|
|||
import subprocess
|
||||
import time
|
||||
import unittest
|
||||
from past.builtins import basestring
|
||||
|
||||
import pandas as pd
|
||||
from past.builtins import basestring
|
||||
|
||||
from superset import app, appbuilder, cli, db, dataframe
|
||||
from superset import app, appbuilder, cli, dataframe, db
|
||||
from superset.models import core as models
|
||||
from superset.models.helpers import QueryStatus
|
||||
from superset.models.sql_lab import Query
|
||||
from superset.security import sync_role_definitions
|
||||
from superset.sql_parse import SupersetQuery
|
||||
|
||||
from .base_tests import SupersetTestCase
|
||||
|
||||
|
||||
BASE_DIR = app.config.get('BASE_DIR')
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,21 +6,20 @@ from __future__ import unicode_literals
|
|||
|
||||
import csv
|
||||
import doctest
|
||||
import io
|
||||
import json
|
||||
import logging
|
||||
import io
|
||||
import random
|
||||
import unittest
|
||||
|
||||
from flask import escape
|
||||
import sqlalchemy as sqla
|
||||
|
||||
from superset import db, utils, appbuilder, sm, jinja_context, sql_lab
|
||||
from superset import appbuilder, db, jinja_context, sm, sql_lab, utils
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.models import core as models
|
||||
from superset.models.sql_lab import Query
|
||||
from superset.views.core import DatabaseView
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
|
||||
from .base_tests import SupersetTestCase
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,12 +10,11 @@ import unittest
|
|||
|
||||
from mock import Mock, patch
|
||||
|
||||
from superset import db, sm, security
|
||||
from superset import db, security, sm
|
||||
from superset.connectors.druid.models import (
|
||||
DruidMetric, DruidCluster, DruidDatasource
|
||||
DruidCluster, DruidDatasource, DruidMetric, Postaggregator, PyDruid,
|
||||
Quantile,
|
||||
)
|
||||
from superset.connectors.druid.models import PyDruid, Quantile, Postaggregator
|
||||
|
||||
from .base_tests import SupersetTestCase
|
||||
|
||||
class PickableMock(Mock):
|
||||
|
|
|
|||
|
|
@ -4,15 +4,15 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from email.mime.application import MIMEApplication
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
import logging
|
||||
import mock
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
from superset import utils, app
|
||||
import mock
|
||||
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.application import MIMEApplication
|
||||
from superset import app, utils
|
||||
|
||||
send_email_test = mock.Mock()
|
||||
|
||||
|
|
@ -118,4 +118,4 @@ class EmailSmtpTest(unittest.TestCase):
|
|||
assert not mock_smtp_ssl.called
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
unittest.main()
|
||||
|
|
|
|||
|
|
@ -4,18 +4,18 @@ from __future__ import division
|
|||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from sqlalchemy.orm.session import make_transient
|
||||
|
||||
import json
|
||||
import pickle
|
||||
import unittest
|
||||
|
||||
from superset import db
|
||||
from superset.models import core as models
|
||||
from superset.connectors.druid.models import (
|
||||
DruidDatasource, DruidColumn, DruidMetric)
|
||||
from superset.connectors.sqla.models import SqlaTable, TableColumn, SqlMetric
|
||||
from sqlalchemy.orm.session import make_transient
|
||||
|
||||
from superset import db
|
||||
from superset.connectors.druid.models import (
|
||||
DruidColumn, DruidDatasource, DruidMetric,
|
||||
)
|
||||
from superset.connectors.sqla.models import SqlaTable, SqlMetric, TableColumn
|
||||
from superset.models import core as models
|
||||
from .base_tests import SupersetTestCase
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
from superset import security, sm
|
||||
|
||||
from .base_tests import SupersetTestCase
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import json
|
|||
import unittest
|
||||
|
||||
from flask_appbuilder.security.sqla import models as ab_models
|
||||
from superset import db, utils, appbuilder, sm
|
||||
from superset.models.sql_lab import Query
|
||||
|
||||
from superset import appbuilder, db, sm, utils
|
||||
from superset.models.sql_lab import Query
|
||||
from .base_tests import SupersetTestCase
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,24 +1,16 @@
|
|||
from datetime import datetime, date, timedelta, time
|
||||
from datetime import date, datetime, time, timedelta
|
||||
from decimal import Decimal
|
||||
from superset.utils import (
|
||||
json_int_dttm_ser,
|
||||
json_iso_dttm_ser,
|
||||
base_json_conv,
|
||||
parse_human_timedelta,
|
||||
zlib_compress,
|
||||
zlib_decompress_to_string,
|
||||
merge_extra_filters,
|
||||
datetime_f,
|
||||
JSONEncodedDict,
|
||||
validate_json,
|
||||
SupersetException,
|
||||
)
|
||||
import unittest
|
||||
import uuid
|
||||
|
||||
from mock import patch
|
||||
import numpy
|
||||
|
||||
from superset.utils import (
|
||||
base_json_conv, datetime_f, json_int_dttm_ser, json_iso_dttm_ser,
|
||||
JSONEncodedDict, merge_extra_filters, parse_human_timedelta,
|
||||
SupersetException, validate_json, zlib_compress, zlib_decompress_to_string,
|
||||
)
|
||||
|
||||
class UtilsTestCase(unittest.TestCase):
|
||||
def test_json_int_dttm_ser(self):
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
import unittest
|
||||
import pandas as pd
|
||||
import superset.viz as viz
|
||||
import superset.utils as utils
|
||||
|
||||
from superset.utils import DTTM_ALIAS
|
||||
from mock import Mock, patch
|
||||
from datetime import datetime, timedelta
|
||||
import unittest
|
||||
|
||||
from mock import Mock, patch
|
||||
import pandas as pd
|
||||
|
||||
import superset.utils as utils
|
||||
from superset.utils import DTTM_ALIAS
|
||||
import superset.viz as viz
|
||||
|
||||
class BaseVizTestCase(unittest.TestCase):
|
||||
def test_constructor_exception_no_datasource(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue