Skip to main content

analytic-prophet

tests

A reimplementation of Facebook Prophet's fitting engine that replaces Stan with a hand-derived, closed-form gradient and a small C++ core.

It fits the same model, and it fits it better: our optimum is ahead of Prophet's by its own objective at every size measured, and on held-out M4 series our forecasts are more accurate. Fitting is faster and uses less memory, which is what the analytic gradient was for.

Status: early development. The model is feature-complete against Prophet's, but there is no MCMC and no plotting, so this is not yet a drop-in replacement. See what this is not.

three held-out forecasts: the largest advantage, the median, and one Prophet wins

What this shows, and what it does not. Three M4 series, forecast past a cutoff neither model saw. Each coloured line is continuous through the cutoff: to its left the model's fit to data it was shown, to its right its forecast. The actual values over the horizon are drawn in black, and the bands are the nominal 80% intervals.

They are chosen by rule, not by eye. Of Tier 2's 36 series, the ranking is taken over the 11 where a Prophet-shaped model fits at all — both implementations within 10% sMAPE held out — because a panel where both miss badly shows the difficulty of the series rather than the difference between two optimizers. Within those: the series where our cross-validated RMSE beats Prophet's by the most, the one at the median of that ranking, and the one where Prophet beats us by the most.

The top panel is the mechanism; the bottom two are the typical case. Prophet's optimizer stops short on the non-differentiable objective, and that costs most where the trend is doing the work — a regime change, as in the top panel, where the L1 kink is load-bearing. Elsewhere both implementations fit nearly the same model and the two lines sit on top of each other. Across all 36 series the median RMSE advantage is 0.45%, and past two years of history predictions differ by 0.17–0.59% of the series scale. A reader who runs this on their own data should expect the bottom two panels, not the top one.

Neither implementation's intervals are well calibrated. On this corpus they contain about a third of the held-out points they claim four fifths of — mean coverage 0.356 for ours and 0.341 for Prophet's. That is a property of the model on long horizons, it is shared, and it is larger than anything separating the two.

Regenerate it with python evaluation/showcase.py; the output is byte-identical because both sides are seeded.

pip install analytic-prophet        # once published — see below

The wheels carry the compiled core, so there is nothing to build: no compiler, no Eigen, no LBFGSpp. Linux and macOS, Python 3.9–3.14 — the versions and platforms CI actually runs the suite on. Windows is not built, because nothing here has ever been tested there; it falls back to the source distribution, which does need a C++17 compiler.

