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.4.tar.gz (396.7 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.4-cp310-abi3-win_amd64.whl (70.7 MB view details)

Uploaded CPython 3.10+Windows x86-64

floe_python-0.6.4-cp310-abi3-musllinux_1_2_x86_64.whl (71.4 MB view details)

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

floe_python-0.6.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (71.5 MB view details)

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

floe_python-0.6.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (67.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

floe_python-0.6.4-cp310-abi3-macosx_11_0_arm64.whl (61.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.6.4-cp310-abi3-macosx_10_12_x86_64.whl (65.9 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.6.4.tar.gz
  • Upload date:
  • Size: 396.7 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.4.tar.gz
Algorithm Hash digest
SHA256 8e5f66e6952a1a48707b2ed41e2a3d1b700ae76f73a9e97363eeb349c8bed9b0
MD5 35dc07b34c37bca85e656485fbb84bce
BLAKE2b-256 3b985ecfa89e66b6347d411463fac87ef286a28cd11e323b040c7da100fd97b6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.6.4-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 70.7 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.4-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1a615588d94d7ed02c6f4b93e19806cca81b612e103fd92f8bf7b417c8f323df
MD5 bbf26560c6149873ac4730767134a913
BLAKE2b-256 9f9ac63ad7c51916cfb65ce6a5d61ee031aacbf9e61de85809c9feef2024a2b9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.4-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1dbe9c0b9d2bc273ac7fc310511c3ca9571155f6b096086391b74ee7c085395b
MD5 17abb85382aa402fb08a7b72ed920590
BLAKE2b-256 6cac2e3c9dd80a34af7bd096c67f8a0d1bc6539f2510ec16a69d52c332c65786

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9fd69918e776c563b4c355b06568f3922d5f6d45377fc596cb8eaa6b1cccf226
MD5 5feff271369365ca61d43f61f709456f
BLAKE2b-256 7ee587bc14b814452ba6a24363792cae9427292c44213309830bcce9d6561a41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3d70ba6085399be6b35a7aefeb7507afb11804ae34a74ef41881372c33a2bfff
MD5 b5689a04495a1f2f758dd6d5d53a24e6
BLAKE2b-256 9533a46b115c16d27eb829329347b52736a4a272371aeb97b400139bc6a04fc8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.4-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb7109499ac42ad8e79c3d76b145b9237cddc1d1e2c76b415cf6ce4321d55139
MD5 0b9fe2c715a65017ed87c4d5a068e591
BLAKE2b-256 1de42ceebfda0e4ad8fb196a2d47447d8c614577e99839b4c52850e6448a93d9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.6.4-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fe3ffbcb52d7b35df5f06f5b3a0ac7ec29fff631bfe304c24bf495f305e1ce31
MD5 eb38786e0caad7283fa532b398fa6f58
BLAKE2b-256 8bf32ddc0150342c511cebde86d997d8a40a8d1bfe025cc13071605aa6c2bb0f

See more details on using hashes here.

Provenance

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