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 2025/10/27 10:03:23 UTC
(superset) branch master updated: fix: unpin holidays and prophet (#35771)
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 51aad52e6c fix: unpin holidays and prophet (#35771)
51aad52e6c is described below
commit 51aad52e6c4be14bb682e31654d09056545154c1
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Mon Oct 27 10:03:16 2025 +0000
fix: unpin holidays and prophet (#35771)
Co-authored-by: Claude <no...@anthropic.com>
---
pyproject.toml | 6 +++---
requirements/base.txt | 4 +---
requirements/development.txt | 8 ++------
tests/unit_tests/utils/date_parser_tests.py | 21 ++++++++++++++++-----
4 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 402325fc30..743b53a1f1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -60,8 +60,8 @@ dependencies = [
"greenlet>=3.0.3, <=3.1.1",
"gunicorn>=22.0.0; sys_platform != 'win32'",
"hashids>=1.3.1, <2",
- # known issue with holidays 0.26.0 and above related to prophet lib #25017
- "holidays>=0.25, <0.26",
+ # holidays>=0.45 required for security fix
+ "holidays>=0.45, <1",
"humanize",
"isodate",
"jsonpath-ng>=1.6.1, <2",
@@ -172,7 +172,7 @@ playwright = ["playwright>=1.37.0, <2"]
postgres = ["psycopg2-binary==2.9.6"]
presto = ["pyhive[presto]>=0.6.5"]
trino = ["trino>=0.328.0"]
-prophet = ["prophet>=1.1.5, <2"]
+prophet = ["prophet>=1.1.6, <2"]
redshift = ["sqlalchemy-redshift>=0.8.1, <0.9"]
risingwave = ["sqlalchemy-risingwave"]
shillelagh = ["shillelagh[all]>=1.2.18, <2"]
diff --git a/requirements/base.txt b/requirements/base.txt
index 7794e5a245..18d1bf07d6 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -166,7 +166,7 @@ h11==0.16.0
# via wsproto
hashids==1.3.1
# via apache-superset (pyproject.toml)
-holidays==0.25
+holidays==0.82
# via apache-superset (pyproject.toml)
humanize==4.12.3
# via apache-superset (pyproject.toml)
@@ -198,8 +198,6 @@ jsonschema-specifications==2025.4.1
# openapi-schema-validator
kombu==5.5.3
# via celery
-korean-lunar-calendar==0.3.1
- # via holidays
limits==5.1.0
# via flask-limiter
mako==1.3.10
diff --git a/requirements/development.txt b/requirements/development.txt
index fde1a9a6be..0a7f2f09a4 100644
--- a/requirements/development.txt
+++ b/requirements/development.txt
@@ -378,7 +378,7 @@ hashids==1.3.1
# via
# -c requirements/base-constraint.txt
# apache-superset
-holidays==0.25
+holidays==0.82
# via
# -c requirements/base-constraint.txt
# apache-superset
@@ -451,10 +451,6 @@ kombu==5.5.3
# via
# -c requirements/base-constraint.txt
# celery
-korean-lunar-calendar==0.3.1
- # via
- # -c requirements/base-constraint.txt
- # holidays
lazy-object-proxy==1.10.0
# via openapi-spec-validator
limits==5.1.0
@@ -641,7 +637,7 @@ prompt-toolkit==3.0.51
# via
# -c requirements/base-constraint.txt
# click-repl
-prophet==1.1.5
+prophet==1.2.0
# via apache-superset
proto-plus==1.25.0
# via
diff --git a/tests/unit_tests/utils/date_parser_tests.py b/tests/unit_tests/utils/date_parser_tests.py
index 824b21d167..c44b36fc91 100644
--- a/tests/unit_tests/utils/date_parser_tests.py
+++ b/tests/unit_tests/utils/date_parser_tests.py
@@ -447,11 +447,22 @@ def test_datetime_eval() -> None:
expected = datetime(2018, 9, 3, 0, 0, 0)
assert result == expected
- result = datetime_eval(
- "holiday('Eid al-Fitr', datetime('2000-01-01T00:00:00'), 'SA')"
- )
- expected = datetime(2000, 1, 8, 0, 0, 0)
- assert result == expected
+ # Saudi Arabia holidays - try both English and Arabic names as the default
+ # language varies by environment (ar in some envs, en_US in CI)
+ sa_holiday_test_passed = False
+ for holiday_name in ["Eid al-Fitr", "عطلة عيد الفطر"]:
+ try:
+ result = datetime_eval(
+ f"holiday('{holiday_name}', datetime('2000-01-01T00:00:00'), 'SA')"
+ )
+ expected = datetime(2000, 1, 8, 0, 0, 0)
+ assert result == expected
+ sa_holiday_test_passed = True
+ break
+ except ValueError:
+ continue
+
+ assert sa_holiday_test_passed
result = datetime_eval(
"holiday('Boxing day', datetime('2018-01-01T00:00:00'), 'UK')"