You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by dp...@apache.org on 2023/04/28 14:32:07 UTC

[superset] branch master updated: chore: bump wtforms and add missing flask-limiter (#23680)

This is an automated email from the ASF dual-hosted git repository.

dpgaspar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 31d33592ef chore: bump wtforms and add missing flask-limiter (#23680)
31d33592ef is described below

commit 31d33592ef220fa968bd9fe7db30f182d120eded
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             | 19 ++++++++++++-------
 requirements/testing.txt          |  1 -
 setup.py                          |  2 +-
 superset/connectors/sqla/views.py |  8 ++++----
 superset/views/database/forms.py  | 18 +++++++++---------
 5 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/requirements/base.txt b/requirements/base.txt
index 7b23436f27..9a8b734e8d 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -136,8 +136,10 @@ humanize==3.11.0
     # via apache-superset
 idna==3.2
     # via email-validator
-importlib-metadata==6.0.0
+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
@@ -154,7 +156,7 @@ kombu==5.2.4
     # via celery
 korean-lunar-calendar==0.2.1
     # via holidays
-limits==3.2.0
+limits==3.3.1
     # via flask-limiter
 mako==1.1.4
     # via alembic
@@ -211,7 +213,7 @@ pyarrow==10.0.1
     # via apache-superset
 pycparser==2.20
     # via cffi
-pygments==2.14.0
+pygments==2.15.0
     # via rich
 pyjwt==2.4.0
     # via
@@ -254,7 +256,7 @@ pyyaml==5.4.1
     #   apispec
 redis==4.5.4
     # via apache-superset
-rich==13.3.1
+rich==13.3.4
     # via flask-limiter
 selenium==3.141.0
     # via apache-superset
@@ -297,6 +299,7 @@ typing-extensions==4.4.0
     #   apache-superset
     #   flask-limiter
     #   limits
+    #   rich
 urllib3==1.26.6
     # via selenium
 vine==5.0.0
@@ -313,18 +316,20 @@ werkzeug==2.1.2
     #   flask-login
 wrapt==1.12.1
     # via deprecated
-wtforms==2.3.3
+wtforms==3.0.1
     # 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
 zipp==3.15.0
-    # via importlib-metadata
+    # via
+    #   importlib-metadata
+    #   importlib-resources
 
 # 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 8d2fdfdc46..48991ed389 100644
--- a/setup.py
+++ b/setup.py
@@ -125,7 +125,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 dff6356114..d6fa0ea08a 100644
--- a/superset/connectors/sqla/views.py
+++ b/superset/connectors/sqla/views.py
@@ -20,11 +20,11 @@ import re
 
 from flask import flash, Markup, redirect
 from flask_appbuilder import CompactCRUDMixin, expose, permission_name
+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 db
@@ -185,7 +185,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"),
         )
@@ -260,7 +260,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"),
         )
@@ -404,7 +404,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 99b64e38ab..5e2347528a 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,
     )
     dtype = StringField(
@@ -313,8 +313,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(
@@ -444,8 +444,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(