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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file climweb_dataset_helper-0.1.0.tar.gz.
File metadata
- Download URL: climweb_dataset_helper-0.1.0.tar.gz
- Upload date:
- Size: 376.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdfc579fa3cb851c27c316286da1c9f162eb9d4c5d84fbae57e72f18c75835a4
|
|
| MD5 |
9f45897a9c4785146204422e4726e3a1
|
|
| BLAKE2b-256 |
1cad3aca0c44eaed691c683ad61a11f9720bab124953ac64f0f0ef5fe068d1ef
|
Provenance
The following attestation bundles were made for climweb_dataset_helper-0.1.0.tar.gz:
Publisher:
publish.yml on wmo-raf/climweb-dataset-helper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
climweb_dataset_helper-0.1.0.tar.gz -
Subject digest:
cdfc579fa3cb851c27c316286da1c9f162eb9d4c5d84fbae57e72f18c75835a4 - Sigstore transparency entry: 2340593725
- Sigstore integration time:
-
Permalink:
wmo-raf/climweb-dataset-helper@b509c87aefae34b8654bf5a77b3b7ebbe14315c3 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/wmo-raf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b509c87aefae34b8654bf5a77b3b7ebbe14315c3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file climweb_dataset_helper-0.1.0-py3-none-any.whl.
File metadata
- Download URL: climweb_dataset_helper-0.1.0-py3-none-any.whl
- Upload date:
- Size: 429.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
946feb8b83aa0275dccecc645a9eec26deefa95145661278d146f21cb03656ab
|
|
| MD5 |
295896069061f7360745afe5893aea0e
|
|
| BLAKE2b-256 |
c1211cfc138af62249b383f9ba37db6cbfb78bc5e86177885e4d2aa359ab961d
|
Provenance
The following attestation bundles were made for climweb_dataset_helper-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on wmo-raf/climweb-dataset-helper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
climweb_dataset_helper-0.1.0-py3-none-any.whl -
Subject digest:
946feb8b83aa0275dccecc645a9eec26deefa95145661278d146f21cb03656ab - Sigstore transparency entry: 2340593736
- Sigstore integration time:
-
Permalink:
wmo-raf/climweb-dataset-helper@b509c87aefae34b8654bf5a77b3b7ebbe14315c3 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/wmo-raf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b509c87aefae34b8654bf5a77b3b7ebbe14315c3 -
Trigger Event:
release
-
Statement type: