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')"