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
LakehouseAPI - a pathlib-like
LakehousePathforFilespaths - table root locators and discovery helpers for
Tablesinterop - filesystem interop for
pandas,PyArrow,Polars, andDuckDB - 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.filestargets the LakehouseFilesroot.lh.table(name, schema=...)returns aTableslocator, not a dataframe.lh.tables.list(pattern)returns matchingLakehouseTablelocators.lh.fsexposes the underlying filesystem handle for library interop.
Interop and runtime
- Use
lh.fsas the filesystem layer forpandas,PyArrow,Polars, andDuckDBworkflows. - Inside Microsoft Fabric notebooks, omitted credentials use notebook/runtime auth resolution.
- In local development, install
azure-identityand 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
- User guide: docs-site/docs/index.md
- Python API docs: docs-site/docs/api/index.md
- Usage examples: docs-site/docs/usage-examples.md
- Changelog: CHANGELOG.md
- Version selector source: docs-site/docs/versions.json
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
850a7a231e58600d334d006da0e0d388f52a4f977ba618f286571d556a435998
|
|
| MD5 |
689a38344b0c79ee408e23c61e7d7b26
|
|
| BLAKE2b-256 |
42cfdcac891888e9bded56701c2a16cd3ea77c30c159e0cf5606e99b71e1d553
|
Provenance
The following attestation bundles were made for fablake-0.1.0.tar.gz:
Publisher:
publish.yml on billybillysss/fablake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fablake-0.1.0.tar.gz -
Subject digest:
850a7a231e58600d334d006da0e0d388f52a4f977ba618f286571d556a435998 - Sigstore transparency entry: 1386639519
- Sigstore integration time:
-
Permalink:
billybillysss/fablake@4bb19d4000bba1f92bf5a2d20889e1819161915b -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/billybillysss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4bb19d4000bba1f92bf5a2d20889e1819161915b -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5af29eed70eee1f62f7c8b3049e8df677af60d0bc4871be33ea11f38a3c61af3
|
|
| MD5 |
2379107bf202916784f318ac87080457
|
|
| BLAKE2b-256 |
ce8b71dde96c811460f6f7e308bc3f864ab78671642bd9b5a2612f6aa2834539
|
Provenance
The following attestation bundles were made for fablake-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on billybillysss/fablake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fablake-0.1.0-py3-none-any.whl -
Subject digest:
5af29eed70eee1f62f7c8b3049e8df677af60d0bc4871be33ea11f38a3c61af3 - Sigstore transparency entry: 1386639595
- Sigstore integration time:
-
Permalink:
billybillysss/fablake@4bb19d4000bba1f92bf5a2d20889e1819161915b -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/billybillysss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4bb19d4000bba1f92bf5a2d20889e1819161915b -
Trigger Event:
release
-
Statement type: