edge-provider-sdk
Status: pre-release scaffolding (v0.1.0 in progress). API surface is frozen per
SPEC.md; patches and wrapper not yet implemented.
A single Python client for multiple Latitude-shaped compute providers. Wraps the
upstream latitudesh-python-sdk
(v3.0.5), removes client-side strict-enum validation for catalog fields
(sites/plans/operating systems), and selects a backend provider at construction time.
Modeled on LiteLLM's "1 API, N providers" approach — adapted for stateful bare-metal compute.
Why this exists
- The upstream SDK ships with
(str, Enum)classes for site/plan/OS slugs. Any provider whose catalog differs from Latitude's (a self-hosted adapter, a fork, a regional reseller) gets rejected at the SDK layer before the request reaches the server. - We patch those seven enums to be permissive type aliases — any string passes through to the API, which is the only authority on what's actually valid.
- Strict validation is preserved for
provider="latitude"via runtime validation against the original enum values.
Installation
pip install edge-provider-sdk
Quickstart
from edge_provider_sdk import EdgeClient
# Latitude direct (strict enums enforced where upstream enforces them)
client = EdgeClient(provider="latitude", bearer="lt_...")
# Digital Frontier adapter (Latitude-shaped, any URL)
client = EdgeClient(
provider="digital-frontier",
base_url="https://df.example.com/api/v1",
bearer="df_...",
)
# Operations are identical to upstream latitudesh-python-sdk
server = client.servers.create(...)
# Catalog accessor — new in this package
client.catalog.sites() # list[str]
client.catalog.plans() # list[str]
client.catalog.os() # list[str]
See docs/quickstart.md for a full walkthrough.
Upstream version
This release wraps latitudesh-python-sdk==3.0.5. Wrapper versioning is
independent of upstream — see SPEC.md §6.
import edge_provider_sdk
edge_provider_sdk.__version__ # "0.1.0"
edge_provider_sdk.upstream_version # "3.0.5"
Migrating from latitudesh-python-sdk
The only API difference is the constructor. See
docs/upgrading-from-latitudesh.md.
Development
The patched SDK lives in src/edge_provider_sdk/_generated/ (gitignored, built
from patches/ against the pinned upstream tarball).
# One-time: build the patched _generated/ tree
./scripts/apply-patches.sh
# Standard workflow
uv sync
uv run pytest
uv run ruff check
uv run mypy src
See SPEC.md for the full design document.
License
Apache-2.0 — matches upstream.
Metadata
Release files for edge-provider-sdk 0.1.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 | |
|---|---|---|---|
| edge_provider_sdk-0.1.1.tar.gz | 24.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| edge_provider_sdk-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 365.9 kB
Release files / edge_provider_sdk-0.1.1.tar.gz
| Download URL | edge_provider_sdk-0.1.1.tar.gz |
|---|---|
| Size | 24.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2be578ae69a6c0524d81f38033e7762031f819155ec0fb1b2f239a8aa54ec64d
|
|
BLAKE2b-256 checksum How to use checksums |
415ffe6b3a9c378c4b78a64fe3dd8275cfad76ad793b5f27c8b89b86d0aa0581
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 14, 2026.
Transparency logRelease files / edge_provider_sdk-0.1.1-py3-none-any.whl
| Download URL | edge_provider_sdk-0.1.1-py3-none-any.whl |
|---|---|
| Size | 341.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9cb5026abff6ab3557b14af84803d25cc85c8f073605768df0b0c299a7c2eca7
|
|
BLAKE2b-256 checksum How to use checksums |
0cf3d3786143db7353089aa74e8872dc1a499a98cfe3adf64e757a97c8a4f895
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 14, 2026.
Transparency log