Skip to main content

metaflow-mage

CI PyPI License Python Docs

Run any Metaflow flow as a Mage pipeline without rewriting your steps.

The problem

Mage is a modern data pipeline tool with a rich UI and flexible block model, but it has no native support for Metaflow's step graph, artifact store, or retry semantics. Teams that want Mage's notebook-style visibility must either re-implement their Metaflow flows as Mage blocks from scratch or give up Metaflow's lineage, versioning, and @retry behavior. There is no ready-made compiler that maps a Metaflow DAG to Mage blocks while keeping the full Metaflow runtime intact.

Quick start

pip install metaflow-mage
python flow.py mage create --mage-host http://localhost:6789
python flow.py mage trigger --mage-host http://localhost:6789
# Compiling HelloFlow to Mage pipeline...
# Pipeline hello_flow deployed successfully.
# Pipeline run started: http://localhost:6789/pipelines/hello_flow/runs/1

Install

pip install metaflow-mage

From source:

git clone https://github.com/npow/metaflow-mage
cd metaflow-mage
pip install -e .

Usage

Deploy and run in one step:

python flow.py mage run \
  --mage-host http://localhost:6789 \
  --mage-project metaflow_project
# Compiling HelloFlow to Mage pipeline...
# Pipeline hello_flow deployed successfully.
# Triggering pipeline run...
# Pipeline run started: http://localhost:6789/pipelines/hello_flow/runs/1
# Pipeline run is running...
# Pipeline run 1 completed successfully.

Deploy once, trigger many times with parameters:

python flow.py mage create --mage-host http://localhost:6789
python flow.py mage trigger --mage-host http://localhost:6789 \
  --run-param message=hello --run-param n=10

Programmatic API:

from metaflow import Deployer

with Deployer("flow.py") as d:
    df = d.mage().create(
        mage_host="http://localhost:6789",
        mage_project="metaflow_project",
    )
    run = df.trigger(message="hello")
    print(run.status)       # RUNNING / SUCCEEDED / FAILED
    print(run.mage_ui)      # http://localhost:6789/pipelines/hello_flow/runs/1
    print(run.run.successful)  # True

Delete a deployed pipeline:

python flow.py mage delete --mage-host http://localhost:6789
# Pipeline hello_flow deleted from Mage.

How it works

Each Metaflow step becomes a Mage Python block. An init block runs first to allocate the Metaflow run ID; subsequent blocks call python flow.py step <step_name> with --run-id, --task-id, and --retry-count threaded through as block outputs. Foreach steps emit a foreach_init block that enumerates items and fans out to per-item body blocks. A Mage API trigger (pipeline schedule) is created or reused on every create, so trigger works immediately without manual Mage UI setup.

Supported graph patterns: linear, branch/join, foreach. @parallel is not supported.

Configuration

CLI option Environment variable Default Description
--mage-host MAGE_HOST http://localhost:6789 Mage server base URL
--mage-project MAGE_PROJECT metaflow_project Mage project name
--max-workers — 10 Max concurrent block runs
--branch — — @project branch name
--production — false Deploy to the production project branch
--name — derived from class name Override the Mage pipeline UUID

Development

git clone https://github.com/npow/metaflow-mage
cd metaflow-mage
pip install -e ".[dev]"
pytest tests/

Integration tests require a running Mage instance:

docker run -it -p 6789:6789 mageai/mageai mage start metaflow_project
pytest tests/ -m integration

License

Apache 2.0. See LICENSE.

Metadata

Release files for metaflow-mage 0.2.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 metaflow-mage 0.2.1
File Size Uploaded Provenance
metaflow_mage-0.2.1.tar.gz 24.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for metaflow-mage 0.2.1
File Interpreter ABI Platform
metaflow_mage-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 48.4 kB

Release files / metaflow_mage-0.2.1.tar.gz

Download URL metaflow_mage-0.2.1.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c64dc9c598ba68510a19cd93a2752ea0d7338e4c7136f082c70801b326204452
BLAKE2b-256 checksum
How to use checksums
d090cfef25b66f495b11d940552150254e5c30f34c5d3ebc1b2593d01cc874c8
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 Mar 12, 2026.

Transparency log

Release files / metaflow_mage-0.2.1-py3-none-any.whl

Download URL metaflow_mage-0.2.1-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb95cf499d02e1a35d030c50c9777cb880a6b8e2b1a955bbd44f5ff7b9dfa86d
BLAKE2b-256 checksum
How to use checksums
afa8a126845b54788f781f9c9d13ca83632d779e22a66712b042966200072cca
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 Mar 12, 2026.

Transparency log

Security for metaflow-mage 0.2.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for metaflow_mage-0.2.1.tar.gz

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 Mar 12, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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