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 <[email protected]> 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(
