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.6.tar.gz (383.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.5.6-cp310-abi3-win_amd64.whl (70.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.5.6-cp310-abi3-musllinux_1_2_x86_64.whl (71.0 MB view details)

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

floe_python-0.5.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (70.9 MB view details)

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

floe_python-0.5.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (67.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.5.6-cp310-abi3-macosx_10_12_x86_64.whl (65.4 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.5.6.tar.gz
  • Upload date:
  • Size: 383.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.5.6.tar.gz
Algorithm Hash digest
SHA256 2d77be8c3e4fa49fac9c1af62c96ee21c2419b25d638fb68247835f98967a3b4
MD5 c3ea762a77661388ca760e8c8b9ec17f
BLAKE2b-256 4cff4e95a0f9bb904d6edf85565b01deeec186496ab5d3cd094b5970a950a492

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.5.6-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.1 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.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f1d4a035661c21341222c4250eba30755c978baf1e850c74914661d699ac02ee
MD5 83be23b02af397c0c52b9cf7bf80bc6e
BLAKE2b-256 3b9f73c88e8771b8b9aa2a3a526a5ced4aa4a6fc8bb5aac65905dd70f80826f1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.6-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 424547205d261a779abfa0fb87f090aaa37259e0b70a0a3a3fed51f88caa59ed
MD5 09f226624df7ca8105a1dcacd5aa35aa
BLAKE2b-256 84fea664b19d2cae9f693e40e96d6a009f662e7eaaefbd4a5e21a9a0ade9bfef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60c010937a531aa15f0abcc2770d1ffdcffd61cf16092028fee0e6afd55c0f12
MD5 e6aa91ed1b42c05ea683afcd921435fe
BLAKE2b-256 cf5f07676e48a7cd96168f87dbfff64325d578692c039753f886c94fe4367a4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9ca7505850aa2720d14f1897b77800f13f433d9e2d2a56d72c552135cbe03c66
MD5 ca03392dc99c9d6fd5afd74848b17333
BLAKE2b-256 eee389a74861964058451161bd97d3a1014a6af2bd84e25e84abb14374dd06e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.6-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ffd35532f1e750c26cb6ff252a3d01eb1cd330bc6805442b46022f6bd972f7f
MD5 d72ffb1521c5d006a0df82bb3d9a1022
BLAKE2b-256 04ac896747cb58d941e814b640791c784bb468f9bffd0abcdca190383054ac82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.6-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2fa1726117a736ac9889c9c058d55c6383abedc67b8124d2d859217a46543a8b
MD5 3ae0dc092cc67d9d79fb0d9c5e621868
BLAKE2b-256 8a5401d542ce3eb529813c4e7e830ef4a7b49033e1c494d555ca47e2a76812e5

See more details on using hashes here.

Provenance

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