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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

floe_python-0.4.5-cp310-abi3-macosx_10_12_x86_64.whl (64.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: floe_python-0.4.5.tar.gz
  • Upload date:
  • Size: 333.9 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.5.tar.gz
Algorithm Hash digest
SHA256 b33fb9a26baf15a6103f76190a7b5c222c6722b675f172aa28fedb84fdb09ac5
MD5 f312846f00e873bad33a4d71ff83ee92
BLAKE2b-256 7baafdc948c1a041d15908bcef37a8fad0be38174cb79ec720b3a58c431a8cc0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: floe_python-0.4.5-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.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3c4d62d7058ef9002fc5dd557d373e07edad946e7ebe67e068ceb4d2f8bf670c
MD5 954a8c2005669b26241bd50ecc1838d0
BLAKE2b-256 cf90a8c1565f0c3d43400ec2e2eeffbcbf99b8e6394205d2910d3f7023d6c6a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.5-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f0fc58d96cc4bda6875f20cfc52e5cd83921a711082657a85d3aba1d18cd2bfa
MD5 b131a754e1357feecfdaf4af6dd72f63
BLAKE2b-256 e0dab3ee33a21bf60b562512eb16b608e51cc7d45c31888020449b05bf2633f0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4cd464cca18d2462ea9ae3ae8a9a433d7a8d8803ee51151ef190fe0c51e73f30
MD5 a1ac5233f4ee3d872f5b0212ced4e5f8
BLAKE2b-256 659eb1e5b11dae853dd8ffc831afe4e82c9829e0ddb50e30ac7739ce91b23f70

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f89c161e77866eb8462de0c28893d4225aff290bdbd787b0147b2b0146037eb7
MD5 9bffdd449570d3e2dc29429e3175433a
BLAKE2b-256 5ec1d39971b4d8abee7d71cd15bc90b0e9192e7436068b52982bbecf41cc329d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7760cea4e6d896ca0c8ebcd27726918a885fba6f6573896109afbc43caeee9a6
MD5 442a49a737a514aac0e48fe7fbbf6d14
BLAKE2b-256 a95d456218613f8b49034c5bc53e268c4bd02cba07817136e25b7a85978047ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for floe_python-0.4.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6ed453242a77b1a89c80f7c71afeeafea8f9d443603875eab0be1647fbbc6858
MD5 9b7eaa990a6ed49be8a49cfb303c1f90
BLAKE2b-256 803dcd9634d0cc5cd87bd7f93331334992ad458b320a1f66cffebdfc4ceb136b

See more details on using hashes here.

Provenance

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