analytic-prophet
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.
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.
pytestand everything in this repository run from a fresh clone with no install at all, becausepyproject.tomlputs the right directories onpythonpath. The editable install is only for importinganalytic_prophetfrom somewhere else — and on macOS with Python 3.13+ it reports success and then does not import, because setuptools writes the editable.pthwithUF_HIDDENand 3.13 hardenedsiteto skip hidden.pthfiles.tests/test_packaging.py::test_an_editable_install_actually_importsis 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 |
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 > 0is rejected rather than ignored. - No plotting. No
plotorplot_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.pthwith macOS'sUF_HIDDENflag set, and Python 3.13 hardenedsite.addpackageto skip hidden.pthfiles. The install reports success,pip showis happy, the metadata resolves — andimport analytic_prophetraisesModuleNotFoundErrorfrom 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_importsis 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 givesrequires-python = ">=3.9"any basis — before it, the suite had only ever run on one version. One further job installsprophetand runs the comparisons against the original; it is the only one that pays for cmdstan.evaluation.yml, manual or monthly:evaluation/run.pyand 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)
| File | Size | Uploaded | |
|---|---|---|---|
| analytic_prophet-0.1.0.tar.gz | 252.8 kB | Details |
Built distributions (wheels)
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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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