Metadata-Version: 2.4
Name: innovate
Version: 0.6.0
Summary: A Python library for simplifying innovation/policy diffusion modelling.
Author-email: Dylan A Mordaunt <dylan.mordaunt@vuw.ac.nz>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/edithatogo/innovate
Project-URL: Documentation, https://edithatogo.github.io/innovate
Project-URL: Issues, https://github.com/edithatogo/innovate/issues
Project-URL: Source, https://github.com/edithatogo/innovate
Keywords: diffusion,forecasting,innovation,modeling,policy
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Scientific/Engineering
Requires-Python: <3.16,>=3.15.1
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy<3,>=2.4.4
Requires-Dist: scipy<2,>=1.17.1
Requires-Dist: pandas<4,>=3.0.2
Requires-Dist: pyarrow<27,>=26.0.0
Requires-Dist: statsmodels<0.15,>=0.14.6
Requires-Dist: networkx<4,>=3.6.1
Requires-Dist: jitcdde<2,>=1.8.3
Requires-Dist: sympy<2,>=1.14
Requires-Dist: ruptures<1.1.10,>=1.1.9
Requires-Dist: pymannkendall<2,>=1.4.3
Requires-Dist: pytensor<4,>=2.38.2
Requires-Dist: pandasdmx>=1.9.0
Requires-Dist: pydantic>=2.13.4
Provides-Extra: jax
Requires-Dist: jax>=0.4.20; extra == "jax"
Requires-Dist: jaxlib>=0.4.20; extra == "jax"
Requires-Dist: numpyro<0.22,>=0.20.1; extra == "jax"
Requires-Dist: diffrax>=0.5; extra == "jax"
Requires-Dist: blackjax>=1.0; extra == "jax"
Requires-Dist: arviz<1.0,>=0.23.4; extra == "jax"
Requires-Dist: jaxopt>=0.8; extra == "jax"
Provides-Extra: bayesian
Requires-Dist: jax>=0.4.20; extra == "bayesian"
Requires-Dist: jaxlib>=0.4.20; extra == "bayesian"
Requires-Dist: numpyro<0.22,>=0.20.1; extra == "bayesian"
Requires-Dist: diffrax>=0.5; extra == "bayesian"
Requires-Dist: blackjax>=1.0; extra == "bayesian"
Requires-Dist: arviz<1.0,>=0.23.4; extra == "bayesian"
Requires-Dist: jaxopt>=0.8; extra == "bayesian"
Provides-Extra: dataframe
Requires-Dist: polars<3,>=2.1.0; extra == "dataframe"
Provides-Extra: legacy-abm
Requires-Dist: mesa<4,>=3.5.1; extra == "legacy-abm"
Requires-Dist: ndlib<6,>=5.1.1; extra == "legacy-abm"
Dynamic: license-file

# Innovate

Innovate is a contract-first diffusion modeling library. The current design centers on a stable functional kernel, Arrow interchange, optional backend implementations, and language bindings layered on top of the same core behavior.

The Astro/Starlight site is the active documentation surface. This README is the
short front door.
Markdown prose is checked in CI with Vale to keep the short-form docs clear and
consistent.

## What lives where

- `src/innovate/` contains the Python kernel, fitters, diagnostics, Arrow interchange, and stability layers.
- `bindings/` contains the language bindings and their tests.
- `docs/astro-site/` contains the active Astro/Starlight documentation site.
- `docs/source/_static/` contains machine-readable release, registry, and migration evidence consumed by the Astro/Starlight site and CI.
- `conductor/` contains the track history and archived implementation plans.

## Core ideas

- The functional kernel is the primary surface for fitting, predicting, simulating, summarizing, and diagnosing models.
- Arrow interchange is the stable cross-language data contract.
- Optional backends extend the same contract without changing the public API.
- Bindings are thin layers over the kernel, not separate model implementations.

## Install

```bash
python -m pip install innovate
```

For optional JAX and Bayesian backends:

```bash
python -m pip install "innovate[jax,bayesian]"
```

For contributor setup from a checkout:

```bash
uv sync
```

## Quick start

```python
from innovate import fit_model, predict_model

result = fit_model(data)
forecast = predict_model(result, horizon=12)
```

## Read next

- [Documentation landing page](docs/astro-site/src/content/docs/index.md)
- [Tutorials](docs/astro-site/src/content/docs/tutorials/index.md)
- [Bindings hub](docs/astro-site/src/content/docs/bindings/index.md)
- [Architecture principles](docs/architecture_principles.md)
- [Modernization roadmap](docs/architecture_modernization_roadmap.md)
- [ADR index](docs/adr/index.md)
