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.3.tar.gz (379.9 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.3-cp310-abi3-win_amd64.whl (69.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.5.3-cp310-abi3-musllinux_1_2_x86_64.whl (70.4 MB view details)

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

floe_python-0.5.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (70.4 MB view details)

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

floe_python-0.5.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (66.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.5.3-cp310-abi3-macosx_11_0_arm64.whl (60.5 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.5.3-cp310-abi3-macosx_10_12_x86_64.whl (64.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.5.3.tar.gz
  • Upload date:
  • Size: 379.9 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.3.tar.gz
Algorithm Hash digest
SHA256 02b0e44910e4678b10a0b3828da5fa3f66a5b6bda9f6ee032024c6d38fefe83a
MD5 3bab999b00b59581ce5df4d395e19af1
BLAKE2b-256 a5e3aeb3d9c1216bdcad823c26eba867e55bc9f1d6219979bd6b9106c883a84c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.5.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 69.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.5.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 595b11cdb4144e81106bd926312ecdc325afea8bc59ee898d0535aa4dc57b7a3
MD5 4b9aae8d3e0fa865f00b388166366370
BLAKE2b-256 98dde5c868408e8a294f6ec0ca61b62c47f514eabb43cd091c237b2c747a5ead

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.3-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4429e94b3c87f5245d0d829e8693dd2ed7140d1742f61a69273865d30e9ceaf8
MD5 296e5cf0fce1b6685a2b0c06d80d899f
BLAKE2b-256 04bb09c5bb89408c023d3a04b455c80eef84521b775a9935fe9c2ce18f899202

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b17095079465eaebc308bc26caf47cb23f78bbd25634a66d65486fa51de42af
MD5 41d7979c28346f7176d08c9bbab478c9
BLAKE2b-256 4bf821d0652c92deb1df2536f1cbcc6e19650a21407706c0c769f95ae8d6cae1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 27e680fa0dce65832dae08572a1e16afee155c2323ba9451d1258fa85c84216b
MD5 c8a7cd7561804840a276a75be87f26d7
BLAKE2b-256 767123fdf1305e2640679c7ada1f99b81910f37180435914a6b8c8504eeaf163

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e82d85ed79821ad835a3eb28194c6d9675bf84f4cfadc187745c63cb68bad7c
MD5 224a3dd3864f341e714bf23caebc0f27
BLAKE2b-256 75b0623918351a061e374405a449db345d36986d0cce7ae6574ae1fcf7df5d52

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1fe4393ca48cce9a356e1aabe51a8d606c2ab663118a33696b7a2c17119cdc34
MD5 14155421bc5cf07cf909eee60dfb8d64
BLAKE2b-256 30d12bdf954397700f3f37b6a73f18e66c8b5530217912ef63c337eba2036725

See more details on using hashes here.

Provenance

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