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.8.tar.gz (404.4 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.8-cp310-abi3-win_amd64.whl (70.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.8-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.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (71.4 MB view details)

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

floe_python-0.6.8-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.8-cp310-abi3-macosx_11_0_arm64.whl (61.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.8-cp310-abi3-macosx_10_12_x86_64.whl (65.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.6.8.tar.gz
  • Upload date:
  • Size: 404.4 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.8.tar.gz
Algorithm Hash digest
SHA256 9f90551787eb3fb15dce04e2c47ece1732c5735ac837af8dc84a2313ad3909d6
MD5 8130eef89a51dfed623607745ba28677
BLAKE2b-256 1cc0bd2ee22f12000ea98fa211f57d413196ad00d166af2c90509d9c97fdb1c7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.8-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.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.6.8-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e2551d97c6ad76616473ea82420681ce7ef84ca0c26cc3d62b3b22a3ec8926e8
MD5 e80cb0e731be0cbab238b51c1c3fad48
BLAKE2b-256 2ff81964f55e637b11c99b3e9adbf6fa7610dfd14d551f62dca87be9c6185980

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.8-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cdcbfd435a04fd29ce0ce5197daee1547191a0103f52b009ad0c54021d0b855c
MD5 6b857b35fc77740ca63ce83014aacfe7
BLAKE2b-256 618d5fa5c84dff71a3848af9feca3b0e75683298d279d86a1dac87e03510644e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a56ae7cc03ed05e49ab68d6332762bf1b3ddde6eab88450e0a4060b1612f0de1
MD5 650a76b2f5e399b2fc763d18685bd676
BLAKE2b-256 050b45fcb01de6e244ed23dfc34f4f03c14bbc757f6e7d3d6f0cb3dc0ffee242

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e6e733c543c94e2f404152b0ef317242e934fa4243555455733096625daad1b1
MD5 1efa29f7850716e42122ed56052b103d
BLAKE2b-256 6a6f344e78bb08beaf3061195c670bd7af06caa4dfc7a5c046c7c44e670dfb3a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.8-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31f361261e8ea79571d8faa292af07312a312fbd925e0937c0b76c2259b9d394
MD5 ffa68a36f1e19c37da76e2f16a135373
BLAKE2b-256 d8a96f101f836cdcceadbb626285fda8fbb42809367e75c9c3e565660e0bdda3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.8-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4ef37c1dd90a68daea68a27c1c99578216b39bfb057212d50368734d09bb8f7e
MD5 c5e98c618d09b87d491a0c6d3cc287e6
BLAKE2b-256 f8eb5aee5aab60c87e4d422fada24c13a986b361d1319e6f38aa5a86690aa53e

See more details on using hashes here.

Provenance

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