Skip to content

roocs/woodpecker

Repository files navigation

Woodpecker

Small, precise fixes for climate data.

CI Docs Online Docs License Python

Woodpecker checks, previews, and applies known climate-data fixes through a small Python API, CLI, and recipe system. Use it when a dataset needs a documented repair before it enters a larger processing workflow.

flowchart LR
    D["Dataset"] --> C["check"]
    C --> F["findings"]
    F --> R["recipe or fix id"]
    R --> P["dry-run preview"]
    P --> A["apply"]
Loading

Quick Start

conda env create -f environment.yml
conda activate woodpecker
make dev
woodpecker list-recipes

Run a discovered recipe:

import woodpecker

recipe = woodpecker.recipe.get("cmip6.core_units")
findings = woodpecker.recipe.check(dataset, recipe)

if findings:
    woodpecker.recipe.apply(dataset, recipe, dry_run=True).preview
    woodpecker.recipe.apply(dataset, recipe, dry_run=False)

From the command line:

woodpecker check ./data --recipe-id cmip6.core_units
woodpecker apply ./data --recipe-id cmip6.core_units --dry-run

Use woodpecker.apply(...), woodpecker.recipe.apply(...), and woodpecker apply ... for applying selected changes.

Docs

Project Map

  • woodpecker/: core API, CLI, recipes, fixes, stores, and results.
  • plugins/: bundled dataset-family plugins.
  • docs/: MkDocs pages and generated references.
  • tests/: unit and integration tests.
  • scripts/: docs and catalog generators.

Development

make format
make lint
make test
make docs

Woodpecker is licensed under the terms in LICENSE.

Releases

Packages

Contributors

Languages