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.4.4.tar.gz (328.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.4.4-cp310-abi3-win_amd64.whl (69.8 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.4.4-cp310-abi3-musllinux_1_2_x86_64.whl (70.9 MB view details)

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

floe_python-0.4.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (70.9 MB view details)

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

floe_python-0.4.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (66.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.4.4-cp310-abi3-macosx_11_0_arm64.whl (61.1 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.4.4-cp310-abi3-macosx_10_12_x86_64.whl (65.5 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.4.4.tar.gz
  • Upload date:
  • Size: 328.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.4.4.tar.gz
Algorithm Hash digest
SHA256 471a1350e7101fd53032ebf9324733cdde9408825679e7759719f195d1e949fc
MD5 31a986d07ad3eb1c3f75ed681401353c
BLAKE2b-256 e669e66c0ab16dfe068fa516eefdb46b8f823c554c61137285464e52638076d9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.4.4-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 69.8 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.4.4-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9e30e682bc8f1dd0263c71be6a7dd548117582360f707578d02f4a4e7918c3fd
MD5 95aa4b01a205ab8a479196e9b84405b5
BLAKE2b-256 65539174734cfe94969e0fcbde639f731bf7a112a1ce7881e9646feb0d5b4de4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.4-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b59f9513d492270e880c0f4889f9c55309c93e62987ee7c8182dc66aaeacbc5a
MD5 016f09d8c083b673c4d5a387be018d33
BLAKE2b-256 0b77d21546610882eea629d49c188c6dee4acd577a35f3ff5be22c47865d589f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04f004bf2e856cd55d280fa0cfa4a71b1b4a0dc0dd1bbd435dd7b7b6896b4306
MD5 a1a92cdbf6b4d41594748e8ae62ea493
BLAKE2b-256 bd872f98d5d90c1d643c66df75e9840ceba94c0fcec87fcb343d164e74e220b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9636eb0cc07091d725df2ecf9af85202d509f70be6297fb2f6b48e61c072371e
MD5 953fcfb3b1b56408e2e78c8c99f21e15
BLAKE2b-256 b43f80c74b762ec85d6b696821fc61c78a7c29d687fe81362f26595d14a87599

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.4-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c8d1047e9f42d5771bcca520f15919f90770b7206ae4a438a13b5800ca92c03
MD5 56f7befa8705e1efa9d4db39ff58179c
BLAKE2b-256 db5aefc65c1e2408fedfca71ae19b37eab368b2a0406b3f8bcc98b12fefbba70

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.4-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 663000419eda6035332015751b976ba86f6c5f238e2d0f50ec8ab0c0f5d72259
MD5 f04ecc66cc7fd0a9c26e1cf4dfee3fc9
BLAKE2b-256 d182c5d22aa21e5ed868784a3033e2a082f52e17b305928bbce8334cc9073a20

See more details on using hashes here.

Provenance

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