Skip to main content

NoETL

NoETL orchestrates APIs, databases, and scripts through a declarative Playbook DSL. This package is the NoETL command-line tool, installable with pip.

pip install noetl

It installs two equivalent commands, noetl and ntl, and an importable Python API. There is no separate binary to download and nothing to put on your PATH yourself.

noetl run pipeline.yaml --runtime local --set region=west
import noetl

outcome = noetl.run("pipeline.yaml", variables={"region": "west"})
print(outcome["status"], outcome["final_result"])

noetl.cli(["catalog", "list"])   # any CLI subcommand

What it is

The CLI is written in Rust and lives at noetl/cli. This package compiles that crate into a native extension module, so noetl.run(...) and the noetl command both drive the same execution engine — nothing here reimplements playbook execution or shells out to a separate process.

Every subcommand is available: run, catalog, context, auth, register, status, query, ehdb, provider, subscribe, and the rest. Run noetl --help for the full tree.

Python API

Function Purpose
noetl.run(playbook, **options) Execute a playbook locally; returns the run outcome as a dict.
noetl.cli(args) Run any CLI subcommand; returns its exit code.
noetl.__version__ This package's version.

noetl.run() returns the outcome envelope: status, playbook_name, playbook_path, started_at, completed_at, duration_seconds, executed_steps, step_results, final_result, and error when the run failed. It executes locally; to submit to a distributed runtime, use noetl.cli(["run", playbook, "--runtime", "distributed"]).

Versioning

This package's version and the CLI's version are separate. noetl --version reports the version of the Rust CLI compiled into this release — that is the number to quote in a bug report against noetl/cli. noetl.__version__ and pip show noetl report the package version.

Cutting a release

The published version comes from this directory, not from the git tag. Nothing in pypi.yml derives it from the tag, and semantic-release's prepareCmd rewrites the root pyproject.toml, which is a different file. So:

  1. Bump packaging/pypi/pyproject.toml and packaging/pypi/Cargo.toml to the same new version. They are bumped by hand and must move together.
  2. Merge that, then push a pypi-v<version> tag matching it exactly.

ci/verify_release.py gates the publish job and refuses the two ways this goes wrong quietly — a tag ahead of the source tree, and a re-tag of a version already on PyPI. The second one matters because twine upload --skip-existing exits 0 when it skips, so without the check that release would report success and ship nothing. Run it yourself before tagging:

python packaging/pypi/ci/verify_release.py --self-test
python packaging/pypi/ci/verify_release.py --dist dist --tag pypi-v<version> --require-new

Known limitation: DuckDB

These wheels are built without the embedded DuckDB engine. Compiling DuckDB from its C++ source takes tens of minutes to an hour per platform, which a five-platform wheel matrix cannot absorb.

Affected surfaces report a rebuild hint rather than running:

  • kind: duckdb and kind: ducklake playbook steps
  • the sink: duckdb: target
  • the noetl iap command family, whose state ledger is a local state.duckdb

Everything else — HTTP, shell, Postgres, playbook composition, providers, secrets, and the catalog/server/worker verbs — works normally. If you need DuckDB, install the CLI from source with the feature enabled:

cargo install --bins noetl --features duckdb-integration

or use a pre-built release binary, Homebrew, or the APT package — all of which ship with DuckDB included.

Requirements

Python 3.9 or newer, on Linux or macOS. The wheels are abi3, so one wheel per platform serves every supported Python version.

Windows is not supported: the CLI uses POSIX process and signal control, which does not build on Windows (the native binaries are Linux/macOS-only for the same reason). On Windows, use WSL.

Documentation

License

MIT

Metadata

Release files for noetl 5.3.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 noetl 5.3.1
File Size Uploaded
noetl-5.3.1.tar.gz 50.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for noetl 5.3.1
File Interpreter ABI Platform
noetl-5.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
noetl-5.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
noetl-5.3.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details

Total release size: 23.4 MB

Release files / noetl-5.3.1.tar.gz

