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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

  • Download URL: floe_python-0.6.5.tar.gz
  • Upload date:
  • Size: 397.1 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.5.tar.gz
Algorithm Hash digest
SHA256 6491cb46f7b2361f017d1ecccb855ae504e2eb00a19d1cd2fdab120296445838
MD5 c97d3c58812e6dba3288a66a9d5efc64
BLAKE2b-256 548acc52bd6b02e89bee0d564d9d612c0b51787304f1db642acba6aaa1f8405a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.5-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.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1541f4370e5740557b196db2530b60a4d946329239429d7d1de7a0d133bacbdc
MD5 7bdfc1965e5bd7b25f464038b6220bcc
BLAKE2b-256 29afd499c18990e674a8ee1a0464f06c04a057d2f31d4dd50a578d234d64c78e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.5-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7a6152fc4640232fb4d1450e797a179819c2879d0cb3091379723490faf1eff6
MD5 c9cf2a450ae2f42f953ca404ded38628
BLAKE2b-256 a0ecaea8144e4e11d59cf70732b50a3ddf2f272c2ad0d970ec0dd7fd5dee174a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc63a0440eda2a4890a80a46f6ac0d77b6a24485f74240ec2f63f9614d8d3b9f
MD5 cf858f4d91fe01a73292932d8c13b6a1
BLAKE2b-256 16652fd3917c3f88b2a3ffae4f93ecc35c52482dbe620593a2908d547db4fa2b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 baaaf3f8e6001b5914091ea80dbfd4860f3ab13e6d8c7fb69018fc579a260e14
MD5 a30f25eeacd20f3eaf5acf598a17619b
BLAKE2b-256 00b47b505649cb1560c1f7e3fee7f30975ed355af7887819a4d16d47c18a0b90

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15718de6ff7cbf940e51ba40b6c16f482a899aecb57c884f9a53135b639ff2f1
MD5 5e4e8ef43be952bcfecb6c0e1ccd730d
BLAKE2b-256 a15e13e7cba51123ee4efb44e24bdbcdc554b26257d644a65c02a8fd0133dff8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1f000706bfa31e9dbc523163a6f734690264fcc7425896b2c41041fdcfbe0ac4
MD5 d57279d685a2f446943f45c0d25ebbd4
BLAKE2b-256 0bfcbd393f3033030a0764a5906867c3ea5403b6a1d6c2f23534b25571436df9

See more details on using hashes here.

Provenance

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