fix(regression): removed flask_app property can break derived class (#15407)
* fix removed flask_app property can break derived class
* Update __init__.py
diff --git a/setup.cfg b/setup.cfg
index 8fd75a0..afb034b 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -30,7 +30,7 @@
include_trailing_comma = true
line_length = 88
known_first_party = superset
-known_third_party =alembic,apispec,backoff,bleach,cachelib,celery,click,colorama,contextlib2,cron_descriptor,croniter,cryptography,dateutil,flask,flask_appbuilder,flask_babel,flask_caching,flask_compress,flask_jwt_extended,flask_login,flask_migrate,flask_sqlalchemy,flask_talisman,flask_testing,flask_wtf,freezegun,geohash,geopy,graphlib,holidays,humanize,isodate,jinja2,jwt,markdown,markupsafe,marshmallow,marshmallow_enum,msgpack,numpy,pandas,parameterized,parsedatetime,pathlib2,pgsanity,pkg_resources,polyline,prison,pyarrow,pyhive,pyparsing,pytest,pytz,redis,requests,retry,selenium,setuptools,simplejson,slack,sqlalchemy,sqlalchemy_utils,sqlparse,typing_extensions,werkzeug,wtforms,wtforms_json,yaml
+known_third_party =alembic,apispec,backoff,bleach,cachelib,celery,click,colorama,contextlib2,cron_descriptor,croniter,cryptography,dateutil,deprecation,flask,flask_appbuilder,flask_babel,flask_caching,flask_compress,flask_jwt_extended,flask_login,flask_migrate,flask_sqlalchemy,flask_talisman,flask_testing,flask_wtf,freezegun,geohash,geopy,graphlib,holidays,humanize,isodate,jinja2,jwt,markdown,markupsafe,marshmallow,marshmallow_enum,msgpack,numpy,pandas,parameterized,parsedatetime,pathlib2,pgsanity,pkg_resources,polyline,prison,pyarrow,pyhive,pyparsing,pytest,pytz,redis,requests,retry,selenium,setuptools,simplejson,slack,sqlalchemy,sqlalchemy_utils,sqlparse,typing_extensions,werkzeug,wtforms,wtforms_json,yaml
multi_line_output = 3
order_by_type = false
diff --git a/setup.py b/setup.py
index 676905c..878485e 100644
--- a/setup.py
+++ b/setup.py
@@ -112,6 +112,7 @@
"wtforms-json",
"pyparsing>=2.4.7, <3.0.0",
"holidays==0.10.3", # PINNED! https://github.com/dr-prodigy/python-holidays/issues/406
+ "deprecation>=2.1.0, <2.2.0",
],
extras_require={
"athena": ["pyathena>=1.10.8,<1.11"],
diff --git a/superset/initialization/__init__.py b/superset/initialization/__init__.py
index 2654590..9a2050d 100644
--- a/superset/initialization/__init__.py
+++ b/superset/initialization/__init__.py
@@ -21,6 +21,7 @@
from typing import Any, Callable, Dict, TYPE_CHECKING
import wtforms_json
+from deprecation import deprecated
from flask import Flask, redirect
from flask_appbuilder import expose, IndexView
from flask_babel import gettext as __, lazy_gettext as _
@@ -64,6 +65,11 @@
self.config = app.config
self.manifest: Dict[Any, Any] = {}
+ @deprecated(details="use self.superset_app instead of self.flask_app") # type: ignore # pylint: disable=line-too-long
+ @property # type: ignore
+ def flask_app(self) -> SupersetApp:
+ return self.superset_app
+
def pre_init(self) -> None:
"""
Called before all other init tasks are complete