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.2.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.2-cp310-abi3-win_amd64.whl (69.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.5.2-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.2.tar.gz.

File metadata

  • Download URL: floe_python-0.5.2.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.2.tar.gz
Algorithm Hash digest
SHA256 023a5fb4dbce5f22a37e72f7e7d8804f3b6a6d394197a91f490cb78b990440f7
MD5 a66997f532e292a0a0d7b6da915aa255
BLAKE2b-256 112f9432302e4ad1d5f1f87f4d8a6150b05b856f2ec2370f20f71f721bb307d5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.5.2-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.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2b934e9a83de22a9a736d94e8cc9183d384bde39229c83dfdb6d55f6bbea761e
MD5 a0864b4e215ff54beeed60ca13078a56
BLAKE2b-256 6bdbc2588fcde40b7f3f2edda0be7cd61155d5f32afc187a2151519e33f57bd8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e0f52cae0a0e0a5886447e40034f7e322606ac9535727cde79b90ddfdee4459
MD5 819e3f0232445f039d8dc370d986cf45
BLAKE2b-256 b84e0e74049752b0f9de32593a34fdc86c95c44c60cd7de2dc1e34c2bee2ed74

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03145fe7233dee7bd222142ef543d08a4f0bcd75925fd6a3a06fc1fef7124fd4
MD5 067656487cba23278ecf443ffac23ad9
BLAKE2b-256 c27aa913d580a560d9879abdabdd55b602b73ad0b34de4f1b4ab0d11d3d3ec38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 25ceb1061a07f3109e01f07fa0b2c7d0902bf52c2afd6f9c9180ad83b666f301
MD5 8ca1c8ba28dd0b1346a3223c6c9a0ac5
BLAKE2b-256 66d6b90baeef4c270ac1c4725464a58c289aa7d7e3de441322f47c278c8d0f74

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 652e8f35d5f008324200d78831090d2cf8861a4da21bb08fa98f767252f95a1d
MD5 344aad02d72222a62c7e1d8079376a02
BLAKE2b-256 317cab519044440b4f825d69b77426f8615397269e064718760db7923b41b8e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.5.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fe7e05f17cf983acb56c04383aeb668f6592e33250e45eb9796ca9bf3ffe5f17
MD5 f6cef97bb46dc1fc9e3b2c73cc0f495c
BLAKE2b-256 928e9554245dc045bd08076ca23a6cc59c4efae61e9dc5288d18051048c98fff

See more details on using hashes here.

Provenance

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