Skip to main content

ndev-workflows

License BSD-3 PyPI Python Version tests codecov napari hub npe2 Copier

Reproducible processing workflows with napari

A re-implementation of napari-workflows with backwards compatibility.


This [napari] plugin was generated with [copier] using the [napari-plugin-template] (2.0.1).

What is ndev-workflows?

ndev-workflows is the workflow backend for napari image processing pipelines. It's a drop-in replacement for napari-workflows by Robert Haase, with these key improvements:

  • Safe YAML loading — Uses yaml.safe_load() (no arbitrary code execution)
  • Backwards compatible — Automatically loads and migrates legacy napari-workflows files, and detects missing dependencies
  • Same API — Most code works without changes
  • Future-ready — Designed for upcoming npe2 workflow contributions (WIP), without relying on npe1, napari-time-slicer, and napari-tools-menu for interactivity

Installation

pip install ndev-workflows

If napari is not already installed, you can install ndev-workflows with napari and Qt via:

pip install "ndev-workflows[all]"

Quick Start

from ndev_workflows import Workflow, save_workflow, load_workflow
from skimage.filters import gaussian

# Create workflow
workflow = Workflow()
workflow.set("blurred", gaussian, "input_image", sigma=2.0)
workflow.set("input_image", my_image)

# Execute
result = workflow.get("blurred")

# Save
save_workflow("pipeline.yaml", workflow, name="My Pipeline")

# Load and reuse
loaded = load_workflow("pipeline.yaml")
loaded.set("input_image", new_image)
result = loaded.get("blurred")

YAML Format

Saved workflows use a safe, human-readable format:

name: Nucleus Segmentation
description: Gaussian blur and thresholding
modified: '2025-12-22'

inputs:
  - raw_image

outputs:
  - labels

tasks:
  blurred:
    function: skimage.filters.gaussian
    params:
      arg0: raw_image
      sigma: 2.0

  labels:
    function: skimage.measure.label
    params:
      arg0: blurred

Key features:

  • No !python/object tags (safe to share)
  • Functions imported by module path
  • Params use arg0, arg1, etc. for positional args and keyword names for kwargs

Legacy format: Old napari-workflows YAML files are automatically detected and migrated when loaded.


Important Notes

Function Dependencies

⚠️ Workflows don't bundle functions — they only store module paths. Recipients need the same packages installed.

If loading fails with WorkflowNotRunnableError, install the missing package:

pip install scikit-image  # for skimage functions
pip install napari-segment-blobs-and-things-with-membranes  # for that plugin

Lazy Loading

Inspect workflows without importing functions:

workflow = load_workflow("untrusted.yaml", lazy=True)
print(workflow.tasks)  # Safe - doesn't execute

Integration

Front-end plugins for interactive workflow building:

Works with processing plugins:


Contributing

git clone https://github.com/ndev-kit/ndev-workflows.git
cd ndev-workflows
uv venv
.venv\Scripts\activate
uv pip install -e . --group dev
pytest

License

Distributed under the terms of the [BSD-3] license, "ndev-workflows" is free and open source software Fork of napari-workflows by Robert Haase.


Issues

File an issue with your environment details, YAML file (if applicable), and error messages.

Metadata

Release files for ndev-workflows 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ndev-workflows 0.0.1
File Size Uploaded
ndev_workflows-0.0.1.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ndev-workflows 0.0.1
File Interpreter ABI Platform
ndev_workflows-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / ndev_workflows-0.0.1.tar.gz

Download URL ndev_workflows-0.0.1.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
5744e08e95bde60c7acda2082a3b7496647bc43c406564d85b18b93d5eb1a8cc
BLAKE2b-256 checksum
How to use checksums
67b8409e20f1338a9a14db7e667c67628da9ce421c3b526d1678be63ba0cb7c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 22, 2025.

Transparency log

Release files / ndev_workflows-0.0.1-py3-none-any.whl

Download URL ndev_workflows-0.0.1-py3-none-any.whl
Size 27.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bfc597666f5126760ad31dda062b3e76675cd7f75989a5f31882e67e4a0191d3
BLAKE2b-256 checksum
How to use checksums
b936974b88b4b379e3ac03e3a8da2986223bce0007cedf8492742c6ebbdada74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 22, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release 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