Skip to main content

Production-oriented Python library for Microsoft Fabric OneLake Lakehouse access

Project description

fablake

fablake is a production-oriented Python library for Microsoft Fabric OneLake Lakehouse access.

It provides:

  • a filesystem-first Lakehouse API
  • a pathlib-like LakehousePath for Files paths
  • table root locators and discovery helpers for Tables interop
  • filesystem interop for pandas, PyArrow, Polars, and DuckDB
  • runtime support for both Microsoft Fabric notebooks and local development

Install

Install with uv:

uv add fablake

For local authentication via Azure credentials, also install:

uv add azure-identity

pip install fablake azure-identity also works.

You can also install the auth extra with pip install "fablake[auth]".

Quick start

from fablake import Lakehouse

lh = Lakehouse(workspace="Finance", lakehouse="Ops", schema_enabled=True)

path = lh.files / "raw" / "orders" / "2026-01-01.json"

if path.exists():
    print(path.read_text())

table_root = lh.table("orders", schema="brz")
print(table_root)

for table in lh.tables.list("db*.*der"):
    print(table)

Core concepts

  • lh.files targets the Lakehouse Files root.
  • lh.table(name, schema=...) returns a Tables locator, not a dataframe.
  • lh.tables.list(pattern) returns matching LakehouseTable locators.
  • lh.fs exposes the underlying filesystem handle for library interop.

Interop and runtime

  • Use lh.fs as the filesystem layer for pandas, PyArrow, Polars, and DuckDB workflows.
  • Inside Microsoft Fabric notebooks, omitted credentials use notebook/runtime auth resolution.
  • In local development, install azure-identity and use your local Azure credential flow.

Filesystem interop example:

from fablake import Lakehouse
import duckdb
import pandas as pd
import polars as pl
import pyarrow.parquet as pq

lh = Lakehouse(workspace="Finance", lakehouse="Ops", schema_enabled=True)
path = lh.files / "raw" / "orders.parquet"

# pandas + PyArrow engine
df_pd = pd.read_parquet(path, engine="pyarrow", filesystem=lh.fs)

# PyArrow
table = pq.read_table(path, filesystem=lh.fs)

# Polars (via file-like stream)
with lh.fs.open(path, "rb") as stream:
    df_pl = pl.read_parquet(stream)

# DuckDB
duckdb.register_filesystem(lh.fs)
df_duck = duckdb.sql(f"SELECT * FROM read_parquet('{path}')").df()

Documentation

Build docs locally:

uv sync --group docs
uv run python scripts/docs.py serve

Other helper commands:

uv run python scripts/docs.py build
uv run python scripts/docs.py api
uv run python scripts/docs.py sync

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

fablake-0.1.0.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fablake-0.1.0-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file fablake-0.1.0.tar.gz.

File metadata

  • Download URL: fablake-0.1.0.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fablake-0.1.0.tar.gz
Algorithm Hash digest
SHA256 850a7a231e58600d334d006da0e0d388f52a4f977ba618f286571d556a435998
MD5 689a38344b0c79ee408e23c61e7d7b26
BLAKE2b-256 42cfdcac891888e9bded56701c2a16cd3ea77c30c159e0cf5606e99b71e1d553

See more details on using hashes here.

Provenance

The following attestation bundles were made for fablake-0.1.0.tar.gz:

Publisher: publish.yml on billybillysss/fablake

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fablake-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fablake-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fablake-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5af29eed70eee1f62f7c8b3049e8df677af60d0bc4871be33ea11f38a3c61af3
MD5 2379107bf202916784f318ac87080457
BLAKE2b-256 ce8b71dde96c811460f6f7e308bc3f864ab78671642bd9b5a2612f6aa2834539

See more details on using hashes here.

Provenance

The following attestation bundles were made for fablake-0.1.0-py3-none-any.whl:

Publisher: publish.yml on billybillysss/fablake

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