You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by el...@apache.org on 2023/10/19 23:41:36 UTC
[superset] 02/03: chore: bump wtforms and add missing flask-limiter (#23680)
This is an automated email from the ASF dual-hosted git repository.
elizabeth pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 19aaf12ed88888934e06be93b220b2c9fb8935d2
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Fri Apr 28 15:31:57 2023 +0100
chore: bump wtforms and add missing flask-limiter (#23680)
---
requirements/base.txt | 39 ++++++++++++++++++++++++++++++++++++++-
requirements/testing.txt | 1 -
setup.py | 2 +-
superset/connectors/sqla/views.py | 10 ++++++----
superset/views/database/forms.py | 18 +++++++++---------
5 files changed, 54 insertions(+), 16 deletions(-)
diff --git a/requirements/base.txt b/requirements/base.txt
index 142768d804..b119a8fce3 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -128,6 +128,10 @@ humanize==3.11.0
# via apache-superset
idna==3.2
# via email-validator
+importlib-metadata==6.3.0
+ # via flask
+importlib-resources==5.12.0
+ # via limits
isodate==0.6.0
# via apache-superset
itsdangerous==2.1.1
@@ -144,6 +148,8 @@ kombu==5.2.4
# via celery
korean-lunar-calendar==0.2.1
# via holidays
+limits==3.3.1
+ # via flask-limiter
mako==1.1.4
# via alembic
markdown==3.3.4
@@ -191,6 +197,11 @@ pyarrow==10.0.1
# via apache-superset
pycparser==2.20
# via cffi
+<<<<<<< HEAD
+=======
+pygments==2.15.0
+ # via rich
+>>>>>>> 31d33592e... chore: bump wtforms and add missing flask-limiter (#23680)
pyjwt==2.4.0
# via
# apache-superset
@@ -232,6 +243,11 @@ pyyaml==5.4.1
# apispec
redis==3.5.3
# via apache-superset
+<<<<<<< HEAD
+=======
+rich==13.3.4
+ # via flask-limiter
+>>>>>>> 31d33592e... chore: bump wtforms and add missing flask-limiter (#23680)
selenium==3.141.0
# via apache-superset
simplejson==3.17.3
@@ -269,7 +285,15 @@ sshtunnel==0.4.0
tabulate==0.8.9
# via apache-superset
typing-extensions==4.4.0
+<<<<<<< HEAD
# via apache-superset
+=======
+ # via
+ # apache-superset
+ # flask-limiter
+ # limits
+ # rich
+>>>>>>> 31d33592e... chore: bump wtforms and add missing flask-limiter (#23680)
urllib3==1.26.6
# via selenium
vine==5.0.0
@@ -286,16 +310,29 @@ werkzeug==2.1.2
# flask
# flask-jwt-extended
# flask-login
+<<<<<<< HEAD
wtforms==2.3.3
+=======
+wrapt==1.12.1
+ # via deprecated
+wtforms==3.0.1
+>>>>>>> 31d33592e... chore: bump wtforms and add missing flask-limiter (#23680)
# via
# apache-superset
# flask-appbuilder
# flask-wtf
# wtforms-json
-wtforms-json==0.3.3
+wtforms-json==0.3.5
# via apache-superset
xlsxwriter==3.0.7
# via apache-superset
+<<<<<<< HEAD
+=======
+zipp==3.15.0
+ # via
+ # importlib-metadata
+ # importlib-resources
+>>>>>>> 31d33592e... chore: bump wtforms and add missing flask-limiter (#23680)
# The following packages are considered to be unsafe in a requirements file:
# setuptools
diff --git a/requirements/testing.txt b/requirements/testing.txt
index 5312ea4f23..ead36ba3f6 100644
--- a/requirements/testing.txt
+++ b/requirements/testing.txt
@@ -139,7 +139,6 @@ websocket-client==1.2.0
# via docker
wrapt==1.12.1
# via astroid
-
# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools
diff --git a/setup.py b/setup.py
index 590ee0925b..05c6ca4ab5 100644
--- a/setup.py
+++ b/setup.py
@@ -123,7 +123,7 @@ setup(
"tabulate>=0.8.9, <0.9",
"typing-extensions>=4, <5",
"waitress; sys_platform == 'win32'",
- "wtforms>=2.3.3, <2.4",
+ "wtforms>=2.3.3, <4",
"wtforms-json",
"xlsxwriter>=3.0.7, <3.1",
],
diff --git a/superset/connectors/sqla/views.py b/superset/connectors/sqla/views.py
index 86cb08bb86..cb57792f97 100644
--- a/superset/connectors/sqla/views.py
+++ b/superset/connectors/sqla/views.py
@@ -21,11 +21,13 @@ from typing import Any, cast
from flask import current_app, flash, Markup, redirect
from flask_appbuilder import CompactCRUDMixin, expose
+from flask import flash, Markup, redirect
+from flask_appbuilder import CompactCRUDMixin, expose
+from flask_appbuilder.fields import QuerySelectField
from flask_appbuilder.fieldwidgets import Select2Widget
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.security.decorators import has_access
from flask_babel import lazy_gettext as _
-from wtforms.ext.sqlalchemy.fields import QuerySelectField
from wtforms.validators import DataRequired, Regexp
from superset import app, db
@@ -186,7 +188,7 @@ class TableColumnInlineView( # pylint: disable=too-many-ancestors
add_form_extra_fields = {
"table": QuerySelectField(
"Table",
- query_factory=lambda: db.session.query(models.SqlaTable),
+ query_func=lambda: db.session.query(models.SqlaTable),
allow_blank=True,
widget=Select2Widget(extra_classes="readonly"),
)
@@ -261,7 +263,7 @@ class SqlMetricInlineView( # pylint: disable=too-many-ancestors
add_form_extra_fields = {
"table": QuerySelectField(
"Table",
- query_factory=lambda: db.session.query(models.SqlaTable),
+ query_func=lambda: db.session.query(models.SqlaTable),
allow_blank=True,
widget=Select2Widget(extra_classes="readonly"),
)
@@ -497,7 +499,7 @@ class TableModelView( # pylint: disable=too-many-ancestors
edit_form_extra_fields = {
"database": QuerySelectField(
"Database",
- query_factory=lambda: db.session.query(models.Database),
+ query_func=lambda: db.session.query(models.Database),
widget=Select2Widget(extra_classes="readonly"),
)
}
diff --git a/superset/views/database/forms.py b/superset/views/database/forms.py
index 91ab38dc2f..a93c76b5d9 100644
--- a/superset/views/database/forms.py
+++ b/superset/views/database/forms.py
@@ -17,6 +17,7 @@
"""Contains the logic to create cohesive forms on the explore view"""
from typing import List
+from flask_appbuilder.fields import QuerySelectField
from flask_appbuilder.fieldwidgets import BS3TextFieldWidget
from flask_appbuilder.forms import DynamicForm
from flask_babel import lazy_gettext as _
@@ -28,7 +29,6 @@ from wtforms import (
SelectField,
StringField,
)
-from wtforms.ext.sqlalchemy.fields import QuerySelectField
from wtforms.validators import DataRequired, Length, NumberRange, Optional, Regexp
from superset import app, db, security_manager
@@ -43,8 +43,8 @@ config = app.config
class UploadToDatabaseForm(DynamicForm):
- # pylint: disable=E0211
- def file_allowed_dbs() -> List[Database]: # type: ignore
+ @staticmethod
+ def file_allowed_dbs() -> List[Database]:
file_enabled_dbs = (
db.session.query(Database).filter_by(allow_file_upload=True).all()
)
@@ -136,8 +136,8 @@ class CsvToDatabaseForm(UploadToDatabaseForm):
database = QuerySelectField(
_("Database"),
description=_("Select a database to upload the file to"),
- query_factory=UploadToDatabaseForm.file_allowed_dbs,
- get_pk=lambda a: a.id,
+ query_func=UploadToDatabaseForm.file_allowed_dbs,
+ get_pk_func=lambda a: a.id,
get_label=lambda a: a.database_name,
)
schema = StringField(
@@ -303,8 +303,8 @@ class ExcelToDatabaseForm(UploadToDatabaseForm):
database = QuerySelectField(
_("Database"),
- query_factory=UploadToDatabaseForm.file_allowed_dbs,
- get_pk=lambda a: a.id,
+ query_func=UploadToDatabaseForm.file_allowed_dbs,
+ get_pk_func=lambda a: a.id,
get_label=lambda a: a.database_name,
)
schema = StringField(
@@ -434,8 +434,8 @@ class ColumnarToDatabaseForm(UploadToDatabaseForm):
database = QuerySelectField(
_("Database"),
- query_factory=UploadToDatabaseForm.file_allowed_dbs,
- get_pk=lambda a: a.id,
+ query_func=UploadToDatabaseForm.file_allowed_dbs,
+ get_pk_func=lambda a: a.id,
get_label=lambda a: a.database_name,
)
schema = StringField(