Skip to main content

Pypi PypiDownloads GitlabCIPipeline GitlabCICoverage ReadTheDocs

Read the Docs

http://kwdagger.readthedocs.io/en/latest/

Gitlab (main)

https://gitlab.kitware.com/computer-vision/kwdagger

Github (mirror)

https://github.com/Kitware/kwdagger

Pypi

https://pypi.org/project/kwdagger

Overview

KWDagger is a lightweight framework for defining bash-centric DAGs and running large parameter sweeps. It builds on top of cmd_queue and scriptconfig to provide:

  • Reusable kwdagger.pipeline.Pipeline and kwdagger.pipeline.ProcessNode abstractions for wiring inputs / outputs together.

  • A scheduling CLI (kwdagger.schedule) that materializes pipeline definitions over a parameter grid and executes them via Slurm, tmux, or a serial backend.

  • An aggregation CLI (kwdagger.aggregate) that loads job outputs, computes metrics, and optionally plots parameter/metric relationships.

  • A self-contained demo pipeline in kwdagger.demo.demodata that is used in CI and serves as a reference implementation.

Repository layout

  • kwdagger/pipeline.py – core pipeline and process node definitions, networkx graph construction, and configuration utilities.

  • kwdagger/schedule.pyScheduleEvaluationConfig CLI for expanding parameter grids into runnable jobs and dispatching them through cmd_queue backends.

  • kwdagger/aggregate.pyAggregateEvluationConfig CLI for loading job outputs, computing parameter hash IDs, and generating text/plot reports.

  • kwdagger/demo/demodata.py – end-to-end demo pipeline with prediction and evaluation stages plus CLI entry points for each node.

  • docs/ – Sphinx sources, including an example user module under docs/source/manual/tutorials/twostage_pipeline.

  • tests/ – unit and functional coverage for pipeline wiring, scheduler behavior, aggregation, and import sanity checks.

Quickstart

Run the demo pipeline locally to see the CLI workflow end-to-end:

TMP_DPATH=$(mktemp -d --suffix "-kwdagger-demo")
cd "$TMP_DPATH"
echo "demo" > input.txt

EVAL_DPATH=$PWD/pipeline_output
python -m kwdagger.schedule \
    --params="
        pipeline: 'kwdagger.demo.demodata.my_demo_pipeline()'
        matrix:
            stage1_predict.src_fpath:
                - input.txt
            stage1_predict.param1:
                - 123
            stage1_evaluate.workers: 2
    " \
    --root_dpath="${EVAL_DPATH}" \
    --backend=serial --skip_existing=1 --run=1

python -m kwdagger.aggregate \
    --pipeline='kwdagger.demo.demodata.my_demo_pipeline()' \
    --target "
        - $EVAL_DPATH
    " \
    --output_dpath="$EVAL_DPATH/full_aggregate" \
    --eval_nodes="
        - stage1_evaluate
    " \
    --stdout_report="
        top_k: 10
        concise: 1
    "

The scheduler will generate per-node job directories with invoke.sh and job_config.json metadata. The aggregator then consolidates results, computes parameter hash IDs, and prints a concise report.

A novel graph based symlink structure allows for navigation of dependencies within a node. The .succ folder holds symlinks to successors (i.e. results that depend on the current results), and .pred holds symlinks to folders of results that the current folder depends on.

For more in-depth information see tutorials:

Command line entry points

  • python -m kwdagger.schedule or kwdagger schedule – build and run a pipeline over a parameter matrix (see kwdagger.schedule.ScheduleEvaluationConfig).

  • python -m kwdagger.aggregate or kwdagger aggregate – load completed runs and generate tabular and plotted summaries (kwdagger.aggregate.AggregateEvluationConfig).

  • python -m kwdagger – modal CLI that exposes the schedule and aggregate commands via kwdagger.__main__.KWDaggerModal.

Download files

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

Source Distribution

kwdagger-0.2.6.tar.gz (197.0 kB view details)

Uploaded Source

Built Distribution

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

kwdagger-0.2.6-py3-none-any.whl (173.7 kB view details)

Uploaded Python 3

File details

Details for the file kwdagger-0.2.6.tar.gz.

File metadata

  • Download URL: kwdagger-0.2.6.tar.gz
  • Upload date:
  • Size: 197.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for kwdagger-0.2.6.tar.gz
Algorithm Hash digest
SHA256 da1777a967d111da54a477dc1a6c3e4f8df35e267854b39892bba46d0faa5d7f
MD5 715cf03e959c4baeabfb6f7820d27e5f
BLAKE2b-256 bc63d674f0c8b5364d343f0e2605bab42ec350d6a87698ad31f44da281bf8a30

See more details on using hashes here.

File details

Details for the file kwdagger-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: kwdagger-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 173.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for kwdagger-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 96f4e693a1b410f837c2696aae26743cc607563e42c5c2b630526c94a4be0b5e
MD5 c0a9e02f143e704f63d8dccfef571c17
BLAKE2b-256 c995f0c1ce77c004b5e47bd2c750972e160ca696ddd5c16977c1ac2149c19914

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.2.6 This release

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page