Skip to main content

Python SDK for OmniBioAI APIs

Project description

OmniBioAI SDK

OmniBioAI SDK is a lightweight Python client for interacting with the OmniBioAI platform APIs, including:

  • Object Registry (datasets, studies, jobs, workflows)
  • Development APIs (/api/dev/*)
  • Jupyter-based interactive analysis workflows

The SDK is intentionally thin and explicit — it does not hide API behavior and is designed to evolve alongside the OmniBioAI platform.


Features

  • Simple Python client (OmniClient)
  • Works with local OmniBioAI development servers
  • No Docker required
  • Designed for notebooks, scripts, and pipelines
  • Explicit auth and base URL control
  • Easy to extend with new API endpoints

Installation

pip install omnibioai-sdk

Or during development:

pip install -e .

Quick Start

from omnibioai_sdk import OmniClient

c = OmniClient(
    base_url="http://127.0.0.1:8001",
    token="dev"
)

objects = c.objects_list()
print(objects["count"])

Authentication

The SDK uses header-based authentication.

For development:

Authorization: Bearer dev

You can pass credentials explicitly or via environment variables.

Environment Variables (recommended)

export OMNIBIOAI_BASE_URL=http://127.0.0.1:8001
export OMNIBIOAI_TOKEN=dev

Then simply:

c = OmniClient()

Object Registry API

List objects

lst = c.objects_list()
lst["count"]
lst["items"][0]

Get a single object

obj = c.object_get("56d3fc3a-709b-4ed0-bf17-8cb73c6746b0")
print(obj["object_type"])
print(obj["metadata"])

Notebook-Based Analysis

OmniBioAI supports launching object-aware Jupyter notebooks.

Typical flow:

  1. User clicks “Analyze in Notebook” in the OmniBioAI UI
  2. Django endpoint generates a notebook
  3. JupyterLab opens with the object context preloaded

Inside the notebook:

import os
from omnibioai_sdk import OmniClient

OBJECT_ID = os.environ["OMNIBIOAI_OBJECT_ID"]

c = OmniClient()
obj = c.object_get(OBJECT_ID)

obj["object_type"], obj["metadata"]

Running Jupyter for OmniBioAI

Recommended dev command:

jupyter lab \
  --port 8890 \
  --port-retries=0 \
  --no-browser \
  --notebook-dir . \
  --IdentityProvider.token=devtoken

And set:

export OMNIBIOAI_JUPYTER_BASE=http://127.0.0.1:8890
export OMNIBIOAI_JUPYTER_TOKEN=devtoken

Project Structure

omnibioai_sdk/
├── omnibioai_sdk/
│   ├── __init__.py
│   └── client.py
├── pyproject.toml
├── README.md

Design Philosophy

  • No magic: SDK mirrors REST APIs closely
  • Dev-first: optimized for local servers and notebooks
  • Composable: meant to be imported into pipelines, workflows, and notebooks
  • Extensible: new APIs = new methods, not rewrites

Extending the SDK

Add new API calls by extending OmniClient:

def workflow_list(self):
    r = requests.get(
        f"{self.base_url}/api/dev/workflows/",
        headers=self.headers,
        timeout=self.timeout
    )
    r.raise_for_status()
    return r.json()

No regeneration or codegen required.


Versioning

The SDK follows semantic versioning:

  • 0.x → fast iteration
  • 1.0+ → stable API surface

License

Apache License 2.0


Status

Active development Used internally by the OmniBioAI workbench and services.

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

omnibioai_sdk-0.1.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

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

omnibioai_sdk-0.1.0-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file omnibioai_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: omnibioai_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for omnibioai_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 645e62ef9382628627a12152b1534879ab63fa48b78f489397756ba21029c4f8
MD5 b54ff787776acfc8da864911a286a2b5
BLAKE2b-256 c21095a0959e4a654ba17db1f88890ffc4364f9643c0c2d64c28838c27ca84fc

See more details on using hashes here.

File details

Details for the file omnibioai_sdk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: omnibioai_sdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for omnibioai_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bdf976e02b072b4ffd58ef49db99d6573a92ee87a0bb67c6551a80a69d20f7c3
MD5 09e8fb79c91119f98c775cc445dd3d27
BLAKE2b-256 50175e0cafb1e229c115335c8d68953444002cf0c17c06497f37abd1b7184f44

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