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
0006and0023contain 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
- Back up the database (recommended, though no schema rewrite is involved).
- Remove the old plugin: delete it from
CLIMWEB_PLUGIN_DIR(or run itsuninstall.sh), and dropdataset_helper_pluginfrom any plugin config. pip install climweb-dataset-helper. On ClimWeb that is all — the app is already inINSTALLED_APPS. Removedataset_helperfromCLIMWEB_ADDITIONAL_APPSif it is set there.python manage.py migrate dataset_helper_plugin— this applies only0024_reconcile_model_state, which closes pre-existing drift betweenmodels.pyand the recorded migration state (fourCharFielddefinitions, plus the implicitidfields oncatalogstate/pluginsettingswhich were stillAutoField).
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.