lakehouse_core
The lakehouse as the signed-in user: Lakekeeper catalog browsing, dataset
files and previews. One implementation behind three front ends - the
JupyterLab Lakehouse explorer, the agents' MCP server and (V1) the VS Code
extension. Lakekeeper decides every permission. Plan:
docs/data-platform/vscode-extension-plan.md.
| Module | What |
|---|---|
config |
catalog URI, warehouse, files root (env or configure()) |
auth |
the user's token: set_provider(fn), LAKEHOUSE_ACCESS_TOKEN, JupyterHub auth_state, or the laptop sign-in (MSAL) |
catalog |
Browser (REST: children, table details); iceberg_catalog, describe_table, preview_table (PyIceberg) |
lakefiles |
dataset files (import lakefiles in notebooks is a shim for this module) |
preview |
first rows / text of csv, tsv, parquet, xlsx, json, jsonl (+ .gz) |
mcp_server |
python -m lakehouse_core.mcp_server - read-only tools for agents (honours agent_mode) |
guide |
the agent guide: guide.md -> variants pod (= the mounted ai-agent/AGENTS.md) and local |
notebooks, notebook_mcp |
python -m lakehouse_core.notebook_mcp - read, edit and run notebooks in the user's JupyterHub server through its collaboration room and the notebook's own kernel, and run a local .py file's # %% cells on a JupyterHub kernel (run_py_cell) (notebooks extra) |
agents |
python -m lakehouse_core agent-setup - guide + MCP config for Claude Code, Cursor, Copilot, Codex |
hub |
the user's JupyterHub server from a laptop: token exchange, start/stop, connection info for remote kernels |
spark |
Spark on the platform from a local Python (V4): from lakehouse_core.spark import spark, same helpers as the Spark kernel; via the Spark Connect gateway |
metadata |
OpenMetadata context (V3a, dormant until a profile sets openmetadata_url) |
rpc |
JSON-lines backend of the VS Code extension (ide/vscode-lakehouse/) |
profiles.json |
one entry per platform: catalog URL, Entra tenant / client / scope, agent_mode |
Deployed by mounting the .py files into the notebook image's
site-packages (jupyterhub.tf in gcp-platform and lakehouse), so a
change needs only a server restart.
On a laptop:
pip install 'drakun-lakehouse-core[all]' # PyPI (import name: lakehouse_core), or the .vsix wheel
python -m lakehouse_core login --profile gcp-dev # browser sign-in once (--device for SSH)
python -m lakehouse_core agent-setup # give your coding agent the guide + tools (lakehouse + jupyterhub MCP)
from lakehouse_core import catalog, lakefiles as lf
df = catalog.iceberg_catalog().load_table("demo.sales").scan(limit=10_000).to_pandas()
lf.ls("files.media.landing/meta_ads")
from lakehouse_core.spark import spark # Spark in the cluster, as you (python -m lakehouse_core spark-check)
spark.table("demo.sales").groupBy("region").count().show()
Changing the guide: edit guide.md, then
python -m lakehouse_core guide --variant pod > ../../../gcp-platform/files/ai-agent/AGENTS.md
(a test fails while they differ).
Tests (stub Lakekeeper, no cluster):
pip install -e '.[test]' && pytest # in this directory
Metadata
Release files for drakun-lakehouse-core 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| drakun_lakehouse_core-0.6.1.tar.gz | 90.9 kB | Without provenance | Details for drakun_lakehouse_core-0.6.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| drakun_lakehouse_core-0.6.1-py3-none-any.whl | Python 3 | none | any | Details for drakun_lakehouse_core-0.6.1-py3-none-any.whl |
Total release size: 172.3 kB
Release files / drakun_lakehouse_core-0.6.1.tar.gz
| Download URL | drakun_lakehouse_core-0.6.1.tar.gz |
|---|---|
| Size | 90.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b49ed0b226e98fc1c7568f7cb8a705ad020bba091dc67d543e578fc05f6dc21
|
|
BLAKE2b-256 checksum How to use checksums |
aadb17806082fb921ee8e4b0c3fdeebc75d9b8a3b6ed4add562ec6703e9b8b5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Release files / drakun_lakehouse_core-0.6.1-py3-none-any.whl
| Download URL | drakun_lakehouse_core-0.6.1-py3-none-any.whl |
|---|---|
| Size | 81.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc014244fe6f659ddba7e2987ab82caa945a2dd7dc610d9392db159e327c5c0a
|
|
BLAKE2b-256 checksum How to use checksums |
cfc6577ca6dcfc6688da602b41807d13e2ef8fd1ac22139bd778ca5ef4e1e59c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Security for drakun-lakehouse-core 0.6.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.