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.10.tar.gz (406.4 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.10-cp310-abi3-win_amd64.whl (70.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.10-cp310-abi3-musllinux_1_2_x86_64.whl (70.8 MB view details)

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

floe_python-0.6.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (70.8 MB view details)

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

floe_python-0.6.10-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.6.10-cp310-abi3-macosx_11_0_arm64.whl (61.1 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.10-cp310-abi3-macosx_10_12_x86_64.whl (65.2 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.6.10.tar.gz
  • Upload date:
  • Size: 406.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for floe_python-0.6.10.tar.gz
Algorithm Hash digest
SHA256 73f59a8dd34a9d7f98ddf2db2312157c5919469d9fbff1a05c5411958019ee73
MD5 ee886b54551c02ee1c7169798416ff78
BLAKE2b-256 fd0028d43a54bae3ab572039f331d4f6862dab36a1733d153eef670ea546492e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.10-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.0 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for floe_python-0.6.10-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6c9e5a9d341ba2433e30f1007058a3ab9a0bc40c69f0649b18c7adaa77a60f76
MD5 5fe12a2b026f4468b883152d187f8b93
BLAKE2b-256 6cf92cb27c398ad7da520ddcaefea7e3f57e6ca8b6da2710d108ea8b5a7a8110

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.10-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6bc4070022b860ac5b1e259e8bbcac33b6083a75176c7ba53857828d784afc1c
MD5 7afec80f97e03d7ffd973f4bf16d4ad3
BLAKE2b-256 8438d8993ecffc510e61a7703bd6df976cd95022e9b6848e02247b3a7ec8bd5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 715c3075416171c7bd16e89f23a320168348058a4931d7e96704588f866a6ea4
MD5 076b96335eb8e2e80d33668a8e109629
BLAKE2b-256 a0dc95b8b82dbf3e99b8b73375a6973f5678bfa2952edd03e176b626824e4a2a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.10-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fea3ba49e8e989cf23e7dff62e0d590846676ce9e493f39c101f664239e6a6d1
MD5 994240deb8d9b329ba21c67075736b65
BLAKE2b-256 775aa20ae9ed440b6236bf6bfd29311e8804824af756274e6474b9f7e98068da

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.10-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0dbcea8120b24ba2cb21c721657f0118e0146630f645cf8380a3d963b42b68ea
MD5 751e3d3c0e087f859068122081784fca
BLAKE2b-256 4ebf1453e32b5cee7dc79bb459d93711ab5a9c77e93f5ad0a38f1d488694c05b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.10-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1809f110d5a7671db2e66411d7b005b35b74de45ce417d0c72d96a568c005c3b
MD5 29ce6e2ec776a2ede3fd8ee04c33daf3
BLAKE2b-256 706a84ea7854776a88e031226df1e5052e86327bce9a8748b245e7397832dd01

See more details on using hashes here.

Provenance

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