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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.4.6-cp310-abi3-macosx_10_12_x86_64.whl (64.7 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.4.6.tar.gz
  • Upload date:
  • Size: 344.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.6.tar.gz
Algorithm Hash digest
SHA256 a7201d84c5d391c2cededc87d4cc709805966526213374deb521ec290d76ddef
MD5 680aad163c559342ea8535c938555d30
BLAKE2b-256 bf3652ec017f0315e629f163316a5b3ced6f7e809f1edb0fa9d20c63cd06c7d6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.4.6-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.4.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a8c988ddf9bb8c2fce19dc5c3453828ea68cfae8a2e627cbd5f91a446a9e65a9
MD5 46d9f51fa314dd0258405f78f19fc995
BLAKE2b-256 f7b9e8e36a675c7d6459a76bb17961f304004ccf51daf7a7add60868f8034f01

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.6-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 668e940264213aa334d6e63ca8442b5ca31f372ba43e8d4834282c745bc52621
MD5 fcff8e5fdc365845ffea7224110a8531
BLAKE2b-256 4ef8cf26cc6af488a0d5532ed1b1435a5bd2b040373dac39b32cfc6db90f6016

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9dc267c3d103e19b6addf745dfb3fbb7e018a6b28a6209cf702ec7e32947950
MD5 b03d464636481ff4c7198a74002f600f
BLAKE2b-256 b117889690a098c653cd9dcc3dc1e65a992725460843d73f1c4547da8b739a8d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 01aa635ade8c09007503e5f0132559371277f677415dde9ae22df8cb97320d05
MD5 ffa40ae777d4de75caa609d3ebaa1f8d
BLAKE2b-256 1f18de025680baaa82036d2d7eafb8f853ff1b22891d6cb57c005828fb5c49f6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.6-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 53bc4a9dedc50d6a4e61006efccc04303bad54f3ac6762966bcbe46a87006584
MD5 5d00d2d14fd963b686be6b9d21da5554
BLAKE2b-256 85aa7a7b61e2adf36dbcccbb135c7199ebbd9f832c9884174ef742eebb527469

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.6-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8b89b52b5e5f1e752f0750c1be45b93f69924e695cb373fb5e6df75946adb607
MD5 19859bb8a68344405135fc9c1c3eb899
BLAKE2b-256 931651567b2c9fcc9316682197804166c8bd34536e68eb0d2163d7556852168a

See more details on using hashes here.

Provenance

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