You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2017/11/08 05:32:47 UTC
[incubator-superset] branch master updated: [flake8] Resolving C???
errors (#3787)
This is an automated email from the ASF dual-hosted git repository.
maximebeauchemin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push:
new 17623f7 [flake8] Resolving C??? errors (#3787)
17623f7 is described below
commit 17623f71d42d11efa31fc8df28ecd47a6fd3d95f
Author: John Bodley <45...@users.noreply.github.com>
AuthorDate: Tue Nov 7 21:32:45 2017 -0800
[flake8] Resolving C??? errors (#3787)
---
superset/connectors/base/models.py | 2 +-
superset/connectors/connector_registry.py | 2 +-
superset/connectors/druid/models.py | 40 +++++++++++-----------
superset/connectors/druid/views.py | 4 +--
superset/connectors/sqla/models.py | 20 +++++------
superset/connectors/sqla/views.py | 6 ++--
superset/data/__init__.py | 8 ++---
superset/dataframe.py | 2 +-
superset/db_engine_specs.py | 2 +-
superset/db_engines/hive.py | 2 +-
superset/models/core.py | 6 ++--
superset/models/helpers.py | 10 +++---
superset/security.py | 4 +--
superset/utils.py | 2 +-
superset/views/base.py | 2 +-
superset/views/core.py | 56 +++++++++++++++----------------
superset/viz.py | 20 +++++------
tests/access_tests.py | 34 +++++++++----------
tests/base_tests.py | 4 +--
tests/celery_tests.py | 16 ++++-----
tests/core_tests.py | 22 ++++++------
tests/druid_tests.py | 30 ++++++++---------
tests/import_export_tests.py | 20 +++++------
tests/utils_tests.py | 6 ++--
tests/viz_tests.py | 22 ++++++------
tox.ini | 2 +-
26 files changed, 172 insertions(+), 172 deletions(-)
diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py
index 406dbd0..3808391 100644
--- a/superset/connectors/base/models.py
+++ b/superset/connectors/base/models.py
@@ -219,7 +219,7 @@ class BaseColumn(AuditMixinNullable, ImportMixin):
num_types = (
'DOUBLE', 'FLOAT', 'INT', 'BIGINT',
- 'LONG', 'REAL', 'NUMERIC', 'DECIMAL'
+ 'LONG', 'REAL', 'NUMERIC', 'DECIMAL',
)
date_types = ('DATE', 'TIME', 'DATETIME')
str_types = ('VARCHAR', 'STRING', 'CHAR')
diff --git a/superset/connectors/connector_registry.py b/superset/connectors/connector_registry.py
index 9c58f48..5924797 100644
--- a/superset/connectors/connector_registry.py
+++ b/superset/connectors/connector_registry.py
@@ -61,7 +61,7 @@ class ConnectorRegistry(object):
session.query(datasource_class)
.options(
subqueryload(datasource_class.columns),
- subqueryload(datasource_class.metrics)
+ subqueryload(datasource_class.metrics),
)
.filter_by(id=datasource_id)
.one()
diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py
index 1f724e7..1f5a040 100644
--- a/superset/connectors/druid/models.py
+++ b/superset/connectors/druid/models.py
@@ -232,7 +232,7 @@ class DruidColumn(Model, BaseColumn):
export_fields = (
'datasource_name', 'column_name', 'is_active', 'type', 'groupby',
'count_distinct', 'sum', 'avg', 'max', 'min', 'filterable',
- 'description', 'dimension_spec_json'
+ 'description', 'dimension_spec_json',
)
def __repr__(self):
@@ -253,7 +253,7 @@ class DruidColumn(Model, BaseColumn):
metric_name='count',
verbose_name='COUNT(*)',
metric_type='count',
- json=json.dumps({'type': 'count', 'name': 'count'})
+ json=json.dumps({'type': 'count', 'name': 'count'}),
)
# Somehow we need to reassign this for UDAFs
if self.type in ('DOUBLE', 'FLOAT'):
@@ -269,7 +269,7 @@ class DruidColumn(Model, BaseColumn):
metric_type='sum',
verbose_name='SUM({})'.format(self.column_name),
json=json.dumps({
- 'type': mt, 'name': name, 'fieldName': self.column_name})
+ 'type': mt, 'name': name, 'fieldName': self.column_name}),
)
if self.avg and self.is_num:
@@ -280,7 +280,7 @@ class DruidColumn(Model, BaseColumn):
metric_type='avg',
verbose_name='AVG({})'.format(self.column_name),
json=json.dumps({
- 'type': mt, 'name': name, 'fieldName': self.column_name})
+ 'type': mt, 'name': name, 'fieldName': self.column_name}),
)
if self.min and self.is_num:
@@ -291,7 +291,7 @@ class DruidColumn(Model, BaseColumn):
metric_type='min',
verbose_name='MIN({})'.format(self.column_name),
json=json.dumps({
- 'type': mt, 'name': name, 'fieldName': self.column_name})
+ 'type': mt, 'name': name, 'fieldName': self.column_name}),
)
if self.max and self.is_num:
mt = corrected_type.lower() + 'Max'
@@ -301,7 +301,7 @@ class DruidColumn(Model, BaseColumn):
metric_type='max',
verbose_name='MAX({})'.format(self.column_name),
json=json.dumps({
- 'type': mt, 'name': name, 'fieldName': self.column_name})
+ 'type': mt, 'name': name, 'fieldName': self.column_name}),
)
if self.count_distinct:
name = 'count_distinct__' + self.column_name
@@ -313,8 +313,8 @@ class DruidColumn(Model, BaseColumn):
json=json.dumps({
'type': self.type,
'name': name,
- 'fieldName': self.column_name
- })
+ 'fieldName': self.column_name,
+ }),
)
else:
metrics[name] = DruidMetric(
@@ -324,7 +324,7 @@ class DruidColumn(Model, BaseColumn):
json=json.dumps({
'type': 'cardinality',
'name': name,
- 'fieldNames': [self.column_name]})
+ 'fieldNames': [self.column_name]}),
)
return metrics
@@ -372,7 +372,7 @@ class DruidMetric(Model, BaseMetric):
export_fields = (
'metric_name', 'verbose_name', 'metric_type', 'datasource_name',
- 'json', 'description', 'is_restricted', 'd3format'
+ 'json', 'description', 'is_restricted', 'd3format',
)
@property
@@ -392,7 +392,7 @@ class DruidMetric(Model, BaseMetric):
return (
"{parent_name}.[{obj.metric_name}](id:{obj.id})"
).format(obj=self,
- parent_name=self.datasource.full_name
+ parent_name=self.datasource.full_name,
) if self.datasource else None
@classmethod
@@ -434,7 +434,7 @@ class DruidDatasource(Model, BaseDatasource):
export_fields = (
'datasource_name', 'is_hidden', 'description', 'default_endpoint',
- 'cluster_name', 'offset', 'cache_timeout', 'params'
+ 'cluster_name', 'offset', 'cache_timeout', 'params',
)
@property
@@ -491,7 +491,7 @@ class DruidDatasource(Model, BaseDatasource):
'week', 'week_starting_sunday', 'week_ending_saturday',
'month',
],
- "time_grains": ['now']
+ "time_grains": ['now'],
}
def __repr__(self):
@@ -815,11 +815,11 @@ class DruidDatasource(Model, BaseDatasource):
elif mconf.get('type') == 'constant':
post_aggs[metric_name] = Const(
mconf.get('value'),
- output_name=mconf.get('name', '')
+ output_name=mconf.get('name', ''),
)
elif mconf.get('type') == 'hyperUniqueCardinality':
post_aggs[metric_name] = HyperUniqueCardinality(
- mconf.get('name')
+ mconf.get('name'),
)
elif mconf.get('type') == 'arithmetic':
post_aggs[metric_name] = Postaggregator(
@@ -936,7 +936,7 @@ class DruidDatasource(Model, BaseDatasource):
if rejected_metrics:
raise MetricPermException(
- "Access to the metrics denied: " + ', '.join(rejected_metrics)
+ "Access to the metrics denied: " + ', '.join(rejected_metrics),
)
# the dimensions list with dimensionSpecs expanded
@@ -1155,18 +1155,18 @@ class DruidDatasource(Model, BaseDatasource):
elif op == '>':
cond = Bound(
col, eq, None,
- lowerStrict=True, alphaNumeric=is_numeric_col
+ lowerStrict=True, alphaNumeric=is_numeric_col,
)
elif op == '<':
cond = Bound(
col, None, eq,
- upperStrict=True, alphaNumeric=is_numeric_col
+ upperStrict=True, alphaNumeric=is_numeric_col,
)
if filters:
filters = Filter(type="and", fields=[
cond,
- filters
+ filters,
])
else:
filters = cond
@@ -1192,7 +1192,7 @@ class DruidDatasource(Model, BaseDatasource):
reversed_op_map = {
'!=': '==',
'>=': '<',
- '<=': '>'
+ '<=': '>',
}
for flt in raw_filters:
diff --git a/superset/connectors/druid/views.py b/superset/connectors/druid/views.py
index d3e0fa5..ade28c7 100644
--- a/superset/connectors/druid/views.py
+++ b/superset/connectors/druid/views.py
@@ -14,7 +14,7 @@ from superset.utils import has_access
from superset.views.base import (
BaseSupersetView, DatasourceFilter, DeleteMixin,
get_datasource_exist_error_mgs, ListWidgetWithCheckboxes, SupersetModelView,
- validate_json
+ validate_json,
)
from . import models
@@ -184,7 +184,7 @@ class DruidDatasourceModelView(DatasourceModelView, DeleteMixin): # noqa
'filter_select_enabled', 'fetch_values_from',
'default_endpoint', 'offset', 'cache_timeout']
search_columns = (
- 'datasource_name', 'cluster', 'description', 'owner'
+ 'datasource_name', 'cluster', 'description', 'owner',
)
add_columns = edit_columns
show_columns = add_columns + ['perm']
diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py
index 975cce9..6773411 100644
--- a/superset/connectors/sqla/models.py
+++ b/superset/connectors/sqla/models.py
@@ -44,7 +44,7 @@ class TableColumn(Model, BaseColumn):
'table_id', 'column_name', 'verbose_name', 'is_dttm', 'is_active',
'type', 'groupby', 'count_distinct', 'sum', 'avg', 'max', 'min',
'filterable', 'expression', 'description', 'python_date_format',
- 'database_expression'
+ 'database_expression',
)
@property
@@ -262,7 +262,7 @@ class SqlaTable(Model, BaseDatasource):
def time_column_grains(self):
return {
"time_columns": self.dttm_cols,
- "time_grains": [grain.name for grain in self.database.grains()]
+ "time_grains": [grain.name for grain in self.database.grains()],
}
def get_col(self, col_name):
@@ -322,8 +322,8 @@ class SqlaTable(Model, BaseDatasource):
sql = str(
qry.compile(
engine,
- compile_kwargs={"literal_binds": True}
- )
+ compile_kwargs={"literal_binds": True},
+ ),
)
logging.info(sql)
sql = sqlparse.format(sql, reindent=True)
@@ -622,35 +622,35 @@ class SqlaTable(Model, BaseDatasource):
metric_name='sum__' + dbcol.column_name,
verbose_name='sum__' + dbcol.column_name,
metric_type='sum',
- expression="SUM({})".format(quoted)
+ expression="SUM({})".format(quoted),
))
if dbcol.avg:
metrics.append(M(
metric_name='avg__' + dbcol.column_name,
verbose_name='avg__' + dbcol.column_name,
metric_type='avg',
- expression="AVG({})".format(quoted)
+ expression="AVG({})".format(quoted),
))
if dbcol.max:
metrics.append(M(
metric_name='max__' + dbcol.column_name,
verbose_name='max__' + dbcol.column_name,
metric_type='max',
- expression="MAX({})".format(quoted)
+ expression="MAX({})".format(quoted),
))
if dbcol.min:
metrics.append(M(
metric_name='min__' + dbcol.column_name,
verbose_name='min__' + dbcol.column_name,
metric_type='min',
- expression="MIN({})".format(quoted)
+ expression="MIN({})".format(quoted),
))
if dbcol.count_distinct:
metrics.append(M(
metric_name='count_distinct__' + dbcol.column_name,
verbose_name='count_distinct__' + dbcol.column_name,
metric_type='count_distinct',
- expression="COUNT(DISTINCT {})".format(quoted)
+ expression="COUNT(DISTINCT {})".format(quoted),
))
dbcol.type = datatype
@@ -658,7 +658,7 @@ class SqlaTable(Model, BaseDatasource):
metric_name='count',
verbose_name='COUNT(*)',
metric_type='count',
- expression="COUNT(*)"
+ expression="COUNT(*)",
))
dbmetrics = db.session.query(M).filter(M.table_id == self.id).filter(
diff --git a/superset/connectors/sqla/views.py b/superset/connectors/sqla/views.py
index 495c98d..513dd5a 100644
--- a/superset/connectors/sqla/views.py
+++ b/superset/connectors/sqla/views.py
@@ -117,7 +117,7 @@ class SqlMetricInlineView(CompactCRUDMixin, SupersetModelView): # noqa
"(https://github.com/d3/d3-format/blob/master/README.md#format). "
"For instance, this default formatting applies in the Table "
"visualization and allow for different metric to use different "
- "formats", True
+ "formats", True,
),
}
add_columns = edit_columns
@@ -189,13 +189,13 @@ class TableModelView(DatasourceModelView, DeleteMixin): # noqa
"markdown</a>"),
'sql': _(
"This fields acts a Superset view, meaning that Superset will "
- "run a query against this string as a subquery."
+ "run a query against this string as a subquery.",
),
'fetch_values_predicate': _(
"Predicate applied when fetching distinct value to "
"populate the filter control component. Supports "
"jinja template syntax. Applies only when "
- "`Enable Filter Select` is on."
+ "`Enable Filter Select` is on.",
),
'default_endpoint': _(
"Redirects to this endpoint when clicking on the table "
diff --git a/superset/data/__init__.py b/superset/data/__init__.py
index 3b5689e..a96749a 100644
--- a/superset/data/__init__.py
+++ b/superset/data/__init__.py
@@ -93,7 +93,7 @@ def load_energy():
"viz_type": "sankey",
"where": ""
}
- """)
+ """),
)
misc_dash_slices.append(slc.slice_name)
merge_slice(slc)
@@ -119,7 +119,7 @@ def load_energy():
"viz_type": "directed_force",
"where": ""
}
- """)
+ """),
)
misc_dash_slices.append(slc.slice_name)
merge_slice(slc)
@@ -145,7 +145,7 @@ def load_energy():
"xscale_interval": "1",
"yscale_interval": "1"
}
- """)
+ """),
)
misc_dash_slices.append(slc.slice_name)
merge_slice(slc)
@@ -971,7 +971,7 @@ def load_country_map_data():
'2012': BigInteger,
'2013': BigInteger,
'2014': BigInteger,
- 'date': Date()
+ 'date': Date(),
},
index=False)
print("Done loading table!")
diff --git a/superset/dataframe.py b/superset/dataframe.py
index 1e56f2b..1d74fdd 100644
--- a/superset/dataframe.py
+++ b/superset/dataframe.py
@@ -139,7 +139,7 @@ class SupersetDataFrame(object):
column.update({
'is_date': True,
'is_dim': False,
- 'agg': None
+ 'agg': None,
})
# 'agg' is optional attribute
if not column['agg']:
diff --git a/superset/db_engine_specs.py b/superset/db_engine_specs.py
index c287a7e..1b71a75 100644
--- a/superset/db_engine_specs.py
+++ b/superset/db_engine_specs.py
@@ -486,7 +486,7 @@ class PrestoEngineSpec(BaseEngineSpec):
'cols': cols,
'latest': {col_name: latest_part},
'partitionQuery': pql,
- }
+ },
}
@classmethod
diff --git a/superset/db_engines/hive.py b/superset/db_engines/hive.py
index bf3566f..1a1f513 100644
--- a/superset/db_engines/hive.py
+++ b/superset/db_engines/hive.py
@@ -30,7 +30,7 @@ def fetch_logs(self, max_rows=1024,
operationHandle=self._operationHandle,
orientation=ttypes.TFetchOrientation.FETCH_NEXT,
maxRows=self.arraysize,
- fetchType=1 # 0: results, 1: logs
+ fetchType=1, # 0: results, 1: logs
)
response = self._connection.client.FetchResults(req)
hive._check_status(response)
diff --git a/superset/models/core.py b/superset/models/core.py
index 2db2af6..0358209 100644
--- a/superset/models/core.py
+++ b/superset/models/core.py
@@ -199,7 +199,7 @@ class Slice(Model, AuditMixinNullable, ImportMixin):
form_data.update({
'slice_id': self.id,
'viz_type': self.viz_type,
- 'datasource': str(self.datasource_id) + '__' + self.datasource_type
+ 'datasource': str(self.datasource_id) + '__' + self.datasource_type,
})
if self.cache_timeout:
form_data['cache_timeout'] = self.cache_timeout
@@ -301,7 +301,7 @@ dashboard_user = Table(
'dashboard_user', metadata,
Column('id', Integer, primary_key=True),
Column('user_id', Integer, ForeignKey('ab_user.id')),
- Column('dashboard_id', Integer, ForeignKey('dashboards.id'))
+ Column('dashboard_id', Integer, ForeignKey('dashboards.id')),
)
@@ -687,7 +687,7 @@ class Database(Model, AuditMixinNullable):
select('*')
.select_from(
TextAsFrom(text(sql), ['*'])
- .alias('inner_qry')
+ .alias('inner_qry'),
).limit(limit)
)
return self.compile_sqla_query(qry)
diff --git a/superset/models/helpers.py b/superset/models/helpers.py
index 9299760..6cc21fc 100644
--- a/superset/models/helpers.py
+++ b/superset/models/helpers.py
@@ -134,13 +134,13 @@ def merge_perm(sm, permission_name, view_menu_name, connection):
permission_table = sm.permission_model.__table__
connection.execute(
permission_table.insert()
- .values(name=permission_name)
+ .values(name=permission_name),
)
if not view_menu:
view_menu_table = sm.viewmenu_model.__table__
connection.execute(
view_menu_table.insert()
- .values(name=view_menu_name)
+ .values(name=view_menu_name),
)
permission = sm.find_permission(permission_name)
@@ -155,8 +155,8 @@ def merge_perm(sm, permission_name, view_menu_name, connection):
permission_view_table.insert()
.values(
permission_id=permission.id,
- view_menu_id=view_menu.id
- )
+ view_menu_id=view_menu.id,
+ ),
)
@@ -167,7 +167,7 @@ def set_perm(mapper, connection, target): # noqa
connection.execute(
link_table.update()
.where(link_table.c.id == target.id)
- .values(perm=target.get_perm())
+ .values(perm=target.get_perm()),
)
# add to view menu if not already exists
diff --git a/superset/security.py b/superset/security.py
index b1274f0..8f96acb 100644
--- a/superset/security.py
+++ b/superset/security.py
@@ -133,13 +133,13 @@ def is_gamma_pvm(pvm):
def is_sql_lab_pvm(pvm):
return pvm.view_menu.name in {'SQL Lab'} or pvm.permission.name in {
- 'can_sql_json', 'can_csv', 'can_search_queries'
+ 'can_sql_json', 'can_csv', 'can_search_queries',
}
def is_granter_pvm(pvm):
return pvm.permission.name in {
- 'can_override_role_permissions', 'can_approve'
+ 'can_override_role_permissions', 'can_approve',
}
diff --git a/superset/utils.py b/superset/utils.py
index 0bdf30d..74d8dfb 100644
--- a/superset/utils.py
+++ b/superset/utils.py
@@ -163,7 +163,7 @@ class DimSelector(Having):
'type': 'dimSelector',
'dimension': args['dimension'],
'value': args['value'],
- }
+ },
}
diff --git a/superset/views/base.py b/superset/views/base.py
index cba4591..cf0b2b9 100644
--- a/superset/views/base.py
+++ b/superset/views/base.py
@@ -270,7 +270,7 @@ class DeleteMixin(object):
__("Delete"),
__("Delete all Really?"),
"fa-trash",
- single=False
+ single=False,
)
def muldelete(self, items):
if not items:
diff --git a/superset/views/core.py b/superset/views/core.py
index 1c56f00..ab2e3d4 100755
--- a/superset/views/core.py
+++ b/superset/views/core.py
@@ -151,8 +151,8 @@ class DashboardFilter(SupersetFilter):
db.session.query(Dash.id)
.distinct()
.join(Dash.slices)
- .filter(Slice.id.in_(slice_ids_qry))
- )
+ .filter(Slice.id.in_(slice_ids_qry)),
+ ),
)
return query
@@ -179,7 +179,7 @@ class DatabaseView(SupersetModelView, DeleteMixin): # noqa
'allow_dml', 'creator', 'modified']
order_columns = [
'database_name', 'allow_run_sync', 'allow_run_async', 'allow_dml',
- 'modified'
+ 'modified',
]
add_columns = [
'database_name', 'sqlalchemy_uri', 'cache_timeout', 'extra',
@@ -256,7 +256,7 @@ class DatabaseView(SupersetModelView, DeleteMixin): # noqa
'extra': _("Extra"),
'allow_run_sync': _("Allow Run Sync"),
'allow_run_async': _("Allow Run Async"),
- 'impersonate_user': _("Impersonate the logged on user")
+ 'impersonate_user': _("Impersonate the logged on user"),
}
def pre_add(self, db):
@@ -365,10 +365,10 @@ class SliceModelView(SupersetModelView, DeleteMixin): # noqa
"These parameters are generated dynamically when clicking "
"the save or overwrite button in the explore view. This JSON "
"object is exposed here for reference and for power users who may "
- "want to alter specific parameters."),
- 'cache_timeout': _(
- "Duration (in seconds) of the caching timeout for this slice."
+ "want to alter specific parameters.",
),
+ 'cache_timeout': _(
+ "Duration (in seconds) of the caching timeout for this slice."),
}
base_filters = [['id', SliceFilter, lambda: []]]
label_columns = {
@@ -532,7 +532,7 @@ class DashboardModelView(SupersetModelView, DeleteMixin): # noqa
mimetype="application/text")
return self.render_template(
'superset/export_dashboards.html',
- dashboards_url='/dashboardmodelview/list'
+ dashboards_url='/dashboardmodelview/list',
)
@@ -770,7 +770,7 @@ class Superset(BaseSupersetView):
db.session.commit()
return self.json_response({
'granted': granted_perms,
- 'requested': list(db_ds_names)
+ 'requested': list(db_ds_names),
}, status=201)
@log_this
@@ -1455,7 +1455,7 @@ class Superset(BaseSupersetView):
configuration.update(
db_engine.get_configuration_for_impersonation(uri,
impersonate_user,
- username)
+ username),
)
connect_args = (
@@ -1486,17 +1486,17 @@ class Superset(BaseSupersetView):
db.session.query(M.Log, M.Dashboard, M.Slice)
.outerjoin(
M.Dashboard,
- M.Dashboard.id == M.Log.dashboard_id
+ M.Dashboard.id == M.Log.dashboard_id,
)
.outerjoin(
M.Slice,
- M.Slice.id == M.Log.slice_id
+ M.Slice.id == M.Log.slice_id,
)
.filter(
sqla.and_(
~M.Log.action.in_(('queries', 'shortner', 'sql_json')),
M.Log.user_id == user_id,
- )
+ ),
)
.order_by(M.Log.dttm.desc())
.limit(1000)
@@ -1553,10 +1553,10 @@ class Superset(BaseSupersetView):
models.FavStar.user_id == int(user_id),
models.FavStar.class_name == 'Dashboard',
models.Dashboard.id == models.FavStar.obj_id,
- )
+ ),
)
.order_by(
- models.FavStar.dttm.desc()
+ models.FavStar.dttm.desc(),
)
)
payload = []
@@ -1590,10 +1590,10 @@ class Superset(BaseSupersetView):
sqla.or_(
Dash.created_by_fk == user_id,
Dash.changed_by_fk == user_id,
- )
+ ),
)
.order_by(
- Dash.changed_on.desc()
+ Dash.changed_on.desc(),
)
)
payload = [{
@@ -1618,7 +1618,7 @@ class Superset(BaseSupersetView):
sqla.or_(
Slice.created_by_fk == user_id,
Slice.changed_by_fk == user_id,
- )
+ ),
)
.order_by(Slice.changed_on.desc())
)
@@ -1647,10 +1647,10 @@ class Superset(BaseSupersetView):
models.FavStar.user_id == int(user_id),
models.FavStar.class_name == 'slice',
models.Slice.id == models.FavStar.obj_id,
- )
+ ),
)
.order_by(
- models.FavStar.dttm.desc()
+ models.FavStar.dttm.desc(),
)
)
payload = []
@@ -1733,8 +1733,8 @@ class Superset(BaseSupersetView):
class_name=class_name,
obj_id=obj_id,
user_id=g.user.get_id(),
- dttm=datetime.now()
- )
+ dttm=datetime.now(),
+ ),
)
count = 1
elif action == 'unselect':
@@ -1993,7 +1993,7 @@ class Superset(BaseSupersetView):
models.Database).filter_by(id=database_id).first()
return self.render_template(
"superset/ajah.html",
- content=mydb.select_star(table_name, show_cols=True)
+ content=mydb.select_star(table_name, show_cols=True),
)
@expose("/theme/")
@@ -2023,7 +2023,7 @@ class Superset(BaseSupersetView):
return json_error_response(
"Data could not be retrieved. "
"You may want to re-run the query.",
- status=410
+ status=410,
)
query = db.session.query(Query).filter_by(results_key=key).one()
@@ -2085,7 +2085,7 @@ class Superset(BaseSupersetView):
if select_as_cta and mydb.force_ctas_schema:
tmp_table_name = '{}.{}'.format(
mydb.force_ctas_schema,
- tmp_table_name
+ tmp_table_name,
)
query = Query(
@@ -2326,7 +2326,7 @@ class Superset(BaseSupersetView):
for perm in role.permissions:
if perm.permission and perm.view_menu:
perms.add(
- (perm.permission.name, perm.view_menu.name)
+ (perm.permission.name, perm.view_menu.name),
)
if perm.permission.name in ('datasource_access', 'database_access'):
permissions[perm.permission.name].add(perm.view_menu.name)
@@ -2354,7 +2354,7 @@ class Superset(BaseSupersetView):
title=user.username + "'s profile",
navbar_container=True,
entry='profile',
- bootstrap_data=json.dumps(payload, default=utils.json_iso_dttm_ser)
+ bootstrap_data=json.dumps(payload, default=utils.json_iso_dttm_ser),
)
@has_access
@@ -2368,7 +2368,7 @@ class Superset(BaseSupersetView):
return self.render_template(
'superset/basic.html',
entry='sqllab',
- bootstrap_data=json.dumps(d, default=utils.json_iso_dttm_ser)
+ bootstrap_data=json.dumps(d, default=utils.json_iso_dttm_ser),
)
@api
diff --git a/superset/viz.py b/superset/viz.py
index 4a3d048..ab66401 100644
--- a/superset/viz.py
+++ b/superset/viz.py
@@ -197,7 +197,7 @@ class BaseViz(object):
'extras': extras,
'timeseries_limit_metric': timeseries_limit_metric,
'form_data': form_data,
- 'order_desc': order_desc
+ 'order_desc': order_desc,
}
return d
@@ -387,7 +387,7 @@ class TableViz(BaseViz):
if 'percent_metrics' in fd:
d['metrics'] = d['metrics'] + list(filter(
lambda m: m not in d['metrics'],
- fd['percent_metrics']
+ fd['percent_metrics'],
))
d['is_timeseries'] = self.should_be_timeseries()
@@ -416,7 +416,7 @@ class TableViz(BaseViz):
# Remove metrics that are not in the main metrics list
for m in filter(
lambda m: m not in fd['metrics'] and m in df.columns,
- percent_metrics
+ percent_metrics,
):
del df[m]
@@ -766,7 +766,7 @@ class BubbleViz(NVD3Viz):
form_data = self.form_data
d = super(BubbleViz, self).query_obj()
d['groupby'] = [
- form_data.get('entity')
+ form_data.get('entity'),
]
if form_data.get('series'):
d['groupby'].append(form_data.get('series'))
@@ -1090,7 +1090,7 @@ class NVD3DualLineViz(NVD3Viz):
chart_data = []
metrics = [
self.form_data.get('metric'),
- self.form_data.get('metric_2')
+ self.form_data.get('metric_2'),
]
for i, m in enumerate(metrics):
ys = series[m]
@@ -1105,7 +1105,7 @@ class NVD3DualLineViz(NVD3Viz):
for ds in df.index
],
"yAxis": i+1,
- "type": "line"
+ "type": "line",
}
chart_data.append(d)
return chart_data
@@ -1702,14 +1702,14 @@ class MapboxViz(BaseViz):
"geometry": {
"type": "Point",
"coordinates": [lon, lat],
- }
+ },
}
for lon, lat, metric, point_radius
in zip(
df[fd.get('all_columns_x')],
df[fd.get('all_columns_y')],
metric_col, point_radius_col)
- ]
+ ],
}
return {
@@ -1912,7 +1912,7 @@ class PartitionViz(NVD3TimeSeriesViz):
'name': i,
'val': levels[level][metric][dims][i],
'children': self.nest_values(
- levels, level + 1, metric, dims + (i,)
+ levels, level + 1, metric, dims + (i,),
),
} for i in levels[level][metric][dims].index]
@@ -1933,7 +1933,7 @@ class PartitionViz(NVD3TimeSeriesViz):
return [{
'name': i,
'val': procs[level][dims][i][time],
- 'children': self.nest_procs(procs, level + 1, dims + (i,), time)
+ 'children': self.nest_procs(procs, level + 1, dims + (i,), time),
} for i in procs[level][dims].columns]
def get_data(self, df):
diff --git a/tests/access_tests.py b/tests/access_tests.py
index 2e81fc0..1b950b5 100644
--- a/tests/access_tests.py
+++ b/tests/access_tests.py
@@ -23,9 +23,9 @@ ROLE_TABLES_PERM_DATA = {
'name': 'main',
'schema': [{
'name': '',
- 'datasources': ['birth_names']
- }]
- }]
+ 'datasources': ['birth_names'],
+ }],
+ }],
}
ROLE_ALL_PERM_DATA = {
@@ -35,17 +35,17 @@ ROLE_ALL_PERM_DATA = {
'name': 'main',
'schema': [{
'name': '',
- 'datasources': ['birth_names']
- }]
+ 'datasources': ['birth_names'],
+ }],
}, {
'datasource_type': 'druid',
'name': 'druid_test',
'schema': [{
'name': '',
- 'datasources': ['druid_ds_1', 'druid_ds_2']
- }]
- }
- ]
+ 'datasources': ['druid_ds_1', 'druid_ds_2'],
+ }],
+ },
+ ],
}
EXTEND_ROLE_REQUEST = (
@@ -172,7 +172,7 @@ class RequestAccessTests(SupersetTestCase):
override_me.permissions.append(
sm.find_permission_view_menu(
view_menu_name=self.get_table_by_name('long_lat').perm,
- permission_name='datasource_access')
+ permission_name='datasource_access'),
)
db.session.flush()
@@ -550,11 +550,11 @@ class RequestAccessTests(SupersetTestCase):
'username': 'gamma',
'first_name': 'Gamma',
'last_name': 'Gamma',
- 'email': 'gamma@superset.com'
+ 'email': 'gamma@superset.com',
}],
- 'role_name': update_role_str
+ 'role_name': update_role_str,
}),
- follow_redirects=True
+ follow_redirects=True,
)
update_role = sm.find_role(update_role_str)
self.assertEquals(
@@ -568,16 +568,16 @@ class RequestAccessTests(SupersetTestCase):
'username': 'alpha',
'first_name': 'Alpha',
'last_name': 'Alpha',
- 'email': 'alpha@superset.com'
+ 'email': 'alpha@superset.com',
}, {
'username': 'unknown',
'first_name': 'Unknown1',
'last_name': 'Unknown2',
- 'email': 'unknown@superset.com'
+ 'email': 'unknown@superset.com',
}],
- 'role_name': update_role_str
+ 'role_name': update_role_str,
}),
- follow_redirects=True
+ follow_redirects=True,
)
self.assertEquals(resp.status_code, 201)
update_role = sm.find_role(update_role_str)
diff --git a/tests/base_tests.py b/tests/base_tests.py
index 0b76277..af94596 100644
--- a/tests/base_tests.py
+++ b/tests/base_tests.py
@@ -102,12 +102,12 @@ class SupersetTestCase(unittest.TestCase):
druid_datasource1 = DruidDatasource(
datasource_name='druid_ds_1',
- cluster_name='druid_test'
+ cluster_name='druid_test',
)
session.add(druid_datasource1)
druid_datasource2 = DruidDatasource(
datasource_name='druid_ds_2',
- cluster_name='druid_test'
+ cluster_name='druid_test',
)
session.add(druid_datasource2)
session.commit()
diff --git a/tests/celery_tests.py b/tests/celery_tests.py
index c76341c..8763ec1 100644
--- a/tests/celery_tests.py
+++ b/tests/celery_tests.py
@@ -63,7 +63,7 @@ class UtilityFunctionTests(SupersetTestCase):
self.assertEqual(
"CREATE TABLE tmp AS \nSELECT * FROM planets WHERE\n"
"Luke_Father = 'Darth Vader'",
- q.as_create_table("tmp")
+ q.as_create_table("tmp"),
)
@@ -113,12 +113,12 @@ class CeleryTestCase(SupersetTestCase):
def tearDownClass(cls):
subprocess.call(
"ps auxww | grep 'celeryd' | awk '{print $2}' | xargs kill -9",
- shell=True
+ shell=True,
)
subprocess.call(
"ps auxww | grep 'superset worker' | awk '{print $2}' | "
"xargs kill -9",
- shell=True
+ shell=True,
)
def run_sql(self, db_id, sql, client_id, cta='false', tmp_table='tmp',
@@ -148,7 +148,7 @@ class CeleryTestCase(SupersetTestCase):
# In addition some of the engines do not include OFFSET 0.
self.assertTrue(
"SELECT * FROM (SELECT * FROM outer_space;) AS inner_qry "
- "LIMIT 100" in ' '.join(updated_select_query.split())
+ "LIMIT 100" in ' '.join(updated_select_query.split()),
)
select_query_no_semicolon = "SELECT * FROM outer_space"
@@ -157,7 +157,7 @@ class CeleryTestCase(SupersetTestCase):
self.assertTrue(
"SELECT * FROM (SELECT * FROM outer_space) AS inner_qry "
"LIMIT 100" in
- ' '.join(updated_select_query_no_semicolon.split())
+ ' '.join(updated_select_query_no_semicolon.split()),
)
multi_line_query = (
@@ -167,7 +167,7 @@ class CeleryTestCase(SupersetTestCase):
self.assertTrue(
"SELECT * FROM (SELECT * FROM planets WHERE "
"Luke_Father = 'Darth Vader';) AS inner_qry LIMIT 100" in
- ' '.join(updated_multi_line_query.split())
+ ' '.join(updated_multi_line_query.split()),
)
def test_run_sync_query_dont_exist(self):
@@ -276,7 +276,7 @@ class CeleryTestCase(SupersetTestCase):
'is_dim': False},
{'is_date': False, 'type': 'STRING',
'name': 'string3', 'is_dim': True}], 'name')
- , cols
+ , cols,
)
else:
self.assertEqual(self.dictify_list_of_dicts([
@@ -296,7 +296,7 @@ class CeleryTestCase(SupersetTestCase):
'is_dim': False},
{'is_date': False, 'type': 'STRING',
'name': 'string3', 'is_dim': True}], 'name')
- , cols
+ , cols,
)
diff --git a/tests/core_tests.py b/tests/core_tests.py
index 062da5e..c7c2ff9 100644
--- a/tests/core_tests.py
+++ b/tests/core_tests.py
@@ -153,8 +153,8 @@ class CoreTests(SupersetTestCase):
tbl_id,
copy_name,
'saveas',
- json.dumps(form_data)
- )
+ json.dumps(form_data),
+ ),
)
slices = db.session.query(models.Slice) \
.filter_by(slice_name=copy_name).all()
@@ -174,8 +174,8 @@ class CoreTests(SupersetTestCase):
tbl_id,
new_slice_name,
'overwrite',
- json.dumps(form_data)
- )
+ json.dumps(form_data),
+ ),
)
slc = db.session.query(models.Slice).filter_by(id=new_slice_id).first()
assert slc.slice_name == new_slice_name
@@ -281,7 +281,7 @@ class CoreTests(SupersetTestCase):
data = json.dumps({
'uri': database.safe_sqlalchemy_uri(),
'name': 'main',
- 'impersonate_user': False
+ 'impersonate_user': False,
})
response = self.client.post('/superset/testconn', data=data, content_type='application/json')
assert response.status_code == 200
@@ -291,7 +291,7 @@ class CoreTests(SupersetTestCase):
data = json.dumps({
'uri': database.sqlalchemy_uri_decrypted,
'name': 'main',
- 'impersonate_user': False
+ 'impersonate_user': False,
})
response = self.client.post('/superset/testconn', data=data, content_type='application/json')
assert response.status_code == 200
@@ -389,7 +389,7 @@ class CoreTests(SupersetTestCase):
'css': '',
'expanded_slices': {},
'positions': positions,
- 'dashboard_title': dash.dashboard_title
+ 'dashboard_title': dash.dashboard_title,
}
url = '/superset/save_dash/{}/'.format(dash.id)
resp = self.get_resp(url, data=dict(data=json.dumps(data)))
@@ -416,7 +416,7 @@ class CoreTests(SupersetTestCase):
'expanded_slices': {},
'positions': positions,
'dashboard_title': dash.dashboard_title,
- 'default_filters': default_filters
+ 'default_filters': default_filters,
}
url = '/superset/save_dash/{}/'.format(dash.id)
@@ -452,7 +452,7 @@ class CoreTests(SupersetTestCase):
'css': '',
'expanded_slices': {},
'positions': positions,
- 'dashboard_title': 'new title'
+ 'dashboard_title': 'new title',
}
url = '/superset/save_dash/{}/'.format(dash.id)
self.get_resp(url, data=dict(data=json.dumps(data)))
@@ -513,7 +513,7 @@ class CoreTests(SupersetTestCase):
slice_name="Name Cloud").first()
data = {
"slice_ids": [new_slice.data["slice_id"],
- existing_slice.data["slice_id"]]
+ existing_slice.data["slice_id"]],
}
url = '/superset/add_slices/{}/'.format(dash.id)
resp = self.client.post(url, data=dict(data=json.dumps(data)))
@@ -774,7 +774,7 @@ class CoreTests(SupersetTestCase):
fillna_columns = slc.viz.get_fillna_for_columns(results.df.columns)
self.assertDictEqual(
fillna_columns,
- {'name': ' NULL', 'sum__num': 0}
+ {'name': ' NULL', 'sum__num': 0},
)
diff --git a/tests/druid_tests.py b/tests/druid_tests.py
index e514751..276a010 100644
--- a/tests/druid_tests.py
+++ b/tests/druid_tests.py
@@ -36,7 +36,7 @@ SEGMENT_METADATA = [{
"size": 100000, "cardinality": 1504, "errorMessage": None},
"metric1": {
"type": "FLOAT", "hasMultipleValues": False,
- "size": 100000, "cardinality": None, "errorMessage": None}
+ "size": 100000, "cardinality": None, "errorMessage": None},
},
"aggregators": {
"metric1": {
@@ -45,7 +45,7 @@ SEGMENT_METADATA = [{
"fieldName": "metric1"},
},
"size": 300000,
- "numRows": 5000000
+ "numRows": 5000000,
}]
GB_RESULT_SET = [
@@ -55,7 +55,7 @@ GB_RESULT_SET = [
"event": {
"dim1": 'Canada',
"metric1": 12345678,
- }
+ },
},
{
"version": "v1",
@@ -63,7 +63,7 @@ GB_RESULT_SET = [
"event": {
"dim1": 'USA',
"metric1": 12345678 / 2,
- }
+ },
},
]
@@ -195,10 +195,10 @@ class DruidTests(SupersetTestCase):
"ts_column": "d",
"sources": [{
"table": "clicks",
- "partition": "d='{{ ds }}'"
- }]
- }
- }
+ "partition": "d='{{ ds }}'",
+ }],
+ },
+ },
}
def check():
resp = self.client.post('/superset/sync_druid/', data=json.dumps(cfg))
@@ -227,9 +227,9 @@ class DruidTests(SupersetTestCase):
"dimensions": ["affiliate_id", "second_seen"],
"metrics_spec": [
{"type": "bla", "name": "sum"},
- {"type": "unique", "name": "unique"}
+ {"type": "unique", "name": "unique"},
],
- }
+ },
}
resp = self.client.post('/superset/sync_druid/', data=json.dumps(cfg))
druid_ds = db.session.query(DruidDatasource).filter_by(
@@ -308,7 +308,7 @@ class DruidTests(SupersetTestCase):
db.session.add(cluster)
cluster.get_datasources = PickableMock(
- return_value=['test_datasource']
+ return_value=['test_datasource'],
)
cluster.get_druid_version = PickableMock(return_value='0.9.1')
@@ -349,14 +349,14 @@ class DruidTests(SupersetTestCase):
verbose_name='APPROXIMATE_HISTOGRAM(*)',
metric_type='approxHistogramFold',
json=json.dumps(
- {'type': 'approxHistogramFold', 'name': 'a_histogram'})
+ {'type': 'approxHistogramFold', 'name': 'a_histogram'}),
),
'aCustomMetric': DruidMetric(
metric_name='aCustomMetric',
verbose_name='MY_AWESOME_METRIC(*)',
metric_type='aCustomType',
json=json.dumps(
- {'type': 'customMetric', 'name': 'aCustomMetric'})
+ {'type': 'customMetric', 'name': 'aCustomMetric'}),
),
'quantile_p95': DruidMetric(
metric_name='quantile_p95',
@@ -424,7 +424,7 @@ class DruidTests(SupersetTestCase):
self.assertIn('field', res.filter['filter'])
self.assertEqual(
3,
- len(res.filter['filter']['field'].filter['filter']['fields'])
+ len(res.filter['filter']['field'].filter['filter']['fields']),
)
def test_get_filters_constructs_filter_equals(self):
@@ -440,7 +440,7 @@ class DruidTests(SupersetTestCase):
self.assertEqual('not', res.filter['filter']['type'])
self.assertEqual(
'h',
- res.filter['filter']['field'].filter['filter']['value']
+ res.filter['filter']['field'].filter['filter']['value'],
)
def test_get_filters_constructs_bounds_filter(self):
diff --git a/tests/import_export_tests.py b/tests/import_export_tests.py
index 83ae46b..d0b8c10 100644
--- a/tests/import_export_tests.py
+++ b/tests/import_export_tests.py
@@ -77,7 +77,7 @@ class ImportExportTests(SupersetTestCase):
viz_type='bubble',
params=json.dumps(params),
datasource_id=ds_id,
- id=id
+ id=id,
)
def create_dashboard(self, title, id=0, slcs=[]):
@@ -88,7 +88,7 @@ class ImportExportTests(SupersetTestCase):
slices=slcs,
position_json='{"size_y": 2, "size_x": 2}',
slug='{}_imported'.format(title.lower()),
- json_metadata=json.dumps(json_metadata)
+ json_metadata=json.dumps(json_metadata),
)
def create_table(
@@ -98,7 +98,7 @@ class ImportExportTests(SupersetTestCase):
id=id,
schema=schema,
table_name=name,
- params=json.dumps(params)
+ params=json.dumps(params),
)
for col_name in cols_names:
table.columns.append(
@@ -114,7 +114,7 @@ class ImportExportTests(SupersetTestCase):
id=id,
datasource_name=name,
cluster_name='druid_test',
- params=json.dumps(params)
+ params=json.dumps(params),
)
for col_name in cols_names:
datasource.columns.append(
@@ -229,13 +229,13 @@ class ImportExportTests(SupersetTestCase):
self.assert_dash_equals(birth_dash, exported_dashboards[0])
self.assertEquals(
birth_dash.id,
- json.loads(exported_dashboards[0].json_metadata)['remote_id']
+ json.loads(exported_dashboards[0].json_metadata)['remote_id'],
)
self.assert_dash_equals(world_health_dash, exported_dashboards[1])
self.assertEquals(
world_health_dash.id,
- json.loads(exported_dashboards[1].json_metadata)['remote_id']
+ json.loads(exported_dashboards[1].json_metadata)['remote_id'],
)
exported_tables = sorted(
@@ -337,8 +337,8 @@ class ImportExportTests(SupersetTestCase):
"filter_immune_slices": ["{}".format(e_slc.id)],
"expanded_slices": {
"{}".format(e_slc.id): True,
- "{}".format(b_slc.id): False
- }
+ "{}".format(b_slc.id): False,
+ },
})
imported_dash_id = models.Dashboard.import_obj(
@@ -358,8 +358,8 @@ class ImportExportTests(SupersetTestCase):
"filter_immune_slices": ["{}".format(i_e_slc.id)],
"expanded_slices": {
'{}'.format(i_e_slc.id): True,
- '{}'.format(i_b_slc.id): False
- }
+ '{}'.format(i_b_slc.id): False,
+ },
}
self.assertEquals(expected_json_metadata,
json.loads(imported_dash.json_metadata))
diff --git a/tests/utils_tests.py b/tests/utils_tests.py
index 1aea191..0ed1b71 100644
--- a/tests/utils_tests.py
+++ b/tests/utils_tests.py
@@ -68,18 +68,18 @@ class UtilsTestCase(unittest.TestCase):
# copy over extra filters into empty filters
form_data = {'extra_filters': [
{'col': 'a', 'op': 'in', 'val': 'someval'},
- {'col': 'B', 'op': '==', 'val': ['c1', 'c2']}
+ {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
]}
expected = {'filters': [
{'col': 'a', 'op': 'in', 'val': 'someval'},
- {'col': 'B', 'op': '==', 'val': ['c1', 'c2']}
+ {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
]}
merge_extra_filters(form_data)
self.assertEquals(form_data, expected)
# adds extra filters to existing filters
form_data = {'extra_filters': [
{'col': 'a', 'op': 'in', 'val': 'someval'},
- {'col': 'B', 'op': '==', 'val': ['c1', 'c2']}
+ {'col': 'B', 'op': '==', 'val': ['c1', 'c2']},
], 'filters': [{'col': 'D', 'op': '!=', 'val': ['G1', 'g2']}]}
expected = {'filters': [
{'col': 'D', 'op': '!=', 'val': ['G1', 'g2']},
diff --git a/tests/viz_tests.py b/tests/viz_tests.py
index 111c86c..0aa0b6c 100644
--- a/tests/viz_tests.py
+++ b/tests/viz_tests.py
@@ -24,7 +24,7 @@ class BaseVizTestCase(unittest.TestCase):
test_viz = viz.BaseViz(datasource, form_data);
self.assertEqual(
test_viz.default_fillna,
- test_viz.get_fillna_for_columns()
+ test_viz.get_fillna_for_columns(),
)
def test_get_df_returns_empty_df(self):
@@ -164,13 +164,13 @@ class TableVizTestCase(unittest.TestCase):
}
test_viz = viz.TableViz(datasource, form_data)
f_query_obj = {
- 'metrics': form_data['metrics']
+ 'metrics': form_data['metrics'],
}
super_query_obj.return_value = f_query_obj
query_obj = test_viz.query_obj()
self.assertEqual([
'sum__A', 'count', 'avg__C',
- 'avg__B', 'max__Y'
+ 'avg__B', 'max__Y',
], query_obj['metrics'])
@patch('superset.viz.BaseViz.query_obj')
@@ -195,7 +195,7 @@ class TableVizTestCase(unittest.TestCase):
datasource = Mock()
form_data = {
'all_columns': ['colA', 'colB', 'colC'],
- 'order_by_cols': ['["colA", "colB"]', '["colC"]']
+ 'order_by_cols': ['["colA", "colB"]', '["colC"]'],
}
super_query_obj.return_value = {
'columns': ['colD', 'colC'],
@@ -212,18 +212,18 @@ class TableVizTestCase(unittest.TestCase):
datasource = Mock()
form_data = {
'timeseries_limit_metric': '__time__',
- 'order_desc': False
+ 'order_desc': False,
}
super_query_obj.return_value = {
- 'metrics': ['colA', 'colB']
+ 'metrics': ['colA', 'colB'],
}
test_viz = viz.TableViz(datasource, form_data)
query_obj = test_viz.query_obj()
self.assertEqual([
- 'colA', 'colB', '__time__'
+ 'colA', 'colB', '__time__',
], query_obj['metrics'])
self.assertEqual([(
- '__time__', True
+ '__time__', True,
)], query_obj['orderby'])
def test_should_be_timeseries_raises_when_no_granularity(self):
@@ -238,7 +238,7 @@ class PairedTTestTestCase(unittest.TestCase):
def test_get_data_transforms_dataframe(self):
form_data = {
'groupby': ['groupA', 'groupB', 'groupC'],
- 'metrics': ['metric1', 'metric2', 'metric3']
+ 'metrics': ['metric1', 'metric2', 'metric3'],
}
datasource = {'type': 'table'}
# Test data
@@ -330,7 +330,7 @@ class PairedTTestTestCase(unittest.TestCase):
def test_get_data_empty_null_keys(self):
form_data = {
'groupby': [],
- 'metrics': ['', None]
+ 'metrics': ['', None],
}
datasource = {'type': 'table'}
# Test data
@@ -548,7 +548,7 @@ class PartitionVizTestCase(unittest.TestCase):
len(nest[0]['children']
[0]['children']
[0]['children']
- [0]['children'])
+ [0]['children']),
)
def test_get_data_calls_correct_method(self):
diff --git a/tox.ini b/tox.ini
index e94a5e7..b711dce 100644
--- a/tox.ini
+++ b/tox.ini
@@ -13,10 +13,10 @@ exclude =
.tox
docs
superset/assets
+ superset/data
superset/migrations
superset/templates
ignore =
- C812
E111
E114
E116
--
To stop receiving notification emails like this one, please contact
['"commits@superset.apache.org" <co...@superset.apache.org>'].