Skip to main content

3lc-compute-plugin-sdk

PyPI Docs Try it

Plugins are how you extend the 3LC Hub — your own importers, exporters, training jobs, and data tools, appearing in the Hub right next to the built-ins. This SDK is everything a plugin needs: one small Python package to program against, while the Hub takes care of discovery, isolation, serving, and job orchestration.

pip install 3lc-compute-plugin-sdk          # import name: tlc_plugin_sdk

Distribution 3lc-compute-plugin-sdk · import tlc_plugin_sdk.

What it gives you

  • ComputePlugin — the base class you subclass. Implement get_ui_fragment (and compute if you expose a synchronous endpoint); job and lifecycle hooks ship as safe defaults. There is no register() to call — a plugin's metadata lives in its plugin.toml manifest (or a [tool.tlc-compute] table in pyproject.toml), and the Hub discovers it from there.
  • JobContext — the surface a long-running job programs against: progress / metric / log / result for the generic job panel, emit for your plugin's own rich UI, and cooperative cancelled.
  • The worker (python -m tlc_plugin_sdk.worker) — serves your plugin's Litestar route handlers + the generic reserved routes as an ASGI app, out-of-process in the plugin's own venv.
  • tlc_plugin_sdk.shared.* — batteries the heavy plugins share: URL-alias registration, config storage/UI, the generic-job helpers, image/label/modality utilities, script injection.

Quickstart

See docs/plugin-guide.md for the full author guide (manifest format, custom routes, the job model, UI fragment, checklist).

The contract version

tlc_plugin_sdk.SDK_CONTRACT_VERSION is this package's own version — one source of truth, one contract axis (both the Python and the browser surface). A plugin pins the SDK (3lc-compute-plugin-sdk>=X,<Y); the compute service and frontend implement a range and compare compatibility on MAJOR.MINOR. Versions are SemVer; see Status below for the 0.x stability stance.

How it fits

This SDK sits at the root of the plugin dependency graph. Its only required dependencies are uvicorn and litestar; the 3lc data plane is an optional extra (3lc-compute-plugin-sdk[shared]), pulled in only by the shared.* helpers. It never depends on the compute service itself or on any plugin. A plugin built against tlc_plugin_sdk alone is therefore portable across service versions and runs in its own isolated environment.

Status

0.3 is the current contract line. Within 0.x the contract still evolves — mostly additively, but a coordinated breaking change may land on a MINOR bump while the fleet re-pins in lockstep (0.3 did: JobContext.result took a positional url, and the PY_CONTRACT/JS_CONTRACT axes collapsed into SDK_CONTRACT_VERSION). Anything reshaping the core still waits for a major bump. In the browser bridge, PLUGIN_API.libs.io is a stable part of the contract; the other bundled libs are best-effort (see the guide).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

3lc_compute_plugin_sdk-0.3.0.tar.gz (219.4 kB view details)

Uploaded Source

Built Distribution

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

3lc_compute_plugin_sdk-0.3.0-py3-none-any.whl (73.1 kB view details)

Uploaded Python 3

File details

Details for the file 3lc_compute_plugin_sdk-0.3.0.tar.gz.

File metadata

File hashes

Hashes for 3lc_compute_plugin_sdk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7976042adbcf939524d1494ef5b5206b1bd63ba41d622b8e8d23fc7d436e1247
MD5 9f2a5da0a9f0529fc2dd52b93b3cdd40
BLAKE2b-256 ba7f7eee9db661090d406062dd10ad37a76a65fe8910691923ce9b46202d2f43

See more details on using hashes here.

File details

Details for the file 3lc_compute_plugin_sdk-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for 3lc_compute_plugin_sdk-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56e7b05c41186967dac88c2c90487becf6d389d4ec763f2c897d7187ec1a3ed1
MD5 3fdc555aa9e6d35b71a33cd29384d718
BLAKE2b-256 eafd7acb935c8ba73d35bd042a3d2c09871f13c3a39cdbde706afc2d16e7ed7b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.0

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

This release

0.3.0 This release

2 files

0.2.3

2 files

0.2.2

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page