Skip to main content

AiiDA-WorkGraph

PyPI version Unit test codecov Docs status

A powerful Python library for creating, managing, and executing scalable scientific workflows with automatic data provenance.


✨ Why AiiDA-WorkGraph?

AiiDA-WorkGraph empowers researchers and developers to build complex, reproducible workflows with ease.

  • 🎨 Pythonic Workflow Design: Define workflows using familiar Python functions and decorators.
  • 🖥️ Interactive GUI: Visualize, monitor, and debug your workflows in real-time with a user-friendly web interface.
  • 🔗 Automatic Data Provenance: Guarantee scientific reproducibility with zero effort. The complete history of all data and calculations is automatically tracked.
  • 🚀 Remote & Parallel Execution: Seamlessly offload tasks to remote supercomputers and run them concurrently.
  • 🧠 Dynamic Control Flow: Build adaptive workflows that respond to data at runtime using standard Python if/else statements and loops.
  • 🛡️ Checkpointing & Error Handling: Protect long-running workflows from interruptions and build resilient logic to recover from failures.
  • ⚡ High-Throughput Computing: Built to scale, AiiDA-WorkGraph can efficiently manage thousands of concurrent workflows.
  • 🧩 Reusable Components: Encapsulate common routines as sub-workflows and easily reuse them in larger, more complex pipelines.

🚀 Getting Started

1. Installation

pip install aiida-workgraph

First, ensure you have a working AiiDA environment.

verdi presto  # Or 'verdi quicksetup' for a detailed setup

2. Quick Start Example

Let's create a simple workflow to calculate $(x + y) \times z$.

1️⃣ Define Tasks

Use the @task decorator to turn Python functions into workflow components.

from aiida_workgraph import task

@task
def add(x, y):
    """Adds two numbers."""
    return x + y

@task
def multiply(x, y):
    """Multiplies two numbers."""
    return x * y

2️⃣ Compose a Workflow

Use the @task.graph decorator to link tasks. Data flows naturally from one task's output to the next one's input.

@task.graph
def add_multiply(x, y, z):
    """A workflow to add two numbers and then multiply by a third."""
    sum_result = add(x, y).result
    product_result = multiply(x=sum_result, y=z).result
    return product_result

3️⃣ Run the Workflow

Build the workflow with your inputs and run it.

from aiida import load_profile

# Load your AiiDA profile
load_profile()

# Build and run the workflow
results = add_multiply.run(x=2, y=3, z=4)

# Print the final result
print(f"✅ Result: {results}")
# Expected output: ✅ Result: 20

4️⃣ Automatic Provenance Tracking

AiiDA-WorkGraph automatically generates a detailed provenance graph, tracking the full history of data and calculations to ensure full traceability and reproducibility. Here is an example of the provenance graph generated for the above workflow:

Provenance Graph Example


🛠️ Flexible Workflow Construction

AiiDA-WorkGraph supports three complementary approaches to building workflows, letting you choose the best method for your needs.

  • 🐍 Pythonic Workflows (Recommended): Use @task.graph for clean, readable, and powerful workflows, as shown in the Quick Start.

  • 👁️ Visual Graph with Explicit Logic: Use zones like If, While, and Map to build a graph where the control flow is visually explicit.

  • ⚙️ Low-Level Node-Graph Programming: Programmatically define each task and link them manually for maximum control and dynamic graph generation.


🖥️ Interactive GUI

Visualize, monitor, and debug your workflows in real-time. To launch the GUI, first install the package and then run:

pip install aiida-gui-workgraph
aiida-gui start

Navigate to http://127.0.0.1:8000/workgraph in your web browser.

AiiDA-WorkGraph Web UI

Note: The GUI is an experimental feature and is under active development.


🔗 Useful Links

Download files

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

Source Distribution

aiida_workgraph-0.8.1.tar.gz (62.3 kB view details)

Uploaded Source

Built Distribution

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

aiida_workgraph-0.8.1-py3-none-any.whl (79.2 kB view details)

Uploaded Python 3

File details

Details for the file aiida_workgraph-0.8.1.tar.gz.

File metadata

  • Download URL: aiida_workgraph-0.8.1.tar.gz
  • Upload date:
  • Size: 62.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for aiida_workgraph-0.8.1.tar.gz
Algorithm Hash digest
SHA256 e30a9da73ffdd6643eee6217ff3a7a0b48a88c9bde358ad2d2e06230d93ebbbf
MD5 3f1d94f6ff672eb2a9654c55fc502033
BLAKE2b-256 870a90eea7ffc10e748e8135efe108a435c9a7b70969b20a34fac42293f658f2

See more details on using hashes here.

File details

Details for the file aiida_workgraph-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for aiida_workgraph-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 75304b462a0bd5530f13c9df30c7f680654d5ada012f204d7c7d4589c01de6b7
MD5 973669d71a45ff99c3fa59d367f003cc
BLAKE2b-256 f153173691a9630b32099ef114a29c30df3285c3d0a2f2066304302ff3b428d3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 files

0.8.0

2 files

0.7.6

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.10

2 files

0.4.9

2 files

0.4.8

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.26

2 files

0.3.25

2 files

0.3.24

2 files

0.3.23

2 files

0.3.22

2 files

0.3.21

2 files

0.3.20

2 files

0.3.19

2 files

0.3.18

2 files

0.3.17

2 files

0.3.16

2 files

0.3.15

2 files

0.3.14

2 files

0.3.13

2 files

0.3.12

2 files

0.3.11

2 files

0.3.10

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.0

2 files

Supported by

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