Skip to content

Repository files navigation

Woodpecker

Small, precise fixes for climate data.

CI Docs Online Docs PyPI 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

Install the roocs-woodpecker distribution from PyPI. The Python package and command-line program remain named woodpecker:

pip install roocs-woodpecker

For a development checkout:

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.

About

Pick the bugs out of climate data.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages