Metadata-Version: 2.4
Name: opera-eco
Version: 0.4.14
Summary: Dependency and skill manager for the OPERA ecosystem
Author-email: Paul Labonne <Paul.Labonne@bankofengland.co.uk>, Diego Lopez <Diego.Lopez@bankofengland.co.uk>
Maintainer-email: Paul Labonne <Paul.Labonne@bankofengland.co.uk>
License-Expression: MIT
Project-URL: Documentation, https://bank-of-england.github.io/opera-eco/
Project-URL: Repository, https://github.com/bank-of-england/opera-eco
Project-URL: Issues, https://github.com/bank-of-england/opera-eco/issues
Keywords: time-series,forecasting,evaluation,backtesting,economics
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: packaging
Requires-Dist: pandas
Provides-Extra: modules
Requires-Dist: forecast_evaluation==0.1.13; extra == "modules"
Requires-Dist: forecast_realtime[models]==0.5.8; extra == "modules"
Requires-Dist: forecast_combo==0.1.1; extra == "modules"
Requires-Dist: bvar==0.3.2; extra == "modules"
Requires-Dist: nowcast-midas==0.0.2; extra == "modules"
Requires-Dist: news_decomp==0.0.7; extra == "modules"
Provides-Extra: test
Requires-Dist: opera-eco[modules]; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Requires-Dist: pytest-timeout; extra == "test"
Requires-Dist: pandera; extra == "test"
Requires-Dist: syrupy; extra == "test"
Provides-Extra: notebooks
Requires-Dist: marimo==0.24.0; extra == "notebooks"
Provides-Extra: docs
Requires-Dist: mkdocstrings[python]; extra == "docs"
Requires-Dist: zensical; extra == "docs"
Provides-Extra: dev
Requires-Dist: opera-eco[test]; extra == "dev"
Requires-Dist: opera-eco[notebooks]; extra == "dev"
Requires-Dist: opera-eco[docs]; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pydoclint; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# OPERA: Open-Source Prediction Evaluation and Real-Time Analysis

**[Documentation](https://bank-of-england.github.io/opera-eco/)** | **[Add your own model](https://bank-of-england.github.io/opera-eco/guide/adding_a_model/)**

OPERA is a modular ecosystem designed to support the use of time-series models in real-time settings and foster open collaboration. It comprises the following modules:

- [`opera-eco`](https://github.com/bank-of-england/opera-eco) pins compatible releases and supplies documentation, AI skills, and integration tests.
- [`forecast_evaluation`](https://github.com/bank-of-england/forecast_evaluation) validates vintaged outturns and forecasts and provides evaluation and visualisation capabilities.
- [`forecast_realtime`](https://github.com/bank-of-england/forecast-realtime) runs models across data vintages.
- [`forecast_combo`](https://github.com/bank-of-england/forecast-combo) combines forecasts through averaging, regression, error-based weighting, or hierarchies.
- [`news_decomp`](https://github.com/bank-of-england/news-decomp) attributes nowcast levels and revisions to news, re-estimation, and interaction.

OPERA supports a broad range of models through wrappers for libraries such as scikit-learn and R's fable. You can also [add your own model](https://bank-of-england.github.io/opera-eco/guide/adding_a_model/). In addition to these wrappers, OPERA includes models with native support:

- [`bvar`](https://github.com/bank-of-england/bvar) provides tools for working with Bayesian VARs.
- [`nowcast-midas`](https://github.com/bank-of-england/nowcast-midas) nowcasts quarterly targets from higher-frequency indicators using MIDAS and combination techniques.

---

## Architecture

![Forecasting Ecosystem Architecture](docs/diagram.svg)

---

## Quick Start

```bash
pip install opera-eco              # Install the CLI and skills only.
pip install "opera-eco[modules]"  # Install the CLI and all ecosystem packages.
pip install "opera-eco[notebooks]" # Install Marimo notebook tooling.
opera install skills               # Install the bundled AI skills.
```

Then ask Copilot or Claude to use an installed skill:

```text
Tell me about @opera and how I can use it with my model.
```

## Project Layout

```
docs/                            # Documentation site.
examples/illustration.py        # Runnable end-to-end example.
examples/illustration_marimo.py # Native Marimo version of the example.
src/opera/                      # Package source, bundled skills, and tests.
  cli.py                        # Command-line interface.
  skills_manager.py             # Skill discovery and installation.
  skills/                       # Bundled Markdown skill files.
pyproject.toml                  # Python package configuration.
zensical.toml                   # Documentation site configuration.
```

## Data Classification
Bank of England Data Classification: OFFICIAL BLUE
