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

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.1-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.1-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.1-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.1-cp310-abi3-macosx_11_0_arm64.whl (61.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.1-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.1.tar.gz.

File metadata

  • Download URL: floe_python-0.6.1.tar.gz
  • Upload date:
  • Size: 390.6 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.1.tar.gz
Algorithm Hash digest
SHA256 a7b7da960e7a79f6ac193cd24b801c9f618bb9b4a2fa97824138ecfb4f2a4d7f
MD5 9879a2b6ae8983696527bd9a79abb709
BLAKE2b-256 48d71e76f3d9438438084c57807646393d402ea7846bd05f96532e328f8da418

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.1-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.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 efbdcb29084a3b3c3f348ba09ae59ca24fa0551a72b63c50bb5eacb2c4ecd913
MD5 cb333dea02f57c67577e43ff1879fdfe
BLAKE2b-256 f71e1d4c40d247dfa6e1d77a2ba21717e96c5e48a5f739d52e9c0f6e0be1b118

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.1-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 10096fcac51a807699fafd5cb4a9b0c33e9c8198d493f1820f7275344f3cd096
MD5 1c47da62f42319257005f1e64a23a07f
BLAKE2b-256 91ef7529c30a10295a13092d7b05a5226ae251f21ff9eed85770f81fab68af10

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee706cbdac9664d2686c46cbc17c5b23e1a5b880897c5b4a5c61ee9df3a27804
MD5 42fd989599da5b1ccf8a29b27bf50dca
BLAKE2b-256 cf6a0ce9dafca218eb92d604bbf683852984d072d7b5e4dcadc794a5cc2fec29

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 450c400b5c94b1d60a7054bf93d3f7d1035d64d77ba1992e993f4ff8fdb3411c
MD5 258c4cfa4526bd92672e5ecd5059bc5f
BLAKE2b-256 c687e3be4cf5ff99f6657e377eb040b127bb728f034bfdb7383a89c21c150db4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b2264c489b0831717ed3b42e23d5abd79bcb49cb99937b5f0c839bed2d1cc315
MD5 b682b4ef801370e80030b6718503f087
BLAKE2b-256 61d612373449bb01a9ba67585caaa60ea47c6ca9ac421fd7530befe9f3cfb07b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9bfc7c0ef828aab6e61bb7fd285bbe0f5f6aa7a2b964d4da5523f688f5ebe1ad
MD5 86f12093ad9c380957e53ee3f329a404
BLAKE2b-256 2e3ea2c98afe2b5962f72ed91be69e7f73bd4c9abc96389cd17470bce90317fd

See more details on using hashes here.

Provenance

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