Not on PyPI yet (#97). The wheels, their verification and the release workflow are in place and run from a tag; the publish step waits on a maintainer's approval and on the name being registered. Until then, clone:

git clone https://github.com/adlyZaroui/analytic-prophet
cd analytic-prophet
brew install eigen lbfgspp          # or equivalent; header-only, nothing is linked
pip install -e '.[dev]'             # see the caveat below if you are on macOS

The install is optional, and on macOS it can succeed without working. pytest and everything in this repository run from a fresh clone with no install at all, because pyproject.toml puts the right directories on pythonpath. The editable install is only for importing analytic_prophet from somewhere else — and on macOS with Python 3.13+ it reports success and then does not import, because setuptools writes the editable .pth with UF_HIDDEN and 3.13 hardened site to skip hidden .pth files. tests/test_packaging.py::test_an_editable_install_actually_imports is what catches it. More on it below.

import pandas as pd
from analytic_prophet import AnalyticProphet

df = pd.read_csv("tests/data/peyton_manning.csv")     # columns: ds, y

model = AnalyticProphet(seasonality_mode="multiplicative")
model.fit(df)                                          # the compiled core, built on first use
# model.fit(df, backend="python")                      # the readable reference path, no compiler

future = model.make_future_dataframe(periods=90)
forecast = model.predict(future)
forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail()

What it does

No Stan. Prophet ships a compiled Stan model and reaches it through cmdstanpy, which spawns a subprocess for every fit. This carries neither. The model is Python, the arithmetic is a small C++ extension compiled on demand from one source file, and nothing is linked beyond two header-only libraries.

No Stan toolchain to deploy. pip install needs no cmdstan, no model compilation, no subprocess at fit time. The C++ core is built on demand: the first fit(df) on a machine compiles optimize.cpp — about ten seconds, and it says so rather than appearing to hang — then caches the result and reuses it forever after (#108). The cache is keyed by a digest of the source and the compile command, so editing optimize.cpp rebuilds and nothing else does.

Everything this project caches hangs off one root, by the same rule on every platform: $ANALYTIC_PROPHET_CACHE, else $XDG_CACHE_HOME/analytic-prophet, else ~/.cache/analytic-prophet. The compiled core goes in build/ and the M4 corpus the evaluation suite downloads goes in m4/, so one variable moves both and deleting the root is how you start over (#111).

Without a compiler the build raises, naming the one thing that is missing — and fit(df, backend="python") needs no compiler at all. The tests that need the toolchain skip rather than fail when it is absent.

An analytic gradient instead of automatic differentiation. This is the point of the project. Reverse-mode autodiff tapes a forward pass and reverses over it; the model is small and entirely explicit, so the gradient can be written down instead. Both consequences are measured rather than assumed — fitting is 1.4–10× faster than Prophet and the fit's peak memory is about a third of Prophet's at T = 2905, with the gap widening as the series grows, which is what a retained tape predicts. Predicting is faster on both of the paths described below — 1.8× on the approximate one and 2.6× on the exact one. → cost

Prophet's non-differentiable objective, handled. The Laplace prior on the changepoint rates puts Σ|δ|/τ in the posterior, which is not differentiable at δ = 0 — exactly where the optimum sits, because that prior is what drives most rates to zero. Prophet's own optimizer stops short there, and so did three others until the objective was reformulated. Splitting δ into non-negative parts makes the problem smooth with simple bounds, and the same solution. → the argument and the evidence

A better optimum, by Prophet's own objective. Scored under Stan's log_prob on identical changepoints, so only the optimizer differs:

T Prophet lp__ this implementation
300 813.351 815.337
1000 2852.768 2855.528
2905 8004.798 8005.159

→ the correctness gate

Better forecasts, held out. 36 M4 series, rolling-origin evaluation on cutoffs from Prophet's own generate_cutoffs and scored by its own performance_metrics, so neither the splits nor the definitions are ours:

median difference p
MAE −1.914 0.0063
RMSE −2.967 0.0183
MAPE −0.0007 0.0013
coverage +0.0026 0.0025
interval width +1.350 0.470

More accurate points, and higher coverage at statistically indistinguishable width — negative is better for the error rows, positive for coverage. → forecast accuracy

Two uncertainty samplers, and Prophet's default is the approximate one. This is worth knowing before comparing any interval or any prediction time. Prophet.predict(vectorized=True) is its default, and it is not a faster form of vectorized=False — it is a different computation. Prophet's own two paths disagree by about 1.4% on the interval bounds. This implementation offers both, under the same argument and the same default:

forecast = model.predict(future)                      # approximate, as Prophet defaults to
forecast = model.predict(future, vectorized=False)    # exact, and slower

yhat is identical either way — only the interval is sampled. The approximation replaces the Poisson process over the horizon with one coin per timestep and integrates the trend by a double cumulative sum; the exact sampler places changepoints in continuous time and evaluates the piecewise-linear trend from its definition. Under logistic growth the exact sampler runs regardless, and model.predicted_vectorized records which one did. → all four paths timed

Feature-complete against Prophet's model. Linear, logistic and flat growth; seasonality selected from the history by Prophet's own rule, with per-component Fourier order, prior scale, mode and condition; holidays, country holidays and extra regressors; additive and multiplicative modes throughout.

A Prophet-compatible API. The constructor takes Prophet's arguments, and the names match — changepoint_prior_scale, changepoints_t, params, make_all_seasonality_features. What is not implemented is rejected rather than silently ignored, so a ported script fails where it is actually wrong instead of at the first AttributeError.

Save and load, [fc] Prophet's own API:

from analytic_prophet.serialize import model_to_json, model_from_json

with open("model.json", "w") as handle:
    handle.write(model_to_json(model))

A round-tripped model predicts bit-identically, and carries no handle to the compiled extension — so a model fitted on one machine loads on one that has never built it.

Refitting is allowed, where Prophet.fit refuses a second call. A refit is equivalent to a fresh instance carrying the same user configuration, fit on the new data. That is a divergence, so it is a stated contract rather than an accident. → deviations

Two backends that agree to 1.5e-8. fit(df) runs the compiled core, which is the deliverable, so a script ported from Prophet keeps its fit call and gets it. fit(df, backend="python") runs the readable pure-Python reference. Both solve the same reformulated problem and follow Prophet's algorithm rule — Newton below 100 observations, L-BFGS at or above, one Newton retry when L-BFGS fails.

Arguments belonging to the backend you did not select are rejected rather than ignored, so fit(df, analytic=False) says that analytic is the Python backend's rather than quietly running the compiled one.

Verified against Stan's own density. The objective is checked to be Prophet's, not to resemble it: CmdStanModel.log_prob evaluated at our parameters must differ from ours by a constant, and it does to 1e-12. → verification

A reproducible evaluation suite. Four tiers — a correctness gate, parameter recovery on synthetic data with known truth, held-out forecast accuracy, and cost — with committed results and a generated report. One command regenerates everything. → evaluation/


What this is not

  • No MCMC. MAP estimation only; mcmc_samples > 0 is rejected rather than ignored.
  • No plotting. No plot or plot_components.
  • Not a drop-in, and here is how far off. Of Prophet's 40 public methods, 13 are the same, 8 are module-level functions here rather than methods, 15 are absent on purpose and 4 are gaps — enumerated member by member, with the attributes a fit sets, in how far from a drop-in.
  • The intervals are not well calibrated — in either implementation. On the M4 corpus the nominal 80% interval contains about a third of the points it claims four fifths of — mean coverage 0.341 for Prophet and 0.356 for this implementation. That is a property of the model on long horizons and volatile series, it is shared, and it is larger than anything separating the two. Nothing above should be read without it.

Documentation

The model what is fitted, term for term, and the proof that it is Stan's objective
The non-smooth objective the central argument: where Prophet's optimizer stops short, and why
Deviations from Prophet deliberate divergences, and the gaps still open
Evaluation report every measured number, generated from committed results
Benchmarks the fast micro-benchmarks, for running against a change
Evaluation suite the claim-level study and its methodology
Changelog what was wrong, and how it was found

Layout

analytic_prophet/
    __init__.py       re-exports the package's surface
    forecaster.py     the model
    constants.py      the numbers the model is defined by
    layout.py         where each parameter sits in the flat vector
    seasonality.py    Fourier basis, registry, selection rule
    make_holidays.py  [fc] prophet/make_holidays.py, plus the design columns
    trend.py          the three growth modes and their derivatives
    optimizer.py      projected Newton, and the stopping tolerances
    models.py         [fc] prophet/models.py — the compiled backend's loader
    build.py          compiling optimize.cpp on demand, and caching it
    serialize.py      [fc] prophet/serialize.py — save and load
    optimize.cpp      that backend
.github/workflows/    CI: the suite on every push, the tiers on request
docs/                 the model, the argument, the deviations
tests/                the suite, plus the Peyton Manning series under data/
benchmark/            fast micro-benchmarks, for running against a change
evaluation/           the claim-level study, and its generated report

forecaster.py, models.py and make_holidays.py take Prophet's own names. The other four have no Prophet counterpart, which is the point: Stan supplies the parameter layout, the derivatives and the optimizer there. Writing them down is what this project is, so they get files you can open.

The C++ source sits inside the package rather than beside it because it is the implementation, not a build input to it — where Prophet hands the problem to Stan, this hands it to a gradient written out by hand.

One rule the layout imposes, for anyone adding a test: patch a name where it is looked up, not where it is defined. analytic_prophet/__init__.py says why.


Building and testing

Requires a C++17 compiler and two header-only libraries:

brew install eigen lbfgspp          # or equivalent
pip install -e '.[dev]'
pytest                              # the whole suite, about three minutes

.[test] is the same without prophet, which only the comparisons need. The count is deliberately not written down here: CI reports it, and a number in prose goes stale between the commit that adds tests and the one that remembers to update it.

pytest alone is enough — pyproject.toml puts the repo root and benchmark/ on pythonpath along with evaluation/, so a fresh clone runs the suite with no install and no PYTHONPATH. pip install -e . is for importing the package from elsewhere; nothing in the repo depends on it.

pip install -e . on macOS with Python 3.13+ can install successfully and still not import. setuptools writes the editable .pth with macOS's UF_HIDDEN flag set, and Python 3.13 hardened site.addpackage to skip hidden .pth files. The install reports success, pip show is happy, the metadata resolves — and import analytic_prophet raises ModuleNotFoundError from any directory but the repo root. chflags nohidden .venv/lib/python3.*/site-packages/__editable__* clears it, though something re-applies the flag here, so the fix does not stick. tests/test_packaging.py::test_an_editable_install_actually_imports is what catches this: it skips when the package is not installed and fails with the diagnosis when it is installed and broken.

Nothing is linked: the extension needs Eigen and LBFGSpp headers only. The test suite compiles analytic_prophet/optimize.cpp into a temporary directory on the fly, which is why no binary is checked in. Tests that need the toolchain skip rather than fail when it is absent.

prophet itself is deliberately not a dependency — every comparison against the original needs it, and it pulls cmdstanpy plus a compiled Stan model. The agreement tests skip without it and the benchmarks print an install hint, so pip install prophet is only needed to run those. holidays is required for add_country_holidays and imported lazily, so nothing else needs it.

Continuous integration

Two workflows, under .github/workflows/:

  • tests.yml, on every push and pull request: the suite across Python 3.9–3.14, which is what gives requires-python = ">=3.9" any basis — before it, the suite had only ever run on one version. One further job installs prophet and runs the comparisons against the original; it is the only one that pays for cmdstan.
  • evaluation.yml, manual or monthly: evaluation/run.py and a regenerated report, uploaded as an artifact rather than committed. Tier 0 is a gate and fails the job. These tiers are deliberately not per-push — Tier 2 alone is about eleven minutes and needs the network.

A skip is the right answer on a laptop without a compiler and the wrong one on a runner that installed Eigen on purpose, where it would mean CI reported green for a run that never built the C++ core. So the strictness is the caller's: pytest --require-cpp and --require-prophet turn those skips into failures, and every CI job passes them. Every run also prints what it skipped, grouped by reason, into the job summary — "green" has to be readable.


Licence

See LICENSE.

Metadata

Release files for analytic-prophet 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for analytic-prophet 0.1.0
File Size Uploaded
analytic_prophet-0.1.0.tar.gz 252.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for analytic-prophet 0.1.0
File
analytic_prophet-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
analytic_prophet-0.1.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
analytic_prophet-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
analytic_prophet-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
analytic_prophet-0.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
analytic_prophet-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
analytic_prophet-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
analytic_prophet-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
analytic_prophet-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
analytic_prophet-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
analytic_prophet-0.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
analytic_prophet-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
analytic_prophet-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
analytic_prophet-0.1.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
analytic_prophet-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
analytic_prophet-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
analytic_prophet-0.1.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
analytic_prophet-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 50.1 MB

Release files / analytic_prophet-0.1.0.tar.gz

Download URL analytic_prophet-0.1.0.tar.gz
Size 252.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cf9bb207217396479570374cd040d1d4f895689c5346409a223900f720a16216
BLAKE2b-256 checksum
How to use checksums
b3fd5e4dff4451eb81bff3e991a35f8898b5ffb4afaa0cd661bbf222a02dbdc7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL analytic_prophet-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.7 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ffc97e327906b46132418f2e91ffc519d37e1e5bfe16489706f8c7af220e2876
BLAKE2b-256 checksum
How to use checksums
e09f30306dfa0e11c35a1c8e267076427e72cba45023ca8a83052479c3efcb2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL analytic_prophet-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Size 326.6 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
696660d650ce208a1d614961a05fb802fb7a773189fa7e00b04cae646c9ddae2
BLAKE2b-256 checksum
How to use checksums
969d8fc3f1fcd1af770368710fbec04f80c60733a3a39923105130cec9ab62ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl

Download URL analytic_prophet-0.1.0-cp314-cp314-macosx_10_15_x86_64.whl
Size 364.9 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
734452e570820e868113918783418adde637039d39f850e51d60e51cebf16b87
BLAKE2b-256 checksum
How to use checksums
ad05025e0e32bd97cc7fe1e2786130e51baae561a7c112a604cad08e6f710e50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL analytic_prophet-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.7 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9f1d1b59e35bce58a5cc3b401f1db031ac0dafc78a96a004af4e9f91246ab7b5
BLAKE2b-256 checksum
How to use checksums
d7a2de30bdcb0ca5c3be6cb650d9645bc1d421bccb200a8ca8b3111e0d434414
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL analytic_prophet-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Size 326.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5eea0ae4527ed6c36a75f67ebca6f20eddf79013df82d0807c9efe7c7d9226a6
BLAKE2b-256 checksum
How to use checksums
7ffdf3839a2c7b0f8d1552c4c4a1420defc7fae982bd913a403437707281cab0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL analytic_prophet-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 365.0 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
dd9fcc979395726a08a2083a7328c56e46ea8db3dcaba4bd203bceff80b7ade8
BLAKE2b-256 checksum
How to use checksums
032fe07ad058bf87b43f4b851fff1dc8d4a99a58bb088df52dfed0c3611ffb0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL analytic_prophet-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.7 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
83cf44e69d9d1169201459d6a1fead077e4895c27f5b120dd5fe30a72d3e3804
BLAKE2b-256 checksum
How to use checksums
b62005fdeea28f90ade80ac5363151d3175fa1e54cf4c06a76a0671abbed4ee1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL analytic_prophet-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 326.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
69c46e838a4badf3e6850edc45b8f1907f313c7c6a32ebe706fc24e5ed2a3a4d
BLAKE2b-256 checksum
How to use checksums
fabbb0fa330e6b75cd99b7760c204795a4c46dad3fbf68b7ea0735363717d5b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL analytic_prophet-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 365.0 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
0b91e6dff32efaf82ba7ddd7da49b302bc7b6d4089322ade6bd30f5c9a5150f9
BLAKE2b-256 checksum
How to use checksums
bc1ed2794c5fb1b27abcad3e1da70c698bd5455c63a19bcedd7fe612a43b1ddb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL analytic_prophet-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.6 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
29f9734ea2ab3e7bea45171bfaebc87018c00a598dae911078c45fdd8c0d16df
BLAKE2b-256 checksum
How to use checksums
58a2b255c37feda8b9ca2af623d7ec7ffc873c6d1173013a08565a924f843840
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL analytic_prophet-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 323.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
071ced1ffd38ca6a9e6757dc288edbbf5e6460b3aaeca0397dbc678b3ac0ea4d
BLAKE2b-256 checksum
How to use checksums
f0c196c7a75c1982f37e2f184f1de185881b40e440230713dea79fbea9b35f2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL analytic_prophet-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 361.3 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
eb7e9ee76e97cba03ffd7f5679c6e8060c87d2524ae5476f00a77fc7a64fb722
BLAKE2b-256 checksum
How to use checksums
b2f05a99502a2382d46b12e4fa01aaaa56328ed911f414e934e90957d947a8d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL analytic_prophet-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.6 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9c9a75ed46edb9fc2efe18cb5be2eef4db4f7201958a5c54f46ce593884a8c5d
BLAKE2b-256 checksum
How to use checksums
ecf80e4767ff8e42c92ce3fc6e48ba95d560b3d28515956b8909894990db014c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL analytic_prophet-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Size 322.5 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
10590221d707e20bd4701f0dbaac4c2cb95790d332a7d354b7f7fcd7cf74a018
BLAKE2b-256 checksum
How to use checksums
8e60e5551488d951d96fc7d4690675d7f2dcef44ee778420d99436de349459c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL analytic_prophet-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 360.0 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ac42523fb79e537ec12aaf53830490dd72497112e6abbe0a9538ce7821c39807
BLAKE2b-256 checksum
How to use checksums
81b6e9416f916d3db9a83e8010c9e0199436900c1901d9200c3c124068e77ed1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL analytic_prophet-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 7.6 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7a9329f3140614e9ef097348a4cf03643d33a3e033a847365977aace095d2dba
BLAKE2b-256 checksum
How to use checksums
7761a7a46c395f0efa85d9f11b7b94723a82d7527e3c1a35db0d17853db66617
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL analytic_prophet-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Size 322.6 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0973ee445d2cb1f21a93ee1ab9ea3ee36805c10aaf131352811bdbe7e80c3f1c
BLAKE2b-256 checksum
How to use checksums
760a4d0da2db770ae6a61c3ba02c027c6a7083fb47b1b64a13eca251642ec5f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / analytic_prophet-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL analytic_prophet-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 360.2 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c2704b2769a20fbe35874a292b4ff252d4f8362ba7e4cec054cf6adb0ecc6822
BLAKE2b-256 checksum
How to use checksums
8b7149845ff2386d916107e4cc496155ca8af1405cae9a554aebe6b01a4162f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

19 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page