Skip to main content

ADCIRC mesh registry - domain management and validation for mesh data

Project description

ADMESH Domains

Source repository for the ADCIRC mesh domain registry: a curated catalog of coastal-simulation meshes with a Python loader, HuggingFace dataset mirror, and PR-based contribution workflow.

🌐 Browse the registry: domattioli.github.io/ADMESH-Domains — interactive map, search, preview, download, and contribute.

Where to go What you'll find
🌐 domattioli.github.io/ADMESH-Domains The website (browse / preview / download / contribute)
📦 pypi.org/project/admesh-domains The Python package
🤗 huggingface.co/datasets/domattioli/ADMESH-Domains The mesh files + Parquet sidecar + auto-generated dataset card (start here if you just want data)
🧪 domattioli/ADMESH The parent ADMESH library this registry complements

This repo is for contributors and maintainers of the registry — the data, schema, publisher pipeline, and CI live here. End users normally don't need to clone it; pip install admesh-domains[hf] is enough.

Quick install

# Read the bundled manifest only (no mesh downloads, ~50 KB install)
pip install admesh-domains

# Add Mesh.load() — fetches mesh files from the HF mirror on demand
pip install admesh-domains[hf]

The user-facing API (find_domains, find_meshes, get_mesh, Mesh.load) is documented on the HF dataset card.

Repo layout

admesh_domains/          Python package (schema, manifest loader, query API,
                         CLI, HF publisher, dataset-card template)
admesh_domains/data/     Bundled manifest.toml shipped in the wheel
registry_data/           Source-of-truth manifest + mesh files (.14, .2dm)
                         excluded from the wheel/sdist; mirrored to HF
specs/                   Spec-driven design docs (one folder per feature)
scripts/                 One-shot data tooling (mesh import, bbox extractor)
tests/                   pytest suite (mocked huggingface_hub)
.github/workflows/       release.yml (tag → PyPI + HF) + validate-pr.yml (CI)

Development

pip install -e ".[publish]" pytest
admesh-domains validate                 # check the bundled manifest parses
admesh-domains validate registry_data/manifest.toml   # ...and the dev one
pytest tests/                           # full suite
admesh-domains publish --tag v0.0.0-dryrun \
    --manifest registry_data/manifest.toml --dry-run --verbose

Every push and PR is validated by .github/workflows/validate-pr.yml (matrix across Python 3.9 / 3.11 / 3.12).

Releasing — code vs. data

Two separate tracks; don't conflate them:

Type of change What to do Workflow Effect
Code, API, schema, publisher, template Bump pyproject.toml + __init__.py, tag vX.Y.Z, push release.yml PyPI release + HF tagged vX.Y.Z
Add / remove / edit a mesh (data only) Edit registry_data/, commit, push to main publish-data.yml HF tagged data-YYYY-MM-DD-<sha7>; PyPI untouched

PyPI versions reflect code/API changes only. Data updates flow through HF without forcing a wheel bump (which would mislead users about what changed). Both tracks produce reproducible, pinned HF revisions.

See specs/006-huggingface-publisher/quickstart.md for the full maintainer recipe.

# Code release (bumps PyPI):
# bump pyproject.toml + admesh_domains/__init__.py to e.g. 0.2.5
git tag v0.2.5 && git push origin v0.2.5

# Data update (HF only, no PyPI):
git add registry_data/ admesh_domains/data/manifest.toml
git commit -m "Add foo.14 to <Domain>"
git push origin main

Contributing

Open an issue first if you're proposing a new domain, schema change, or behavior change. PRs welcome — the validator will run on every push.

Currently filed:

Specs

Active and shipped specs live under specs/. Each folder contains spec.md, plan.md, tasks.md, and supporting docs.

Spec Status
005 — ADCIRC mesh registry (legacy from monorepo, see migration note) Superseded
006 — HuggingFace dataset publisher ✅ Shipped in v0.2.0

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

admesh_domains-0.3.2.tar.gz (59.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

admesh_domains-0.3.2-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file admesh_domains-0.3.2.tar.gz.

File metadata

  • Download URL: admesh_domains-0.3.2.tar.gz
  • Upload date:
  • Size: 59.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for admesh_domains-0.3.2.tar.gz
Algorithm Hash digest
SHA256 4bcfca95a5b40b6cc5a3060e964e91bbfe7039f79a24a31bd3c9808289db2cd3
MD5 778ec7e8b6f1961d0498bdb277d49125
BLAKE2b-256 29681dfbcaacfd912d63c2d68085029bc321ac2231668380c7bb648c2d574bb9

See more details on using hashes here.

File details

Details for the file admesh_domains-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: admesh_domains-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for admesh_domains-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f30f6aca77bc63262b605531ba82cb55b21cbc563b98e28848358df6ad655107
MD5 5ab320aaa6b90e13c214647a138819c4
BLAKE2b-256 2f6a12bffcf30a4f46df05d32c6a10788ee3ae1f18e4c65ce061199f805d438b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page