This release is a pre-release and may not be stable for production use.
lltp-py
Python reference SDK for LLTP (Lab-in-the-Loop Transport Protocol) v0.1.
Primary audience: authors of {provider}-lltp connectors (and similar
consumables). Agents and design tools typically talk to those connectors, not
this SDK directly — though nothing prevents using the client helpers that way.
Maintained by BioLM during protocol kickoff. See the spec repo GOVERNANCE.md for long-term stewardship intent.
Status: v0.1-alpha. Message signing (sign / verify) is not yet implemented.
Install
pip install lltp
For local development:
pip install -e ".[dev]"
Requires Python >=3.8.
Quick start
from lltp import validate_envelope, derive_order_status
from lltp.client import LLTPClient
import json
with open("tests/fixtures/scenario-a-dna-synthesis/01-order.json") as f:
order = json.load(f)
validate_envelope(order)
print(derive_order_status(order["requirements"])) # IN_PROGRESS
Mock provider (Scenario A)
pip install -e .
python scripts/mock_provider.py --port 8765
In another shell:
from lltp.client import LLTPClient
import json
with open("tests/fixtures/scenario-a-dna-synthesis/01-order.json") as f:
order = json.load(f)
with LLTPClient() as client:
catalog = client.fetch_catalog("http://127.0.0.1:8765")
summary = client.submit_order("http://127.0.0.1:8765", order)
print(summary)
API overview
| Module | Purpose |
|---|---|
lltp.validate |
validate_envelope, validate_catalog (JSON Schema) |
lltp.lifecycle |
derive_order_status, merge_requirements |
lltp.client |
LLTPClient — HTTP client for provider endpoints |
lltp.webhook |
WebhookHandler — merge STATUS/RESULT deltas |
Tests
pip install -e ".[dev]"
pytest
Refreshing vendored schemas and fixtures
When the spec repo changes:
cp ../lltp/schema/0.1/{envelope,provider}.schema.json src/lltp/schemas/
cp ../lltp/examples/catalog/twist.json tests/fixtures/catalog/
cp ../lltp/examples/scenario-a-dna-synthesis/*.json tests/fixtures/scenario-a-dna-synthesis/
Conformance
See CONFORMANCE.md for what this alpha SDK implements vs deferred.
Related repositories
- lltp — protocol specification
- BioLM/lltp-js — JavaScript/TypeScript reference SDK
{provider}-lltp— provider connectors (separate repos; e.g.twist-lltp) that use this SDK
License
Apache-2.0. See LICENSE.
Metadata
Release files for lltp 0.1.0a1
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 |
|---|---|---|---|---|
| lltp-0.1.0a1.tar.gz | 20.7 kB | Without provenance | Details for lltp-0.1.0a1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| lltp-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details for lltp-0.1.0a1-py3-none-any.whl |
Total release size: 40.9 kB
Release files / lltp-0.1.0a1.tar.gz
| Download URL | lltp-0.1.0a1.tar.gz |
|---|---|
| Size | 20.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45c78bc3e21cbe15a0c4b70bbf8dd26b65ee13db37d18c8697e2b78f5b201b27
|
|
BLAKE2b-256 checksum How to use checksums |
ddfb766f2ffe2d90bba92db8b1c727c964e5862c748ab954d0bb7a8d497e5a99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / lltp-0.1.0a1-py3-none-any.whl
| Download URL | lltp-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 20.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cdf120e91ceba6a5db10ff9fa2138bc2bc9fb119dda21147226048f5d749c58b
|
|
BLAKE2b-256 checksum How to use checksums |
02721499500b339adf3a201864fbe2d0beb99dbe4ae4e45b6770ca960bb53c75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for lltp 0.1.0a1
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.