This release is a pre-release and may not be stable for production use.
Loams SDK for Python
Preview.
0.1.0a*releases track the Loams preview server and may change between previews. pip skips prereleases unless asked:pip install --pre loams, or pin the exact version (loams==0.1.0a2).
One Loams object over one Loams instance, speaking the unified Connect API.
The module surface is generated from proto/ by scripts/sdk/gen.sh python;
the runtime below it is hand-written and obeys the contract in
docs/sdk/runtime-contract.md.
Install
pip install loams
Not on PyPI yet. The distribution name is reserved but publishing is blocked until registry ownership is confirmed (D400), so for now install from a checkout:
uv sync --all-extras --dev # from sdks/python
The runtime dependency is connectrpc
0.12.1 (connectrpc/connect-py), pinned in scripts/sdk/pins.lock. Up to 0.9.0
the same project was published as connect-python; the import name has always
been connectrpc.
Use
from loams import Loams
loams = Loams("https://acme.loams.dev", api_key="...")
print(loams.instance.version())
Four modules hang off the client: loams.instance (what this instance is),
loams.live (the live-sync session half, whose package is unstable),
loams.tables (the table half of the same service), and loams.system (the
module catalogue, feature detection and the version check).
Auth
Pass api_key for a script or CI job that holds one — it does not expire, so
there is nothing to refresh. Pass auth for everything else: env_token(),
oidc_exchange(), or your own TokenSource. The two are mutually exclusive
because they answer the same question, and passing both raises.
Protocol and encoding
protocol is "connect" (default), "grpc" or "grpc-web" — the one port
speaks all three; this picks which one this client uses. proto_json=True
sends the proto3 JSON mapping that curl sends; the default is protobuf,
which is smaller.
Consistency
session_consistency=False by default: every read is then STRONG on its own,
which is correct but does not give read-your-writes across processes. Turn it
on (D609) to hold a session consistency token across calls.
What is not here yet
These are refused by name rather than stubbed, so a caller finds out at the call instead of at runtime:
- The hybrid query builder. Blocked on API1 Task 2. There is no hand-written builder here; when the proto lands, the generator emits one.
- Bulk ingest and bulk results. Blocked on API1 Tasks 3 and 4. They go over
Arrow Flight SQL through ADBC, which is why the
flight,arrowandpolarsextras already exist — the code that uses them lands with the write RPCs. listAllper call. Blocked on the same API1 tasks; paging is explicit.
Development
uv sync --all-extras --dev
uv run pytest -q
uv run mypy --strict src
./scripts/sdk/gen.sh python # regenerate the facade from proto/
Generated code is never hand-edited: CI regenerates and fails on a diff, so a proto change shows up as a dependency bump rather than a silent drift.
Metadata
Release files for loams 0.1.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| loams-0.1.0a2.tar.gz | 184.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| loams-0.1.0a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 353.8 kB
Release files / loams-0.1.0a2.tar.gz
| Download URL | loams-0.1.0a2.tar.gz |
|---|---|
| Size | 184.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef76a7a4201c5a16a81ee85de3f1cd542d42af9e52b20ea91ab35363593c9b58
|
|
BLAKE2b-256 checksum How to use checksums |
267dc291cfc68b969b973b894ff72e5b842cfad3bacd5225f5da52f66ee88cb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / loams-0.1.0a2-py3-none-any.whl
| Download URL | loams-0.1.0a2-py3-none-any.whl |
|---|---|
| Size | 169.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99ac3ecbbb592b3a8cc593f7dde8ebf3b164f2efb70e4558d041919193341838
|
|
BLAKE2b-256 checksum How to use checksums |
6b90904746f11643a442beb205bba954d73605e53921945d309c3b91514d57ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log