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:
- User clicks “Analyze in Notebook” in the OmniBioAI UI
- Django endpoint generates a notebook
- 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 iteration1.0+→ stable API surface
License
Apache License 2.0
Status
Active development Used internally by the OmniBioAI workbench and services.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
645e62ef9382628627a12152b1534879ab63fa48b78f489397756ba21029c4f8
|
|
| MD5 |
b54ff787776acfc8da864911a286a2b5
|
|
| BLAKE2b-256 |
c21095a0959e4a654ba17db1f88890ffc4364f9643c0c2d64c28838c27ca84fc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdf976e02b072b4ffd58ef49db99d6573a92ee87a0bb67c6551a80a69d20f7c3
|
|
| MD5 |
09e8fb79c91119f98c775cc445dd3d27
|
|
| BLAKE2b-256 |
50175e0cafb1e229c115335c8d68953444002cf0c17c06497f37abd1b7184f44
|