Skip to main content

Python bindings for floe-core — run floe pipelines at Rust speed from Python and notebooks

Project description

floe-python

Python bindings for floe — a high-performance data ingestion and quality engine written in Rust.

Run floe pipelines at full Rust speed directly from Python notebooks, scripts, or orchestrators.

Installation

pip install floe-python

Quick start

import floe

# Validate a pipeline config
floe.validate("pipeline.yml")

# Run the full pipeline
outcome = floe.run("pipeline.yml")
print(outcome.summary["results"])

# Dry run — see which files would be processed
outcome = floe.run("pipeline.yml", dry_run=True)
for preview in outcome.dry_run_previews:
    print(preview["name"], preview["scanned_files"])

# Run a subset of entities
outcome = floe.run("pipeline.yml", entities=["customers", "orders"])

# Live progress in Jupyter
floe.set_observer(lambda e: print(f"[{e['event']}]", e.get("name", "")))
outcome = floe.run("pipeline.yml")
floe.clear_observer()

# Profile overrides (variables + catalog config)
floe.run("pipeline.yml", profile_path="profile.yml")
floe.run("pipeline.yml", profile_vars={"output_bucket": "s3://my-bucket"})

# Inspect / reset incremental state
state = floe.inspect_entity_state("pipeline.yml", "customers")
floe.reset_entity_state("pipeline.yml", "customers")

Error handling

try:
    floe.validate("config.yml")
except floe.FloeConfigError as e:
    print(f"Config problem: {e}")
except floe.FloeRunError as e:
    print(f"Run failed: {e}")
except floe.FloeError as e:
    print(f"Floe error: {e}")

API reference

Function Description
validate(config_path, *, entities, profile_vars, profile_path) Validate a config file
run(config_path, *, entities, dry_run, run_id, profile_vars, profile_path) Execute the pipeline
load_config(config_path) Parse config into a RootConfig object
extract_config_env_vars(config_path) List placeholder variables in the config
inspect_entity_state(config_path, entity_name) Inspect incremental state for an entity
reset_entity_state(config_path, entity_name) Delete incremental state for an entity
set_observer(callback) Register a live-event callback
clear_observer() Remove the current callback

Jupyter

RunOutcome renders as a color-coded HTML table automatically in Jupyter — no extra code needed. Just end a cell with the variable:

outcome = floe.run("orders.yml")
outcome  # renders inline HTML table with per-entity status, accepted/rejected counts

Use outcome.to_dict() to turn results into a plain dict for pandas:

import pandas as pd
df = pd.DataFrame(outcome.entity_reports)

Observing progress

Register a callback to receive live events as the run proceeds:

floe.set_observer(lambda e: print(f"[{e['event']}]", e.get("name", e.get("entity", ""))))
outcome = floe.run("orders.yml")
floe.clear_observer()

Event types: run_started, entity_started, file_started, file_finished, schema_evolution_applied, entity_finished, run_finished, log. See the full guide for all event fields.

Profile overrides

Override config variables or cloud credentials without editing the YAML:

floe.run("orders.yml", profile_vars={"incoming_root": "s3://my-bucket/incoming"})
floe.run("orders.yml", profile_path="prod.yml")

Building from source

pip install maturin
git clone https://github.com/malon64/floe
cd floe/crates/floe-python
maturin develop

License

Apache 2.0


→ Full API reference and examples: docs/python-bindings.md

Project details


Download files

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

Source Distribution

floe_python-0.5.1.tar.gz (379.9 kB view details)

Uploaded Source

Built Distributions

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

floe_python-0.5.1-cp310-abi3-win_amd64.whl (69.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl (70.4 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

floe_python-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (70.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

floe_python-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (66.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.5.1-cp310-abi3-macosx_11_0_arm64.whl (60.5 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl (64.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file floe_python-0.5.1.tar.gz.

File metadata

  • Download URL: floe_python-0.5.1.tar.gz
  • Upload date:
  • Size: 379.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for floe_python-0.5.1.tar.gz
Algorithm Hash digest
SHA256 1aca079c5b6654b539245e19be9adf245ba581c5b124bfa0ff272b953b7c50d6
MD5 ca961092f02196253a5f8a99524cd8bf
BLAKE2b-256 645c5cdb8a14586a5790f18342802b1f8b9f97edaf41ec4ff6e071cbba86b764

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.5.1.tar.gz:

Publisher: release.yml on malon64/floe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file floe_python-0.5.1-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: floe_python-0.5.1-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 69.5 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for floe_python-0.5.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1c1f8ae42ea6e2c4a2a638a8e52eaef1d4342d523fc867a4ae3142c0a42e0af1
MD5 e11c89c76ddd1d70f9508cd8f0f777c5
BLAKE2b-256 f357e9cbd185dd5701e3a34c4809dae0b58fcacf4ab9db699f2ddae66990fe3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.5.1-cp310-abi3-win_amd64.whl:

Publisher: release.yml on malon64/floe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file floe_python-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for floe_python-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 832a865cc503b8dfe0bfb07f1767efd861d380b01339331356a45560c2096c28
MD5 ed7b8761e9156fc7d1d636f4e1a65e3c
BLAKE2b-256 055b15780e20964acec56a5644987ba1e1ec682ea21e8539712698009115d8bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.5.1-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yml on malon64/floe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file floe_python-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for floe_python-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 35235c4806c8e8fae9df46874aca62d61faf1af431418cb741b139031a347b41
MD5 b788c9cd8447db7060de2fca6761b386
BLAKE2b-256 7824b52e5510c48a926aeeef2e36917a2c06b9beb004a4aa273f4dc9b33eb51b

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on malon64/floe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file floe_python-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for floe_python-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ac5d4f11e950101dbe9a13353db01021c7cf4a3337369d75699d106d738d6df
MD5 aa61209e7de8813570d032223a049e49
BLAKE2b-256 6cc0f7b333478f282b0cbe96c7b2abf5e57149bcb321aae5aba01095527cd194

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.5.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on malon64/floe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file floe_python-0.5.1-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for floe_python-0.5.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf8965a8548ebbd4e8d5374d383e25997e357280ce8a9e370d96c9616b48159d
MD5 750bd6f63019b45dc5f9e1c800797ab0
BLAKE2b-256 6ac47757c51b2bc45008bfebd5742d8eab9b029bb020e5c04d235dd93ac02548

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.5.1-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on malon64/floe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file floe_python-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for floe_python-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 22d7bb0b895f1314f4d68123272985726167da5fb72066127d10c9eed50f6eee
MD5 f4df92f774c02087c4e0a10e89328f1b
BLAKE2b-256 51658bee65df9ab6894438a9349f07bbb3592a0283188f834b4523ac15b479ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.5.1-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on malon64/floe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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