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

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.6-cp310-abi3-musllinux_1_2_x86_64.whl (71.4 MB view details)

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

floe_python-0.6.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (71.5 MB view details)

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

floe_python-0.6.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (67.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.6.6-cp310-abi3-macosx_11_0_arm64.whl (61.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.6-cp310-abi3-macosx_10_12_x86_64.whl (65.9 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.6.6.tar.gz
  • Upload date:
  • Size: 398.8 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.6.tar.gz
Algorithm Hash digest
SHA256 518b3570e7c8935138219e5fd5fb0e4f6d35935e015345559c0fb6a90cbc3296
MD5 8944deab55abbc9ab8c147f357fdb9e6
BLAKE2b-256 6635c569e0d93e7015af1e1b7eddb1956ade46c96e1a34b74dd993a7bcb2d300

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.6-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.7 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.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 04f3a787c10e07743eb532cea2a3fa91d14bce41f26acfd7f361bc327e1d37ed
MD5 ee20f840173c4caee38a8098c4964fca
BLAKE2b-256 fb1be6b296f7bbe2d04864448ba2822c95bdcced1489a6b48e7a8c6e7f684fbe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.6-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8b8258b7d25dfb6eb9c212ca36e48ea97687bd22eabfbd2b8a2812e258d2035e
MD5 5eaf1fdedd83fafd64da9f6b59863187
BLAKE2b-256 6cd291c15edfbacb336f18b48d5c77a80b5db655772b5c88d2ffae610b8c298a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 16686717cf1c36edbcb202c1cb716f930a649c865c457f6d73fd5c98904033fa
MD5 c8c0a4efe8e8d8f8c5b856d6f24c05e3
BLAKE2b-256 542f4fde441cf7256b72fb5fc714a69c6da4698088dd6c1128dd0ae28773b652

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0f824d9eb8b8972f459c108a8f061cb589ad09399ead2fd8ef07da23e7a60cd6
MD5 36b874fdb3cc07c0645b115fc76fa6b6
BLAKE2b-256 c7ac426d53cc4c5cf195ba0bd388b25ee2f691dfe01cf5e7c053be4548483199

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.6-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 439ee9d8ee7139a5d852626b04aaabac3400fb11a1178cc0eb65ec18153ececf
MD5 59c2bf158c29ee365a4b8e1aa4e40d95
BLAKE2b-256 9f2c0335cb76b6f4929360606b4b2deb98fd87121c48a67ef99c4e71c594a170

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.6-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0f9b58613fdb768a8614dfd2aed6614a3bb6e5db8a862ba16dc0ad9b7df39a45
MD5 50a17f316527b1e8a785f91d82f7523d
BLAKE2b-256 1471530757c46b71abe31dacca8c5aecf86a22f4a448ed62ff9327e38bd0b18e

See more details on using hashes here.

Provenance

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