neoprophet 1.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. neoprophet-1.4.0/LICENSE +21 -0
  2. neoprophet-1.4.0/MANIFEST.in +13 -0
  3. neoprophet-1.4.0/PKG-INFO +88 -0
  4. neoprophet-1.4.0/README.md +42 -0
  5. neoprophet-1.4.0/neoprophet.egg-info/PKG-INFO +88 -0
  6. neoprophet-1.4.0/neoprophet.egg-info/SOURCES.txt +42 -0
  7. neoprophet-1.4.0/neoprophet.egg-info/dependency_links.txt +1 -0
  8. neoprophet-1.4.0/neoprophet.egg-info/not-zip-safe +1 -0
  9. neoprophet-1.4.0/neoprophet.egg-info/requires.txt +26 -0
  10. neoprophet-1.4.0/neoprophet.egg-info/top_level.txt +1 -0
  11. neoprophet-1.4.0/prophet/__init__.py +47 -0
  12. neoprophet-1.4.0/prophet/__version__.py +1 -0
  13. neoprophet-1.4.0/prophet/diagnostics.py +760 -0
  14. neoprophet-1.4.0/prophet/forecaster.py +2180 -0
  15. neoprophet-1.4.0/prophet/make_holidays.py +81 -0
  16. neoprophet-1.4.0/prophet/mlx_backend.py +857 -0
  17. neoprophet-1.4.0/prophet/models.py +388 -0
  18. neoprophet-1.4.0/prophet/plot.py +2437 -0
  19. neoprophet-1.4.0/prophet/py.typed +0 -0
  20. neoprophet-1.4.0/prophet/quick.py +859 -0
  21. neoprophet-1.4.0/prophet/serialize.py +214 -0
  22. neoprophet-1.4.0/prophet/tests/__init__.py +0 -0
  23. neoprophet-1.4.0/prophet/tests/conftest.py +57 -0
  24. neoprophet-1.4.0/prophet/tests/data.csv +511 -0
  25. neoprophet-1.4.0/prophet/tests/data2.csv +864 -0
  26. neoprophet-1.4.0/prophet/tests/data3.csv +71 -0
  27. neoprophet-1.4.0/prophet/tests/serialized_model_v0.6.1.dev0.json +1 -0
  28. neoprophet-1.4.0/prophet/tests/serialized_model_v0.7.1.json +1 -0
  29. neoprophet-1.4.0/prophet/tests/serialized_model_v1.0.1.json +1 -0
  30. neoprophet-1.4.0/prophet/tests/test_diagnostics.py +403 -0
  31. neoprophet-1.4.0/prophet/tests/test_mlx_backend.py +197 -0
  32. neoprophet-1.4.0/prophet/tests/test_performance.py +210 -0
  33. neoprophet-1.4.0/prophet/tests/test_plot.py +591 -0
  34. neoprophet-1.4.0/prophet/tests/test_prophet.py +984 -0
  35. neoprophet-1.4.0/prophet/tests/test_quick.py +429 -0
  36. neoprophet-1.4.0/prophet/tests/test_serialize.py +148 -0
  37. neoprophet-1.4.0/prophet/tests/test_tuning.py +325 -0
  38. neoprophet-1.4.0/prophet/tests/test_utilities.py +27 -0
  39. neoprophet-1.4.0/prophet/tuning.py +705 -0
  40. neoprophet-1.4.0/prophet/utilities.py +110 -0
  41. neoprophet-1.4.0/pyproject.toml +73 -0
  42. neoprophet-1.4.0/setup.cfg +4 -0
  43. neoprophet-1.4.0/setup.py +224 -0
  44. neoprophet-1.4.0/stan/prophet.stan +143 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Facebook, Inc. and its affiliates.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+ include stan/*.stan
2
+ include LICENSE
3
+ include pyproject.toml
4
+
5
+ # Ensure in-place built models do not get included in the source dist.
6
+ prune prophet/stan_model
7
+
8
+ # Necessary for tests to run
9
+ include prophet/tests/*.csv
10
+ include prophet/tests/*.json
11
+
12
+ # PEP 561
13
+ include prophet/py.typed
@@ -0,0 +1,88 @@
1
+ Metadata-Version: 2.4
2
+ Name: neoprophet
3
+ Version: 1.4.0
4
+ Summary: Prophet forecasting that is easier to use, clearer to read and faster at scale
5
+ Author-email: "Sean J. Taylor" <sjtz@pm.me>, Ben Letham <bletham@fb.com>
6
+ Maintainer: Behnam
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/CodeWithBehnam/NeoProphet
9
+ Project-URL: Repository, https://github.com/CodeWithBehnam/NeoProphet
10
+ Project-URL: Issues, https://github.com/CodeWithBehnam/NeoProphet/issues
11
+ Project-URL: Upstream documentation, https://facebook.github.io/prophet/
12
+ Keywords: forecasting,time series,prophet,stan,mlx
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
20
+ Classifier: Typing :: Typed
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: cmdstanpy>=1.0.4
25
+ Requires-Dist: numpy>=1.21.6
26
+ Requires-Dist: matplotlib>=3.5.3
27
+ Requires-Dist: pandas>=1.3.5
28
+ Requires-Dist: holidays<1,>=0.25
29
+ Requires-Dist: tqdm>=4.63.2
30
+ Provides-Extra: dev
31
+ Requires-Dist: setuptools>=64; extra == "dev"
32
+ Requires-Dist: wheel; extra == "dev"
33
+ Requires-Dist: pytest; extra == "dev"
34
+ Requires-Dist: jupyterlab; extra == "dev"
35
+ Requires-Dist: nbconvert; extra == "dev"
36
+ Requires-Dist: plotly; extra == "dev"
37
+ Requires-Dist: pyrefly==0.50.0; extra == "dev"
38
+ Requires-Dist: ipykernel; extra == "dev"
39
+ Requires-Dist: ipywidgets; extra == "dev"
40
+ Provides-Extra: mlx
41
+ Requires-Dist: mlx>=0.32.3; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "mlx"
42
+ Provides-Extra: parallel
43
+ Requires-Dist: dask[dataframe]; extra == "parallel"
44
+ Requires-Dist: distributed; extra == "parallel"
45
+ Dynamic: license-file
46
+
47
+ # NeoProphet
48
+
49
+ **Prophet forecasting that is easier to use, clearer to read and faster at scale.**
50
+
51
+ NeoProphet is a drop-in fork of [Facebook Prophet](https://github.com/facebook/prophet) with a one-call API, self-explaining charts, built-in tuning and an experimental Apple Silicon GPU backend for fitting many series at once.
52
+
53
+ ![A NeoProphet forecast with history and forecast zones, changepoint callouts and a plain-English title](https://raw.githubusercontent.com/CodeWithBehnam/NeoProphet/main/.github/assets/forecast.png)
54
+
55
+ ## Install
56
+
57
+ ```bash
58
+ pip install neoprophet # or: uv add neoprophet
59
+ pip install "neoprophet[mlx]" # adds the MLX backend on Apple Silicon
60
+ ```
61
+
62
+ NeoProphet installs the `prophet` import package, so it replaces upstream Prophet: uninstall `prophet` first and do not install both in one environment. Wheels include the compiled Stan model for macOS (Intel and Apple Silicon), Linux (x86-64 and ARM64) and Windows.
63
+
64
+ ## Quick start
65
+
66
+ ```python
67
+ import pandas as pd
68
+ from prophet import forecast
69
+
70
+ df = pd.read_csv("https://raw.githubusercontent.com/CodeWithBehnam/NeoProphet/main/examples/example_wp_log_peyton_manning.csv")
71
+ result = forecast(df, horizon="12 months", country_holidays="US")
72
+ result.forecast # ds, yhat, yhat_lower, yhat_upper for the future
73
+ result.plot() # the chart above
74
+ result.plot_components() # trend, holidays, weekly and yearly patterns
75
+ ```
76
+
77
+ - `forecast(..., tune=True)` chooses the prior scales and seasonality mode by parallel cross-validation.
78
+ - `prophet.mlx_backend.fit_many(dfs)` fits many series in one batch on an Apple Silicon GPU (experimental; linear and flat growth, MAP only).
79
+ - The classic API is unchanged: `from prophet import Prophet` works as before.
80
+
81
+ ## Links
82
+
83
+ - Source, benchmarks and notebooks: https://github.com/CodeWithBehnam/NeoProphet
84
+ - Issues: https://github.com/CodeWithBehnam/NeoProphet/issues
85
+ - Upstream Prophet documentation: https://facebook.github.io/prophet/
86
+ - Paper: Taylor and Letham (2018), *Forecasting at Scale*, The American Statistician 72(1):37-45.
87
+
88
+ Released under the MIT licence. Prophet was created by Sean J. Taylor and Ben Letham at Facebook.
@@ -0,0 +1,42 @@
1
+ # NeoProphet
2
+
3
+ **Prophet forecasting that is easier to use, clearer to read and faster at scale.**
4
+
5
+ NeoProphet is a drop-in fork of [Facebook Prophet](https://github.com/facebook/prophet) with a one-call API, self-explaining charts, built-in tuning and an experimental Apple Silicon GPU backend for fitting many series at once.
6
+
7
+ ![A NeoProphet forecast with history and forecast zones, changepoint callouts and a plain-English title](https://raw.githubusercontent.com/CodeWithBehnam/NeoProphet/main/.github/assets/forecast.png)
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ pip install neoprophet # or: uv add neoprophet
13
+ pip install "neoprophet[mlx]" # adds the MLX backend on Apple Silicon
14
+ ```
15
+
16
+ NeoProphet installs the `prophet` import package, so it replaces upstream Prophet: uninstall `prophet` first and do not install both in one environment. Wheels include the compiled Stan model for macOS (Intel and Apple Silicon), Linux (x86-64 and ARM64) and Windows.
17
+
18
+ ## Quick start
19
+
20
+ ```python
21
+ import pandas as pd
22
+ from prophet import forecast
23
+
24
+ df = pd.read_csv("https://raw.githubusercontent.com/CodeWithBehnam/NeoProphet/main/examples/example_wp_log_peyton_manning.csv")
25
+ result = forecast(df, horizon="12 months", country_holidays="US")
26
+ result.forecast # ds, yhat, yhat_lower, yhat_upper for the future
27
+ result.plot() # the chart above
28
+ result.plot_components() # trend, holidays, weekly and yearly patterns
29
+ ```
30
+
31
+ - `forecast(..., tune=True)` chooses the prior scales and seasonality mode by parallel cross-validation.
32
+ - `prophet.mlx_backend.fit_many(dfs)` fits many series in one batch on an Apple Silicon GPU (experimental; linear and flat growth, MAP only).
33
+ - The classic API is unchanged: `from prophet import Prophet` works as before.
34
+
35
+ ## Links
36
+
37
+ - Source, benchmarks and notebooks: https://github.com/CodeWithBehnam/NeoProphet
38
+ - Issues: https://github.com/CodeWithBehnam/NeoProphet/issues
39
+ - Upstream Prophet documentation: https://facebook.github.io/prophet/
40
+ - Paper: Taylor and Letham (2018), *Forecasting at Scale*, The American Statistician 72(1):37-45.
41
+
42
+ Released under the MIT licence. Prophet was created by Sean J. Taylor and Ben Letham at Facebook.
@@ -0,0 +1,88 @@
1
+ Metadata-Version: 2.4
2
+ Name: neoprophet
3
+ Version: 1.4.0
4
+ Summary: Prophet forecasting that is easier to use, clearer to read and faster at scale
5
+ Author-email: "Sean J. Taylor" <sjtz@pm.me>, Ben Letham <bletham@fb.com>
6
+ Maintainer: Behnam
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/CodeWithBehnam/NeoProphet
9
+ Project-URL: Repository, https://github.com/CodeWithBehnam/NeoProphet
10
+ Project-URL: Issues, https://github.com/CodeWithBehnam/NeoProphet/issues
11
+ Project-URL: Upstream documentation, https://facebook.github.io/prophet/
12
+ Keywords: forecasting,time series,prophet,stan,mlx
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
20
+ Classifier: Typing :: Typed
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: cmdstanpy>=1.0.4
25
+ Requires-Dist: numpy>=1.21.6
26
+ Requires-Dist: matplotlib>=3.5.3
27
+ Requires-Dist: pandas>=1.3.5
28
+ Requires-Dist: holidays<1,>=0.25
29
+ Requires-Dist: tqdm>=4.63.2
30
+ Provides-Extra: dev
31
+ Requires-Dist: setuptools>=64; extra == "dev"
32
+ Requires-Dist: wheel; extra == "dev"
33
+ Requires-Dist: pytest; extra == "dev"
34
+ Requires-Dist: jupyterlab; extra == "dev"
35
+ Requires-Dist: nbconvert; extra == "dev"
36
+ Requires-Dist: plotly; extra == "dev"
37
+ Requires-Dist: pyrefly==0.50.0; extra == "dev"
38
+ Requires-Dist: ipykernel; extra == "dev"
39
+ Requires-Dist: ipywidgets; extra == "dev"
40
+ Provides-Extra: mlx
41
+ Requires-Dist: mlx>=0.32.3; (sys_platform == "darwin" and platform_machine == "arm64") and extra == "mlx"
42
+ Provides-Extra: parallel
43
+ Requires-Dist: dask[dataframe]; extra == "parallel"
44
+ Requires-Dist: distributed; extra == "parallel"
45
+ Dynamic: license-file
46
+
47
+ # NeoProphet
48
+
49
+ **Prophet forecasting that is easier to use, clearer to read and faster at scale.**
50
+
51
+ NeoProphet is a drop-in fork of [Facebook Prophet](https://github.com/facebook/prophet) with a one-call API, self-explaining charts, built-in tuning and an experimental Apple Silicon GPU backend for fitting many series at once.
52
+
53
+ ![A NeoProphet forecast with history and forecast zones, changepoint callouts and a plain-English title](https://raw.githubusercontent.com/CodeWithBehnam/NeoProphet/main/.github/assets/forecast.png)
54
+
55
+ ## Install
56
+
57
+ ```bash
58
+ pip install neoprophet # or: uv add neoprophet
59
+ pip install "neoprophet[mlx]" # adds the MLX backend on Apple Silicon
60
+ ```
61
+
62
+ NeoProphet installs the `prophet` import package, so it replaces upstream Prophet: uninstall `prophet` first and do not install both in one environment. Wheels include the compiled Stan model for macOS (Intel and Apple Silicon), Linux (x86-64 and ARM64) and Windows.
63
+
64
+ ## Quick start
65
+
66
+ ```python
67
+ import pandas as pd
68
+ from prophet import forecast
69
+
70
+ df = pd.read_csv("https://raw.githubusercontent.com/CodeWithBehnam/NeoProphet/main/examples/example_wp_log_peyton_manning.csv")
71
+ result = forecast(df, horizon="12 months", country_holidays="US")
72
+ result.forecast # ds, yhat, yhat_lower, yhat_upper for the future
73
+ result.plot() # the chart above
74
+ result.plot_components() # trend, holidays, weekly and yearly patterns
75
+ ```
76
+
77
+ - `forecast(..., tune=True)` chooses the prior scales and seasonality mode by parallel cross-validation.
78
+ - `prophet.mlx_backend.fit_many(dfs)` fits many series in one batch on an Apple Silicon GPU (experimental; linear and flat growth, MAP only).
79
+ - The classic API is unchanged: `from prophet import Prophet` works as before.
80
+
81
+ ## Links
82
+
83
+ - Source, benchmarks and notebooks: https://github.com/CodeWithBehnam/NeoProphet
84
+ - Issues: https://github.com/CodeWithBehnam/NeoProphet/issues
85
+ - Upstream Prophet documentation: https://facebook.github.io/prophet/
86
+ - Paper: Taylor and Letham (2018), *Forecasting at Scale*, The American Statistician 72(1):37-45.
87
+
88
+ Released under the MIT licence. Prophet was created by Sean J. Taylor and Ben Letham at Facebook.
@@ -0,0 +1,42 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.py
6
+ neoprophet.egg-info/PKG-INFO
7
+ neoprophet.egg-info/SOURCES.txt
8
+ neoprophet.egg-info/dependency_links.txt
9
+ neoprophet.egg-info/not-zip-safe
10
+ neoprophet.egg-info/requires.txt
11
+ neoprophet.egg-info/top_level.txt
12
+ prophet/__init__.py
13
+ prophet/__version__.py
14
+ prophet/diagnostics.py
15
+ prophet/forecaster.py
16
+ prophet/make_holidays.py
17
+ prophet/mlx_backend.py
18
+ prophet/models.py
19
+ prophet/plot.py
20
+ prophet/py.typed
21
+ prophet/quick.py
22
+ prophet/serialize.py
23
+ prophet/tuning.py
24
+ prophet/utilities.py
25
+ prophet/tests/__init__.py
26
+ prophet/tests/conftest.py
27
+ prophet/tests/data.csv
28
+ prophet/tests/data2.csv
29
+ prophet/tests/data3.csv
30
+ prophet/tests/serialized_model_v0.6.1.dev0.json
31
+ prophet/tests/serialized_model_v0.7.1.json
32
+ prophet/tests/serialized_model_v1.0.1.json
33
+ prophet/tests/test_diagnostics.py
34
+ prophet/tests/test_mlx_backend.py
35
+ prophet/tests/test_performance.py
36
+ prophet/tests/test_plot.py
37
+ prophet/tests/test_prophet.py
38
+ prophet/tests/test_quick.py
39
+ prophet/tests/test_serialize.py
40
+ prophet/tests/test_tuning.py
41
+ prophet/tests/test_utilities.py
42
+ stan/prophet.stan
@@ -0,0 +1,26 @@
1
+ cmdstanpy>=1.0.4
2
+ numpy>=1.21.6
3
+ matplotlib>=3.5.3
4
+ pandas>=1.3.5
5
+ holidays<1,>=0.25
6
+ tqdm>=4.63.2
7
+
8
+ [dev]
9
+ setuptools>=64
10
+ wheel
11
+ pytest
12
+ jupyterlab
13
+ nbconvert
14
+ plotly
15
+ pyrefly==0.50.0
16
+ ipykernel
17
+ ipywidgets
18
+
19
+ [mlx]
20
+
21
+ [mlx:sys_platform == "darwin" and platform_machine == "arm64"]
22
+ mlx>=0.32.3
23
+
24
+ [parallel]
25
+ dask[dataframe]
26
+ distributed
@@ -0,0 +1 @@
1
+ prophet
@@ -0,0 +1,47 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc.
2
+ # All rights reserved.
3
+ #
4
+ # This source code is licensed under the BSD-style license found in the
5
+ # LICENSE file in the root directory of this source tree. An additional grant
6
+ # of patent rights can be found in the PATENTS file in the same directory.
7
+
8
+ from prophet.__version__ import __version__
9
+ from prophet.forecaster import Prophet
10
+ from prophet.quick import (
11
+ AllNullValuesError,
12
+ ColumnSelectionError,
13
+ DuplicateTimestampsError,
14
+ ForecastInputError,
15
+ ForecastResult,
16
+ ForecastSummary,
17
+ FrequencyInferenceError,
18
+ HorizonError,
19
+ InsufficientDataError,
20
+ NonNumericValuesError,
21
+ UnparseableDatesError,
22
+ forecast,
23
+ infer_frequency,
24
+ normalise_input,
25
+ )
26
+ from prophet.tuning import TuningResult, tune
27
+
28
+ __all__ = [
29
+ "AllNullValuesError",
30
+ "ColumnSelectionError",
31
+ "DuplicateTimestampsError",
32
+ "ForecastInputError",
33
+ "ForecastResult",
34
+ "ForecastSummary",
35
+ "FrequencyInferenceError",
36
+ "HorizonError",
37
+ "InsufficientDataError",
38
+ "NonNumericValuesError",
39
+ "Prophet",
40
+ "TuningResult",
41
+ "UnparseableDatesError",
42
+ "__version__",
43
+ "forecast",
44
+ "infer_frequency",
45
+ "normalise_input",
46
+ "tune",
47
+ ]
@@ -0,0 +1 @@
1
+ __version__ = "1.4.0"