Download URL noetl-5.3.1.tar.gz
Size 50.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d68d970bed6165c1de298cb23bb99045cff748e2bd69721fe4f70b1d1ac12c9c
BLAKE2b-256 checksum
How to use checksums
9bde975fe60293d4ad44d3cdddf4399afd618fee23eaa52bdef37b82eb081b4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / noetl-5.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL noetl-5.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 8.2 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
f3f5d28c717227e79c651e7731541c7558393ff2b74ee4f99c88dd935f507410
BLAKE2b-256 checksum
How to use checksums
779a4c740d0bf37825409913b6e2a10b35fe0f18bcbc12404ab4a0d14e5751b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / noetl-5.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL noetl-5.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 7.8 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
812bcbf78bbaa3f794c6404b133823704e9ebb5d57efe81a140527e1a1acc2e5
BLAKE2b-256 checksum
How to use checksums
f88bcb86129e9f37fc55a2f3b9684a8c91bb9470b8611a92b4091666c863a67c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / noetl-5.3.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL noetl-5.3.1-cp39-abi3-macosx_11_0_arm64.whl
Size 7.4 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
77244b2bdfdf3cc93b273ae7862db20d493f0e538b0c62e8ec279c14209eea78
BLAKE2b-256 checksum
How to use checksums
2dbe38f3c8ec0a78c34929c0fd5e0e716bda0be2cccb241a75ac9a2a22d9dc41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

5.3.2

4 release files

This release

5.3.1 This release

4 release files

5.3.0

4 release files

5.2.0

4 release files

5.1.1

4 release files

5.1.0

4 release files

5.0.0

4 release files

4.26.0

2 release files

4.9.0

2 release files

4.8.0

2 release files

4.7.0

2 release files

4.6.0

2 release files

4.5.3

2 release files

4.5.2

2 release files

4.5.1

2 release files

4.5.0

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.99.0

2 release files

2.98.0

2 release files

2.97.0

2 release files

2.96.0

2 release files

2.95.0

2 release files

2.94.0

2 release files

2.93.0

2 release files

2.92.0

2 release files

2.91.0

2 release files

2.90.0

2 release files

2.89.0

2 release files

2.88.1

2 release files

2.88.0

2 release files

2.87.0

2 release files

2.86.0

2 release files

2.85.2

2 release files

2.85.1

2 release files

2.85.0

2 release files

2.84.0

2 release files

2.83.0

2 release files

2.82.0

2 release files

2.81.0

2 release files

2.80.0

2 release files

2.79.0

2 release files

2.78.0

2 release files

2.77.0

2 release files

2.76.0

2 release files

2.75.0

2 release files

2.74.0

2 release files

2.73.0

2 release files

2.72.0

2 release files

2.71.0

2 release files

2.70.0

2 release files

2.69.0

2 release files

2.68.0

2 release files

2.67.0

2 release files

2.66.0

2 release files

2.65.0

2 release files

2.64.0

2 release files

2.63.0

2 release files

2.62.0

2 release files

2.61.0

2 release files

2.60.0

2 release files

2.59.0

2 release files

2.58.0

2 release files

2.57.0

2 release files

2.56.0

2 release files

2.55.0

2 release files

2.54.0

2 release files

2.53.0

2 release files

2.52.0

2 release files

2.51.0

2 release files

2.50.0

2 release files

2.49.0

2 release files

2.48.0

2 release files

2.47.0

2 release files

2.46.0

2 release files

2.45.0

2 release files

2.44.0

2 release files

2.43.0

2 release files

2.42.0

2 release files

2.41.0

2 release files

2.40.0

2 release files

2.39.3

2 release files

2.39.2

2 release files

2.39.1

2 release files

2.39.0

2 release files

2.38.1

2 release files

2.38.0

2 release files

2.37.8

2 release files

2.37.7

2 release files

2.37.6

2 release files

2.37.5

2 release files

2.37.4

2 release files

2.37.3

2 release files

2.29.0

2 release files

2.28.0

2 release files

2.27.1

2 release files

2.27.0

2 release files

2.26.2

2 release files

2.26.1

2 release files

2.26.0

2 release files

2.25.1

2 release files

2.25.0

2 release files

2.24.2

2 release files

2.14.8

2 release files

2.14.7

2 release files

2.14.6

2 release files

2.14.5

2 release files

2.14.4

2 release files

2.14.3

2 release files

2.14.2

2 release files

2.14.1

2 release files

2.14.0

2 release files

2.13.1

2 release files

2.13.0

2 release files

2.12.8

2 release files

2.12.7

2 release files

2.12.6

2 release files

2.12.5

2 release files

2.12.4

2 release files

2.12.3

2 release files

2.12.2

2 release files

2.12.1

2 release files

2.12.0

2 release files

2.11.0

2 release files

2.10.9

2 release files

2.10.8

2 release files

2.10.7

2 release files

2.10.6

2 release files

2.10.5

2 release files

2.10.4

2 release files

2.9.0

2 release files

2.8.9

2 release files

2.8.8

2 release files

2.8.7

2 release files

2.8.6

2 release files

2.8.5

2 release files

2.8.4

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.5

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.5.5

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.8.0

2 release files

1.7.1

2 release files

1.4.0

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.0

2 release files

0.1.38

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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