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.6.7.tar.gz (404.1 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.6.7-cp310-abi3-win_amd64.whl (70.6 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.7-cp310-abi3-musllinux_1_2_x86_64.whl (71.4 MB view details)

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

floe_python-0.6.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (71.5 MB view details)

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

floe_python-0.6.7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (67.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.6.7-cp310-abi3-macosx_11_0_arm64.whl (61.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.7-cp310-abi3-macosx_10_12_x86_64.whl (65.9 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.6.7.tar.gz
  • Upload date:
  • Size: 404.1 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.6.7.tar.gz
Algorithm Hash digest
SHA256 5ac6a0aa6948ec0330cecbbee480534265bc08ff08472bd067b24ed84071db79
MD5 cba42b4b3b53d3b202f43bb5cf37b2a9
BLAKE2b-256 e803b116f91f61891ae074b0f8b29949b07191da0966345a8c450efdc55b1ffd

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.6.7.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.6.7-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: floe_python-0.6.7-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.6 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.6.7-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d35302edd14665caf1447e16a17650e6ffc3ae98311518c3e4b47cb63dad2393
MD5 5703e73e0da14f2347715a51562458cb
BLAKE2b-256 31a7724442ab48a624ae3d744a89e952d9b5de878740e81d0849530ea8c53bdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.6.7-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.6.7-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for floe_python-0.6.7-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8cbe8a1c3d68067e0e98d4b08ad7e79c4bb96346153202139321b082827bcf21
MD5 dadf06ae1a9460d230a5c05c2efc7ece
BLAKE2b-256 0d08b1cf260d2aa391bd2656bd5658e17ae42094a4f60635e3452079c1a76635

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.6.7-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.6.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for floe_python-0.6.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b3732f264085b5fd725ab14655e9e048ed99d39f5f4c5c7d8155796f5a4b4b0
MD5 76f043eff8ba885e2e98cc462bfe97f9
BLAKE2b-256 ab7819be743cdb705c073e7f43da5ab402aa371dcb5735f6ff02082c40f7f3d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.6.7-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.6.7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for floe_python-0.6.7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 83a7829c65961f41d44aab0168b4c03132bf8c0de7c6ad6c5d5807111b8faee9
MD5 8c5ac338d1d95d5f9c8fb47c8c1392b1
BLAKE2b-256 d5e72c9c1336d787b4328cb7399fc72111cbc5ff33612c6a413adbcbafe22f2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.6.7-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.6.7-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for floe_python-0.6.7-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8774895ab0aed9dcb253759a8b2761322aa06e41c16f0d9db3a3e7e519822b4
MD5 ced678c3d4cfd6a2870ed1aeea60c0f8
BLAKE2b-256 dbc6c0947cd5574031f83e3fead7b2734369fa3ba585d7ba96b02d0d505f44d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.6.7-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.6.7-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for floe_python-0.6.7-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7cc8cf2954d389e09ee45951bf6edfe6daffd0cfb5ec5c2e6feb31b31315a91b
MD5 c7d20283702826268cecc5701193f997
BLAKE2b-256 aa42698a2fc379d4b2d56c608a2d52f89374798a9c74cab605bc05f19716e996

See more details on using hashes here.

Provenance

The following attestation bundles were made for floe_python-0.6.7-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