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.2.tar.gz (394.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.2-cp310-abi3-win_amd64.whl (70.2 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.2-cp310-abi3-musllinux_1_2_x86_64.whl (71.1 MB view details)

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

floe_python-0.6.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (71.0 MB view details)

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

floe_python-0.6.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (67.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.6.2-cp310-abi3-macosx_11_0_arm64.whl (61.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.2-cp310-abi3-macosx_10_12_x86_64.whl (65.5 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.6.2.tar.gz
  • Upload date:
  • Size: 394.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.2.tar.gz
Algorithm Hash digest
SHA256 d8a2b26dc4329e15dc31d9926dbc02eb35b2fb4ab0d9e99148bf96d4fc03fb42
MD5 312e99ba547a3be980eba85a9d75bf26
BLAKE2b-256 f11539ef089f94df41ce755977de1d8e403e4fb86a7044b3302a32d92b257865

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.2 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.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a07d12d10fd7ad1d47a58a8ddeeb748a2198b2961899156a21b8af580e96ce05
MD5 f1fa775e7e9338d8a16ef8a4cb1b8077
BLAKE2b-256 827d757f44fb5b1d50b86702b82ad31d88d8abfbf871dbbd907794db6cc626a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9433764d49b00c24bc966ee682188bd892673679f90a7ce39c9527a8355a1e2c
MD5 3b876db15d958ff2b7dac8bb6a23100b
BLAKE2b-256 107c649f33d80ef0cf37a8d76ebe33ad41d9f2c1d0cb246a65280b77b5843464

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b587917bb916d1552c12fd6bf0321441efb7a7b3ade5763789419745e5a47c98
MD5 b47ae0aa08fd3e0b5ea2a0734b652519
BLAKE2b-256 84e57c9bddf43ed487b0463365fb0a60b60a025b9147b3a7f6ea2896da6122ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 890d9d20d6f70243667050c84c8d3bd5f11a1df09ecfc08c788603f90b15deb7
MD5 96470411de1e3b24fc8b9bfc4b1fdf50
BLAKE2b-256 dd55b120f9b0bf78d12f221369e57c3103c98e84ff17c49f3cb039dcd07def97

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f724d6c4c20b62920e2332a25e5a97d4ac4b47f803c961e83cae7af71b1fa83
MD5 b289b3ec5a19e2c057dfee4bcf0c3d55
BLAKE2b-256 8069a57eedd0afa9e3f628915c423e59195b3fb2040de1516e5e94ecc627a874

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1a0fe89291f501151496ac9110c6a688f6f333373c83bfc64fb0baa39c4ec11b
MD5 db67f86ddfd0c6b1419bdaf5aaa36ed4
BLAKE2b-256 68ecf2811daebcce649c36c1bc700d1e87e01156bc7feaf36e676bbd22b21616

See more details on using hashes here.

Provenance

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