Skip to main content

ClimWeb Dataset Helper

Wizards for ingesting reference datasets — WMS, raster (COG/tile), vector (tile/PMTiles) and OCHA/HDX admin boundaries — into ClimWeb via GeoManager.

Previously distributed as a ClimWeb plugin (installed with install_plugin.sh into CLIMWEB_PLUGIN_DIR). It is now an ordinary pip-installable Django/Wagtail app, packaged the same way as forecastmanager.

Installation

ClimWeb ships dataset_helper in INSTALLED_APPS (next to geomanager), so on a ClimWeb instance you only need the package present in the same Python environment:

pip install climweb-dataset-helper

Do not also set CLIMWEB_ADDITIONAL_APPS=dataset_helper — that would register the app twice.

For any other Wagtail project, add it yourself:

INSTALLED_APPS = [
    ...
    "geomanager",
    "dataset_helper",
    ...
]

Then run migrations. Note the app label is dataset_helper_plugin, not the module name — see App label below:

python manage.py migrate dataset_helper_plugin

The tool appears in the Wagtail admin under GeoManager → Dataset helper (/admin/geomanager/dataset_helper/).

Requirements

  • Python >= 3.8 (ClimWeb runs 3.11)
  • PostgreSQL/PostGIS — migrations 0006 and 0023 contain raw PostgreSQL
  • geomanager >= 0.6, wagtail >= 6.0, django >= 4.2
  • Optional, for the Admin Boundaries tab: pip install "climweb-dataset-helper[boundaries]" (geopandas + adm-boundary-manager). Both are imported lazily; without them the app still loads and the boundary endpoints return a clear error. ClimWeb already ships both.

App label

The Python module is dataset_helper, but the Django app label is pinned to dataset_helper_plugin in apps.py:

class DatasetHelperConfig(AppConfig):
    name = 'dataset_helper'
    label = 'dataset_helper_plugin'

Django derives table names and the app column of django_migrations from the label, so pinning it keeps the existing dataset_helper_plugin_* tables and migration history intact. Sites upgrading from the plugin need no data migration — uninstall the plugin, pip install this package, and carry on.

The practical consequence: management commands take the label.

python manage.py migrate dataset_helper_plugin
python manage.py sqlmigrate dataset_helper_plugin 0024

Upgrading from the plugin

  1. Back up the database (recommended, though no schema rewrite is involved).
  2. Remove the old plugin: delete it from CLIMWEB_PLUGIN_DIR (or run its uninstall.sh), and drop dataset_helper_plugin from any plugin config.
  3. pip install climweb-dataset-helper. On ClimWeb that is all — the app is already in INSTALLED_APPS. Remove dataset_helper from CLIMWEB_ADDITIONAL_APPS if it is set there.
  4. python manage.py migrate dataset_helper_plugin — this applies only 0024_reconcile_model_state, which closes pre-existing drift between models.py and the recorded migration state (four CharField definitions, plus the implicit id fields on catalogstate/pluginsettings which were still AutoField).

Two client-side names changed:

  • Admin URL: /admin/geomanager/dataset_helper_plugin/ → /admin/geomanager/dataset_helper/
  • URL namespace / template directory: dataset_helper_plugin → dataset_helper

What changed from the plugin

Plugin Package
install_plugin.sh into CLIMWEB_PLUGIN_DIR pip install climweb-dataset-helper
Discovered via climweb_plugin_info.json Listed in INSTALLED_APPS / CLIMWEB_ADDITIONAL_APPS
apps.py registered with climweb.base.registries.plugin_registry Plain AppConfig — the registration was a no-op
plugins.py (Plugin subclass, returned no urls) Removed; admin URLs come from wagtail_hooks.py, as before
config/settings/plugin_settings.py appended to STATICFILES_DIRS Removed; the UI is self-contained HTML + CDN MapLibre, there are no bundled static files
Required a ClimWeb checkout on sys.path to import Imports standalone; ClimWeb is reached only through geomanager

build.sh, uninstall.sh, Makefile and climweb_plugin_info.json are gone — pip handles all of it.

Sandbox

sandbox/ is a minimal Wagtail project running GeoManager and Dataset Helper on their own, so you can exercise the app without standing up a full ClimWeb instance.

cd sandbox
docker compose up --build

Then open http://localhost:8000/admin/geomanager/dataset_helper/ and log in with admin / admin (created on first start; change it in sandbox/.env).

The compose file builds from the repo root and installs the package with -e .., and bind-mounts dataset_helper/ into the container — edits to the app are picked up by the dev server without a rebuild. Postgres is exposed on 5433 so it won't collide with a local ClimWeb database.

Unlike forecastmanager's sandbox this one cannot use SQLite: GeoManager stores geometry, and migrations 0006/0023 contain raw PostgreSQL. The compose file provides postgis/postgis:15-3.3, and the image is built from the same GDAL base ClimWeb uses.

To run it without Docker, point DATABASE_URL at your own PostGIS database:

cd sandbox
pip install -r requirements.txt
export DATABASE_URL=postgis://postgres:postgres@localhost:5432/dataset_helper
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

Development

pip install -e ".[boundaries]"

boot_django.py configures a minimal Django for the helper scripts (point it at a PostGIS database with the DB_NAME/DB_USER/DB_PASSWORD/DB_HOST/DB_PORT env vars):

python makemigrations.py
python migrate.py
python -m build          # builds dist/*.whl and dist/*.tar.gz

Translations live in dataset_helper/locale/ (ar, es, fr, pt):

django-admin makemessages -l fr
django-admin compilemessages

Releases are published to PyPI by .github/workflows/publish.yml when a GitHub release is created (trusted publishing — no token needed).

License

MIT — see LICENSE.

Metadata

Release files for climweb-dataset-helper 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 climweb-dataset-helper 0.1.0
File Size Uploaded Provenance Actions
climweb_dataset_helper-0.1.0.tar.gz 376.4 kB With provenance Details for climweb_dataset_helper-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for climweb-dataset-helper 0.1.0
File Interpreter ABI Platform Actions
climweb_dataset_helper-0.1.0-py3-none-any.whl Python 3 none any Details for climweb_dataset_helper-0.1.0-py3-none-any.whl

Total release size: 805.4 kB

Release files / climweb_dataset_helper-0.1.0.tar.gz

Download URL climweb_dataset_helper-0.1.0.tar.gz
Size 376.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cdfc579fa3cb851c27c316286da1c9f162eb9d4c5d84fbae57e72f18c75835a4
BLAKE2b-256 checksum
How to use checksums
1cad3aca0c44eaed691c683ad61a11f9720bab124953ac64f0f0ef5fe068d1ef
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 Aug 4, 2026.

Transparency log

Release files / climweb_dataset_helper-0.1.0-py3-none-any.whl

Download URL climweb_dataset_helper-0.1.0-py3-none-any.whl
Size 429.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
946feb8b83aa0275dccecc645a9eec26deefa95145661278d146f21cb03656ab
BLAKE2b-256 checksum
How to use checksums
c1211cfc138af62249b383f9ba37db6cbfb78bc5e86177885e4d2aa359ab961d
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 Aug 4, 2026.

Transparency log

Security for climweb-dataset-helper 0.1.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for climweb_dataset_helper-0.1.0.tar.gz

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 Aug 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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