Metadata-Version: 2.3
Name: chap_core
Version: 2.0.0
Summary: Climate Health Analysis Platform (CHAP)
Keywords: chap_core
Author: Chap Team
Author-email: Chap Team <chap@dhis2.org>
License: AGPLv3 license
Requires-Dist: bionumpy>=1.0.14
Requires-Dist: cyclopts>=4.16.1
Requires-Dist: docker>=7.1.0
Requires-Dist: fastapi>=0.136.3
Requires-Dist: starlette>=1.0.1
Requires-Dist: sqlmodel>=0.0.38
Requires-Dist: psycopg2-binary>=2.9.12
Requires-Dist: geopandas>=1.1.3
Requires-Dist: geopy>=2.4.1
Requires-Dist: gitpython>=3.1.50
Requires-Dist: gluonts>=0.16.2
Requires-Dist: libpysal>=4.14.1
Requires-Dist: matplotlib>=3.10.9
Requires-Dist: mlflow-skinny>=3.11.1
Requires-Dist: pandas>=2.1.4
Requires-Dist: plotly>=6.7.0
Requires-Dist: pooch>=1.9.0
Requires-Dist: pycountry>=24.6.1
Requires-Dist: pydantic>=2.13.4
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: python-dotenv>=1.2.2
Requires-Dist: python-multipart>=0.0.29
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: requests>=2.34.2
Requires-Dist: urllib3>=2.7.0
Requires-Dist: rq>=2.9.0
Requires-Dist: scikit-learn>=1.8.0
Requires-Dist: topojson>=1.10
Requires-Dist: unidecode>=1.4.0
Requires-Dist: uvicorn>=0.48.0
Requires-Dist: xarray>=2026.4.0
Requires-Dist: netcdf4>=1.7.2
Requires-Dist: celery>=5.6.3
Requires-Dist: packaging>=25.0
Requires-Dist: jsonschema>=4.26.0
Requires-Dist: altair>=5.5.0
Requires-Dist: virtualenv>=20.34.0
Requires-Dist: geojson-pydantic>=2.1.1
Requires-Dist: pandera>=0.31.1
Requires-Dist: vegafusion>=2.0.3
Requires-Dist: vl-convert-python>=1.9.0.post1
Requires-Dist: pyarrow>=23.0.1
Requires-Dist: numpy>=2.1.3
Requires-Dist: gunicorn>=25.3.0
Requires-Dist: optuna>=4.8.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: alembic>=1.18.4
Requires-Dist: chapkit>=0.26.0
Requires-Dist: cryptography>=46.0.7
Requires-Dist: croniter>=6.2.2
Requires-Dist: stumpy>=1.14.1
Requires-Dist: pyts>=0.13.0
Requires-Dist: fastdtw>=0.3.4
Requires-Python: >=3.13, <3.14
Project-URL: Homepage, https://github.com/dhis2/chap-core
Description-Content-Type: text/markdown

# Welcome to the Chap modelling platform!

[![CI](https://github.com/dhis2-chap/chap-core/actions/workflows/ci-test-python-install.yml/badge.svg)](https://github.com/dhis2-chap/chap-core/actions/workflows/ci-test-python-install.yml)
[![PyPI version](https://img.shields.io/pypi/v/chap-core)](https://pypi.org/project/chap-core/)
[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Documentation](https://img.shields.io/badge/docs-mkdocs-blue.svg)](https://chap.dhis2.org/chap-modeling-platform/)

This is the main repository for the Chap modelling platform.

[Read more about the Chap project here](https://chap.dhis2.org/about/)

## Code documentation

The main documentation for the modelling platform is located at [https://chap.dhis2.org/chap-modeling-platform/](https://chap.dhis2.org/chap-modeling-platform/).

## Development / contribution

Information about how to contribute to the Chap Modelling Platform: [https://chap.dhis2.org/chap-modeling-platform/contributor/](https://chap.dhis2.org/chap-modeling-platform/contributor/).

## Issues/Bugs

If you find any bugs or issues when using this code base, we appreciate it if you file a bug report here: https://github.com/dhis2-chap/chap-core/issues/new

## Launch development instance using Docker

```shell
cp .env.example .env
docker compose up
```

### Rebuilding after a source change

`docker compose up` will reuse an existing `chap-core-chap` image if one is
already built — it does not automatically rebuild when you edit source. If
you see a stale `chap_core.__version__` or a fix that clearly didn't land
inside the running container, use one of:

```shell
make restart       # down && up -d --build (preserves volumes incl. chap-db)
make force-restart # down -v && build --no-cache && up (WIPES VOLUMES)
make chap-version  # print the chap_core version running inside the container
```

`make restart` is the right hammer 90% of the time. `make force-restart`
also wipes the Postgres volume, so reach for it only when you need a clean
slate. `make chap-version` is also printed automatically at the end of
`make restart` so version drift is visible at a glance.

### Running with chapkit model overlays

Chapkit-based models ship as opt-in compose overlays. Layer one onto
`compose.yml` (not `compose.ghcr.yml` — those two are alternatives, not
stackable) to run chap-core with the chapkit services already
self-registered.

The recommended overlay is `compose.chapkit.yml`, an umbrella file that
includes every chapkit-converted model. As more models are converted to
chapkit, they get added here so a single `-f` flag pulls them all in:

```shell
docker compose -f compose.yml -f compose.chapkit.yml up -d
```

If you only want the EWARS service, use the single-model overlay
`compose.ewars.yml` instead:

```shell
docker compose -f compose.yml -f compose.ewars.yml up -d
```

## Deploy on Kubernetes

CHAP can be deployed on Kubernetes using our helm chart which can be found [here](./charts/chap).
