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

Uploaded CPython 3.10+Windows x86-64

floe_python-0.5.5-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.5-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.5-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.5-cp310-abi3-macosx_11_0_arm64.whl (60.5 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.5.5-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.5.tar.gz.

File metadata

  • Download URL: floe_python-0.5.5.tar.gz
  • Upload date:
  • Size: 380.7 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.5.tar.gz
Algorithm Hash digest
SHA256 fa2a8715bf87f47f85b2432d785b25f42211cb779ee313c3d3f1e5965f6b0032
MD5 16dc13f6ffbbbb97f68438c3da25ebfa
BLAKE2b-256 8f0d0980452f40473a615486e3b6c83ab325e2779b7ff77cee3327583e43ec5f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.5.5-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.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 96413acf4eb4590ef6e15fd2406829f08a892311ca597872dbd68770e1480f67
MD5 2199bc31beed73565c699207d512efe0
BLAKE2b-256 0597702138516452f25109801742aa556bb9b4059c12d5abcbf4aaff37424e35

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.5-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8004735db605ceb589a7e668a2568f739fd6744ac0cd644b05112dbb2182e86d
MD5 77775552b602919972ce589dcb7d0a4d
BLAKE2b-256 e95fc5e3772dd8a50b9693c32a17bb3ede6463c568d6ee79beb610c9455aa347

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c6faa11fab5512e20e564c317b8982c8d9bb285c2b308004c9f8dd8c83a9320
MD5 5833cf9b2086ad2954639872ccce9278
BLAKE2b-256 0ea584471a7fb1f6843617b6de34dc2dc00413ad090051d707733e74a2368334

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 085a2866c4870d3934adf60eb7f3098303a37fccbc67f725f5198c7d8b28c25a
MD5 8645efd69b6ac175cd991682029d1556
BLAKE2b-256 c7ecc0e8c45b4f589177e716baae71adb26f4be3aa6b570a21dc6c75c24a260b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0effb5f933fae56356e2c64fd6507eabf4965a4f7424cbddf635954a68baa9a
MD5 92add8b8457430994eae94a2610b1741
BLAKE2b-256 43fe5d4c1a54e5853fb7229dc4aa57533a28218888bc7331e3ed2333a3fa46dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 60cdef3a28f6c55a945cfc55a39b1332092ae16d2197ee1c31a34b974aee9010
MD5 fca5d790934026d3e83e602dcd9ec184
BLAKE2b-256 2ad155905f29efe8d868a7577fe4e01f962411f30ac1b8ad924f1f0a528739a6

See more details on using hashes here.

Provenance

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