This is an automated email from the ASF dual-hosted git repository.
rusackas 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 d0f139c2104 feat(deps): bump `flask-caching` from 2.4.1 to 2.5.0 +
bump `flask` from v2 to v3 (#43875)
d0f139c2104 is described below
commit d0f139c21041381dc7036c306c30d26678cdbf81
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Tue Sep 8 17:20:53 2026 -0700
feat(deps): bump `flask-caching` from 2.4.1 to 2.5.0 + bump `flask` from v2
to v3 (#43875)
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: hainenber <[email protected]>
Co-authored-by: dependabot[bot]
<49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: rusackas <[email protected]>
Co-authored-by: Claude Sonnet 5 <[email protected]>
Co-authored-by: hainenber <[email protected]>
Co-authored-by: Đỗ Trọng Hải <[email protected]>
---
pyproject.toml | 2 +-
requirements/base.txt | 9 +++++----
requirements/development.txt | 9 +++++----
superset/extensions/metastore_cache.py | 3 ++-
superset/utils/cache.py | 2 +-
superset/utils/cache_manager.py | 4 ----
tests/integration_tests/dashboard_tests.py | 3 ++-
.../dashboards/security/security_dataset_tests.py | 5 +----
tests/unit_tests/utils/test_cache_manager.py | 6 ++----
9 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 7a9d890cdc7..03e2d7e3806 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -54,7 +54,7 @@ dependencies = [
"deprecation>=2.1.0, <2.2.0",
"flask>=2.2.5, <4.0.0",
"flask-appbuilder>=5.2.2, <6.0.0",
- "flask-caching>=2.4.1, <3",
+ "flask-caching>=2.5.0, <3",
"flask-compress>=1.13, <2.0",
"flask-talisman>=1.0.0, <2.0",
"flask-login>=0.6.0, < 1.0",
diff --git a/requirements/base.txt b/requirements/base.txt
index 71c6b581bfe..2492f523209 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -40,7 +40,7 @@ brotli==1.2.0
# via
# -r requirements/base.in
# flask-compress
-cachelib==0.13.0
+cachelib==0.17.0
# via
# flask-caching
# flask-session
@@ -105,7 +105,7 @@ et-xmlfile==2.0.0
# via openpyxl
filelock==3.20.3
# via -r requirements/base.in
-flask==2.3.3
+flask==3.1.3
# via
# apache-superset (pyproject.toml)
# flask-appbuilder
@@ -124,9 +124,9 @@ flask-appbuilder==5.2.2
# via
# apache-superset (pyproject.toml)
# apache-superset-core
-flask-babel==3.1.0
+flask-babel==4.0.0
# via flask-appbuilder
-flask-caching==2.4.1
+flask-caching==2.5.0
# via apache-superset (pyproject.toml)
flask-compress==1.24
# via apache-superset (pyproject.toml)
@@ -218,6 +218,7 @@ markdown-it-py==3.0.0
# via rich
markupsafe==3.0.2
# via
+ # flask
# jinja2
# mako
# werkzeug
diff --git a/requirements/development.txt b/requirements/development.txt
index e8c51bb8df5..f013e637a3b 100644
--- a/requirements/development.txt
+++ b/requirements/development.txt
@@ -94,7 +94,7 @@ brotli==1.2.0
# via
# -c requirements/base-constraint.txt
# flask-compress
-cachelib==0.13.0
+cachelib==0.17.0
# via
# -c requirements/base-constraint.txt
# flask-caching
@@ -247,7 +247,7 @@ filelock==3.20.3
# via
# -c requirements/base-constraint.txt
# virtualenv
-flask==2.3.3
+flask==3.1.3
# via
# -c requirements/base-constraint.txt
# apache-superset
@@ -269,11 +269,11 @@ flask-appbuilder==5.2.2
# -c requirements/base-constraint.txt
# apache-superset
# apache-superset-core
-flask-babel==3.1.0
+flask-babel==4.0.0
# via
# -c requirements/base-constraint.txt
# flask-appbuilder
-flask-caching==2.4.1
+flask-caching==2.5.0
# via
# -c requirements/base-constraint.txt
# apache-superset
@@ -524,6 +524,7 @@ markdown-it-py==3.0.0
markupsafe==3.0.2
# via
# -c requirements/base-constraint.txt
+ # flask
# jinja2
# mako
# werkzeug
diff --git a/superset/extensions/metastore_cache.py
b/superset/extensions/metastore_cache.py
index 0c36f8f2d0c..17ba8b80676 100644
--- a/superset/extensions/metastore_cache.py
+++ b/superset/extensions/metastore_cache.py
@@ -44,8 +44,9 @@ class SupersetMetastoreCache(BaseCache):
namespace: UUID,
codec: KeyValueCodec,
default_timeout: int = 300,
+ ignore_delete_many_errors: bool = False,
) -> None:
- super().__init__(default_timeout)
+ super().__init__(default_timeout, ignore_delete_many_errors)
self.namespace = namespace
self.codec = codec
diff --git a/superset/utils/cache.py b/superset/utils/cache.py
index 647c9d5885b..fb0d31811c8 100644
--- a/superset/utils/cache.py
+++ b/superset/utils/cache.py
@@ -325,7 +325,7 @@ def etag_cache( # noqa: C901
wrapper.uncached = f # type: ignore
wrapper.cache_timeout = timeout # type: ignore
wrapper.make_cache_key = cache._memoize_make_cache_key( # type:
ignore # pylint: disable=protected-access
- make_name=None, timeout=timeout,
hash_method=configurable_hash_method
+ make_name=None, hash_method=configurable_hash_method
)
return wrapper
diff --git a/superset/utils/cache_manager.py b/superset/utils/cache_manager.py
index 00dda0fd38e..d6e299d7737 100644
--- a/superset/utils/cache_manager.py
+++ b/superset/utils/cache_manager.py
@@ -147,16 +147,12 @@ class SupersetCache(Cache):
def _memoize_make_cache_key(
self,
make_name: Callable[..., Any] | None = None,
- timeout: Callable[..., Any] | None = None,
- forced_update: bool = False,
hash_method: Callable[..., Any] = configurable_hash_method,
source_check: bool | None = False,
args_to_ignore: Any | None = None,
) -> Callable[..., Any]:
return super()._memoize_make_cache_key(
make_name=make_name,
- timeout=timeout,
- forced_update=forced_update,
hash_method=hash_method,
source_check=source_check,
args_to_ignore=args_to_ignore,
diff --git a/tests/integration_tests/dashboard_tests.py
b/tests/integration_tests/dashboard_tests.py
index d664839c757..8d3ae043f22 100644
--- a/tests/integration_tests/dashboard_tests.py
+++ b/tests/integration_tests/dashboard_tests.py
@@ -23,7 +23,8 @@ from unittest.mock import MagicMock
from urllib.parse import parse_qs, urlparse
import pytest
-from flask import Response, escape, url_for
+from flask import Response, url_for
+from markupsafe import escape
from sqlalchemy import func
from superset import db, security_manager
diff --git
a/tests/integration_tests/dashboards/security/security_dataset_tests.py
b/tests/integration_tests/dashboards/security/security_dataset_tests.py
index 984464a5964..3a45432d86e 100644
--- a/tests/integration_tests/dashboards/security/security_dataset_tests.py
+++ b/tests/integration_tests/dashboards/security/security_dataset_tests.py
@@ -18,10 +18,7 @@
import pytest
import rison
-from flask import (
- current_app,
- escape, # noqa: F401
-)
+from flask import current_app
from superset.daos.dashboard import DashboardDAO
from superset.utils import json
diff --git a/tests/unit_tests/utils/test_cache_manager.py
b/tests/unit_tests/utils/test_cache_manager.py
index b7b10e4506e..2d7f3d66f18 100644
--- a/tests/unit_tests/utils/test_cache_manager.py
+++ b/tests/unit_tests/utils/test_cache_manager.py
@@ -129,7 +129,7 @@ def
test_superset_cache_memoize_make_cache_key_uses_configurable_hash():
"_memoize_make_cache_key",
return_value=lambda *args, **kwargs: "cache_key",
) as mock_make_key:
- cache._memoize_make_cache_key(make_name=None, timeout=300)
+ cache._memoize_make_cache_key(make_name=None)
mock_make_key.assert_called_once()
call_kwargs = mock_make_key.call_args[1]
@@ -145,9 +145,7 @@ def
test_superset_cache_memoize_make_cache_key_allows_explicit_hash():
"_memoize_make_cache_key",
return_value=lambda *args, **kwargs: "cache_key",
) as mock_make_key:
- cache._memoize_make_cache_key(
- make_name=None, timeout=300, hash_method=hashlib.md5
- )
+ cache._memoize_make_cache_key(make_name=None, hash_method=hashlib.md5)
mock_make_key.assert_called_once()
call_kwargs = mock_make_key.call_args[1]