Lumilake Python SDK
Project description
lumilake
Python SDK for Lumilake server APIs and local deploy helpers. It provides sync and async resource clients for common server surfaces; the CLI remains the complete command surface for operational helpers. The SDK lives inside the lumilake distribution and ships behind the [sdk] extra so basic installs stay slim.
Install
Server-API + filesystem init (small surface; httpx only):
pip install 'lumilake[sdk]'
Add deploy lifecycle (client.deploy.up/down/...). Pulls in [deploy] (Docker SDK, psycopg, FlowMesh stack helpers); client.deploy.* calls into lumilake_deploy directly:
pip install 'lumilake[sdk,deploy]'
In the workspace:
uv sync --group lint --group test --extra sdk --extra deploy
Without [deploy], every client.deploy.* method except init raises DeployError with an install hint on first call. Server-API resources work in either configuration.
Sync usage
from lumilake import LumilakeClient
with LumilakeClient.from_config() as client: # reads ~/.lumilake/config.toml
client.health()
client.jobs.list()
client.jobs.submit({"workflow": ...})
client.deploy.up()
Async usage
from lumilake import AsyncLumilakeClient
async with AsyncLumilakeClient.from_config() as client:
await client.health()
await client.jobs.list()
await client.jobs.submit({"workflow": ...})
await client.deploy.up()
Constructing either client without .from_config() resolves the server URL in this order: explicit base_url=, LUMILAKE_BASE_URL, then ~/.lumilake/config.toml. .from_config(path=...) reads a specific TOML file directly.
CLI and SDK surfaces
| Surface | Sync | Async |
|---|---|---|
lumilake deploy up |
writes ~/.lumilake/config.toml |
- |
lumilake info / health |
client.health() |
same, await |
lumilake deploy {init,up,down,clean,restart,reset,logs,update-flowmesh} |
client.deploy.<verb>(...) |
await client.deploy.<verb>(...) |
lumilake deploy {doctor,build,status} |
CLI only | CLI only |
| Job submit/preview/list/list_all/get/progress/result/inputs/artifact/cancel/wait/watch | client.jobs.<verb>(...) |
await client.jobs.<verb>(...) |
lumilake worker {list,get} (+ list_all) |
client.workers.<verb>(...) |
await client.workers.<verb>(...) |
lumilake trace {list,get} (+ list_all) |
client.traces.<verb>(...) |
await client.traces.<verb>(...) |
Design notes
- Sync + async parity. One sync class, one async class, and each SDK resource exposes both. Shared base classes (
BaseClient/BaseAsyncClient) handle version-prefix, envelope unwrapping, and error-to-exception mapping. Async resourcesawaitthe same code paths. - Two transport modes. Server-API resources speak HTTP (
httpx.Client/httpx.AsyncClient). Deploy lifecycle callslumilake_deploydirectly; async dispatches the same Python calls throughasyncio.to_threadso the event loop stays responsive across Docker and FlowMesh setup work. - Config shared with the CLI.
from_config()reads the same~/.lumilake/config.tomlthe CLI writes fromlumilake deploy up. - Never raw
docker compose up. Deploy resource always uses thelumilake_deploymachinery — the project rule applies inside the SDK too. - Context-manager support.
with LumilakeClient(...) as client:(sync) andasync with AsyncLumilakeClient(...) as client:close the underlying httpx client cleanly.
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 lumilake_sdk-0.1.2.tar.gz.
File metadata
- Download URL: lumilake_sdk-0.1.2.tar.gz
- Upload date:
- Size: 24.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5883cf1c073a115ed2d576c0bc4482bef5f70ff69ab66025d669f32da7a42b5
|
|
| MD5 |
0a677a444da65fdd994bd14d314ca17b
|
|
| BLAKE2b-256 |
571e5b6b76df57e1aea4f4a84235e90bd197db44aaa354264d82160d51c74604
|
Provenance
The following attestation bundles were made for lumilake_sdk-0.1.2.tar.gz:
Publisher:
release.yml on mlsys-io/Lumilake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lumilake_sdk-0.1.2.tar.gz -
Subject digest:
d5883cf1c073a115ed2d576c0bc4482bef5f70ff69ab66025d669f32da7a42b5 - Sigstore transparency entry: 1675619038
- Sigstore integration time:
-
Permalink:
mlsys-io/Lumilake@3f327216475a452832e0ecd5880494b73a172f3d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/mlsys-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3f327216475a452832e0ecd5880494b73a172f3d -
Trigger Event:
release
-
Statement type:
File details
Details for the file lumilake_sdk-0.1.2-py3-none-any.whl.
File metadata
- Download URL: lumilake_sdk-0.1.2-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2907f518eeb2304698d78f61ba2762d3b7abf08a800382e793d338b26bc493df
|
|
| MD5 |
13583983eaf7e7b5d447a0796f155e8f
|
|
| BLAKE2b-256 |
84e2f3448905a17f46465844c8808386612d4cca1d2bf706c835894470c2b543
|
Provenance
The following attestation bundles were made for lumilake_sdk-0.1.2-py3-none-any.whl:
Publisher:
release.yml on mlsys-io/Lumilake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lumilake_sdk-0.1.2-py3-none-any.whl -
Subject digest:
2907f518eeb2304698d78f61ba2762d3b7abf08a800382e793d338b26bc493df - Sigstore transparency entry: 1675619061
- Sigstore integration time:
-
Permalink:
mlsys-io/Lumilake@3f327216475a452832e0ecd5880494b73a172f3d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/mlsys-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3f327216475a452832e0ecd5880494b73a172f3d -
Trigger Event:
release
-
Statement type: