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.4.3.tar.gz (326.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.4.3-cp310-abi3-win_amd64.whl (69.8 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.4.3-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.4.3-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.4.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (66.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.4.3-cp310-abi3-macosx_11_0_arm64.whl (61.1 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.4.3-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.4.3.tar.gz.

File metadata

  • Download URL: floe_python-0.4.3.tar.gz
  • Upload date:
  • Size: 326.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.4.3.tar.gz
Algorithm Hash digest
SHA256 495342de580772b5190b3f2aa4ad0f638cb123d87c190939006b9353d1b68385
MD5 20a3bdfaceacf73e8f74de8a60cec1e6
BLAKE2b-256 aca4480ee5ef8c3457383978b3b0d282dcd407f80442a0739e38b258868f2997

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.4.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 69.8 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.4.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b5008d7bd14a60da267dec30eebd44d5499e84462013eee8b20483c1d7d4da91
MD5 43f6173d6a2d61ed2c0045024f93e4fc
BLAKE2b-256 6b89018517347e2e43b71690b477bff401994b667e23dbf8a3d9ded554fd54ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.3-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f314f7c8faffbd6d38b76aab44fa9cf962616d66570b5c104c1e9ff82a6516e1
MD5 cbebc63c966c495b026e419b7ad2f76f
BLAKE2b-256 6110209b1ad30d0d9101c6e8852ca666d0b6954ea5f81c7b55d6bf9b6b9e2a54

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e2dc36f95f9c10b8b27979b1e8f722c0a4c2761fefe41b67ec0dfe40cef766a
MD5 7141d9771783fec6a8ef236b49e8a654
BLAKE2b-256 e898709fe06a4d532e5f6a5c0124b19bd97762026c788792a7dbe4c9841b3262

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 30efc67907c4a55003fb01689a739835eaed7bee363146006950a637c1177fcc
MD5 0dd4d8a71a54229a537a04dbbfbb36b8
BLAKE2b-256 b986ce0eed392876e1a56b01dc6db4f4704649612efd8e2699b78582a8b5d05c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1432383506ef29313367efde922895585ab488111320323f4542e2b4360477c9
MD5 5450370da62e3b92da45ddcb7d970573
BLAKE2b-256 504ae8855fc8fecf587a22300fb861cb62527d684a2c78f0e188615a94ad1571

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c3e0b548f9f4d8e9497f9e50d4be6b5e5b7a8507ff8645cc6acb0fbb38e31bab
MD5 03c346616aad2c0e3a8f6bd38ac97799
BLAKE2b-256 5172c5188c31ed39c0250d7766a7687946166a2fd0883049c3c286cfb246285f

See more details on using hashes here.

Provenance

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