Skip to main content

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()

Both clients accept base_url= directly, or pull it from ~/.lumilake/config.toml via .from_config(). Resolution order: explicit arg > LUMILAKE_BASE_URL env > saved config.

CLI and SDK surfaces

Surface Sync Async
lumilake login <url> 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/list/get/cancel/wait client.jobs.<verb>(...) await client.jobs.<verb>(...)
Job preview/progress/result/inputs/artifact/watch CLI and HTTP API CLI and HTTP API
lumilake worker {list,get} client.workers.<verb>(...) await client.workers.<verb>(...)
lumilake trace {list,get} 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 resources await the same code paths.
  • Two transport modes. Server-API resources speak HTTP (httpx.Client / httpx.AsyncClient). Deploy lifecycle calls lumilake_deploy directly; async dispatches the same Python calls through asyncio.to_thread so the event loop stays responsive across Docker and FlowMesh setup work.
  • Config shared with the CLI. from_config() reads the same ~/.lumilake/config.toml the CLI writes via lumilake login.
  • Never raw docker compose up. Deploy resource always uses the lumilake_deploy machinery — the project rule applies inside the SDK too.
  • Context-manager support. with LumilakeClient(...) as client: (sync) and async with AsyncLumilakeClient(...) as client: close the underlying httpx client cleanly.

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

lumilake_sdk-0.1.0.dev1.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

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

lumilake_sdk-0.1.0.dev1-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file lumilake_sdk-0.1.0.dev1.tar.gz.

File metadata

  • Download URL: lumilake_sdk-0.1.0.dev1.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for lumilake_sdk-0.1.0.dev1.tar.gz
Algorithm Hash digest
SHA256 c1ccd9c9970538a5cc8dbf3173f7911911f967afa1729544a90a15a9258df1f7
MD5 8845c16a75ba190b12d3cf761c63188d
BLAKE2b-256 4692066acb4ee2784186e2eee0d047bcb7fedb3ca2d56a75c542d2ce2de17b14

See more details on using hashes here.

File details

Details for the file lumilake_sdk-0.1.0.dev1-py3-none-any.whl.

File metadata

File hashes

Hashes for lumilake_sdk-0.1.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 7bb4553d11a32507477c1edd4ece3a5d350d1acf3c59eeefab5f6646f6ed8d7f
MD5 304abf214ef9947bae01d32ff68f08cd
BLAKE2b-256 6761be146caca1d859e5f049ca1b7d2a6c94dc7044c50accbd4ade72c36c1825

See more details on using hashes here.

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