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.3.tar.gz (394.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.3-cp310-abi3-win_amd64.whl (70.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.3-cp310-abi3-musllinux_1_2_x86_64.whl (71.1 MB view details)

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

floe_python-0.6.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (71.0 MB view details)

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

floe_python-0.6.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (67.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.6.3-cp310-abi3-macosx_11_0_arm64.whl (61.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.3-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.6.3.tar.gz.

File metadata

  • Download URL: floe_python-0.6.3.tar.gz
  • Upload date:
  • Size: 394.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.3.tar.gz
Algorithm Hash digest
SHA256 45fd92b7ca27ec249be0dc3b41bfe9ff73b0019033cb8162fafa1b01303bcd30
MD5 891ee614e300980b4e8d10ff98cb6f82
BLAKE2b-256 99e1789b7f620ee9c7fd984afe7379be2cff55e1c953c54cd55cf940b4ba31ec

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.1 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.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 506d1288ddd6782141231429bcc942e409715649230913e8991e8846ce8d8ddc
MD5 1b03878de3cd05771cea9af1f4491ff4
BLAKE2b-256 a32d74e061f28eaf35133a6b827be8755b636adac8e8252fd72f2d599e45ac57

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.3-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c99446ab985a813eadc013cf6540abcf9ead2c1e6bcadbd602154082baedaeda
MD5 d5c28be0a08e82f65e760c92219df9b6
BLAKE2b-256 6b61e66b7092aedef3f868636c13ee9a56fcf4520bce8a463a923f1807ff35b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1516a7d248693b20fb592931f5c9416ad07e923c798b416c08edef3ac6fc73f0
MD5 54d3e3a5c812564e4e2a51fb7e6b0b5e
BLAKE2b-256 afc9eebc3176d2375e460582baf93fb8e810126fc519c747685b299fcaeb46ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 871e84a561e998028948e2ff4fbede7a014f1b2dd009dce1efc8f09a14aabc0f
MD5 0bb94070bc45947b78220e68adb0c2e6
BLAKE2b-256 c47b758cf8157f7892d56f7bfe77b51911ca906e7fbfbf4c81f295ddeb6a9eb4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 209ec0fd7af12bbccfa98ee291399da54a1f163e5c99e3f65a6d857c14e8bab9
MD5 2172563ba7808df79f0e423a8bddbdfc
BLAKE2b-256 43858ead765e3e8dd1b5995fe6f74bb80ef63447f8f737d463dfabb2c0a9cfe8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d90be219076ebcc485d745d041e9eed5c308299b167ed0202ac4d96e2adb0f79
MD5 bda40050dd92304744d2374e2b558c25
BLAKE2b-256 8f82966699aec3b06af3d11d0a87e47ef0cac810a01f89d5dd0e9949fd43f302

See more details on using hashes here.

Provenance

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