This is an automated email from the ASF dual-hosted git repository.

villebro 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 55bf72a  chore(prophet): bump prophet to 1.0.1 (#14228)
55bf72a is described below

commit 55bf72aead4fd27f49ecec4b4ef0cfbfc74733cc
Author: Ville Brofeldt <[email protected]>
AuthorDate: Tue Apr 20 15:55:55 2021 +0300

    chore(prophet): bump prophet to 1.0.1 (#14228)
---
 setup.py                                |  2 +-
 superset/utils/pandas_postprocessing.py |  6 +++---
 tests/charts/api_tests.py               |  2 +-
 tests/pandas_postprocessing_tests.py    | 11 ++++++++++-
 4 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/setup.py b/setup.py
index 68e33df..ff01c68 100644
--- a/setup.py
+++ b/setup.py
@@ -145,7 +145,7 @@ setup(
         "postgres": ["psycopg2-binary==2.8.5"],
         "presto": ["pyhive[presto]>=0.4.0"],
         "trino": ["sqlalchemy-trino>=0.2"],
-        "prophet": ["fbprophet>=0.7.1, <0.8", "pystan<3.0"],
+        "prophet": ["prophet>=1.0.1, <1.1", "pystan<3.0"],
         "redshift": ["sqlalchemy-redshift>=0.8.1, < 0.9"],
         "snowflake": ["snowflake-sqlalchemy>=1.2.3, <1.3"],
         "teradata": ["sqlalchemy-teradata==0.9.0.dev0"],
diff --git a/superset/utils/pandas_postprocessing.py 
b/superset/utils/pandas_postprocessing.py
index 6a5a74e..f352e5f 100644
--- a/superset/utils/pandas_postprocessing.py
+++ b/superset/utils/pandas_postprocessing.py
@@ -631,14 +631,14 @@ def _prophet_fit_and_predict(  # pylint: 
disable=too-many-arguments
     Fit a prophet model and return a DataFrame with predicted results.
     """
     try:
-        prophet_logger = logging.getLogger("fbprophet.plot")
+        prophet_logger = logging.getLogger("prophet.plot")
 
         prophet_logger.setLevel(logging.CRITICAL)
-        from fbprophet import Prophet  # pylint: disable=import-error
+        from prophet import Prophet  # pylint: disable=import-error
 
         prophet_logger.setLevel(logging.NOTSET)
     except ModuleNotFoundError:
-        raise QueryObjectValidationError(_("`fbprophet` package not 
installed"))
+        raise QueryObjectValidationError(_("`prophet` package not installed"))
     model = Prophet(
         interval_width=confidence_interval,
         yearly_seasonality=yearly_seasonality,
diff --git a/tests/charts/api_tests.py b/tests/charts/api_tests.py
index 6c9cfe1..d3b1c97 100644
--- a/tests/charts/api_tests.py
+++ b/tests/charts/api_tests.py
@@ -1241,7 +1241,7 @@ class TestChartApi(SupersetTestCase, 
ApiOwnersTestCaseMixin, InsertChartMixin):
         """
         Chart data API: Ensure prophet post transformation works
         """
-        pytest.importorskip("fbprophet")
+        pytest.importorskip("prophet")
         self.login(username="admin")
         request_payload = get_query_context("birth_names")
         time_grain = "P1Y"
diff --git a/tests/pandas_postprocessing_tests.py 
b/tests/pandas_postprocessing_tests.py
index 030b177..73d3d7c 100644
--- a/tests/pandas_postprocessing_tests.py
+++ b/tests/pandas_postprocessing_tests.py
@@ -16,6 +16,7 @@
 # under the License.
 # isort:skip_file
 from datetime import datetime
+from importlib.util import find_spec
 import math
 from typing import Any, List, Optional
 
@@ -560,7 +561,7 @@ class TestPostProcessing(SupersetTestCase):
         self.assertListEqual(processed_df["pct_a"].tolist(), [0.25, 0.75])
 
     def test_prophet_valid(self):
-        pytest.importorskip("fbprophet")
+        pytest.importorskip("prophet")
 
         df = proc.prophet(
             df=prophet_df, time_grain="P1M", periods=3, confidence_interval=0.9
@@ -588,6 +589,14 @@ class TestPostProcessing(SupersetTestCase):
         assert df[DTTM_ALIAS].iloc[-1].to_pydatetime() == datetime(2022, 5, 31)
         assert len(df) == 9
 
+    def test_prophet_import(self):
+        prophet = find_spec("prophet")
+        if prophet is None:
+            with pytest.raises(QueryObjectValidationError):
+                proc.prophet(
+                    df=prophet_df, time_grain="P1M", periods=3, 
confidence_interval=0.9
+                )
+
     def test_prophet_missing_temporal_column(self):
         df = prophet_df.drop(DTTM_ALIAS, axis=1)
 

Reply via email to