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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.9-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.9.tar.gz.

File metadata

  • Download URL: floe_python-0.6.9.tar.gz
  • Upload date:
  • Size: 405.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.9.tar.gz
Algorithm Hash digest
SHA256 085a79c5ca0dec1ccd657ce51141c14d8382292416a4c8dfd2f2385d8a176ee6
MD5 0d8c1ffce970aa4d5bad387dd9044f8b
BLAKE2b-256 94f5ed879bc10bda7d8ab9dbd64d4a0cdeed26c5e888b108d3cd27628d53b363

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.9-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.12

File hashes

Hashes for floe_python-0.6.9-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dbf180504155be5ab8a3e3fe31ac2d1394710f145b0ccddf38a0dd6ee609d323
MD5 cc7ef6a2331242f1144f718435236aa5
BLAKE2b-256 33678f3ff8ed3e76ce346187a53e14ec503981318723ffc230d9ea42c02b57e8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.9-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 701c4b57c43ea1d4773531d45c9d8622c50422bc18e7aeee6ca007da547b361a
MD5 14dbd97c4b2205d0e3a25ad4fd87dfa8
BLAKE2b-256 8fd66f486b416f40b5ac38896d50a37ae2a5fee19f3ed45385cdeff131905ea4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.9-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fcf8fe1cf927e080ed2567f50f04f1a54b62edc01af54d757b3bad8f9a93e6a4
MD5 e1beee525a13f8c9dcd03d576d6c940d
BLAKE2b-256 4c972bc774fad61ae73c12fd4a927693ee31bb592769807511a7e0959ece6b89

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.9-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aeee9ff8054e1790d5864aa0e123d30760ffb1d53361d946584e7adc9a24b22b
MD5 7d5de327db2063f63ea435da08a27a81
BLAKE2b-256 57d0d403189c9cac6bbc6a8efe3ff35d0d6b3386edc015e60079bf4287971860

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.9-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8bd09645b642d3c5370bfe7e742780e1f5d1377fa27bf1e29bd64f02bbc43db
MD5 6d35580a3fe5cab1c8d8efb7ae373f66
BLAKE2b-256 ee485b18ed23ffbee1c152a734d86ec13d7dbfdd2c836af9f234e3dfc31a3805

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.9-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 aa43c1a58b3a05eb18f65604e4a3d791354f4b3bb53fa424edab2d0ecdc49536
MD5 73f4a290a5bc33e53118b1df7b71fa92
BLAKE2b-256 800dbea3b59b02beb2ebe6b48eb18f247fe3af27388e8675ddc36c10d79adc04

See more details on using hashes here.

Provenance

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