Skip to main content

Omium SDK for Python - Fault-tolerant agent operating system

Project description

Omium Python SDK

Python SDK for integrating Omium checkpoint and recovery capabilities into your agent workflows.

Installation

From PyPI (recommended)

python -m pip install --upgrade pip
python -m pip install omium

The package is signed and published via PyPI’s Trusted Publisher workflow so that no API tokens are stored in the repository. Enable pip’s hash-checking mode or use pipx if you need additional supply-chain guarantees.

From source (development)

cd omium-platform/sdk/python
python -m pip install -e ".[dev]"

Quick Start

1. Setup Client

from omium import OmiumClient

client = OmiumClient(checkpoint_manager_url="localhost:7001")
await client.connect()
client.set_execution_context(execution_id="exec_123", agent_id="agent_1")

2. Using @checkpoint Decorator

from omium import checkpoint

@checkpoint("validate_data", preconditions=["data is not None"])
async def validate_data(data: dict) -> dict:
    assert data is not None
    assert "value" in data
    return {"validated": True, "data": data}

# Use the function
result = await validate_data({"value": 42})

3. Using Checkpoint Context Manager

from omium import Checkpoint

async with Checkpoint("important_state", client=client) as cp:
    # Critical code here
    result = await do_critical_thing()
    cp.update_state(step="complete")
    # Checkpoint saved automatically on exit

4. Manual Checkpoint Creation

checkpoint_id = await client.create_checkpoint(
    checkpoint_name="manual_checkpoint",
    state={"data": "important"},
    preconditions=["data exists"],
    postconditions=["data is valid"],
)

5. Rollback to Checkpoint

rollback_result = await client.rollback_to_checkpoint(
    checkpoint_id="cp_123",
    trigger_reason="manual rollback",
)

Features

  • @checkpoint Decorator - Automatic checkpoint creation before/after function execution
  • Checkpoint Context Manager - Manual checkpoint control with context manager
  • Async gRPC Client - High-performance async communication with checkpoint-manager
  • State Serialization - Automatic serialization of function arguments and results
  • Pre/Post Conditions - Validation support for checkpoint creation
  • Rollback Support - Rollback execution to any checkpoint

Examples

See examples/basic_checkpoint.py for complete examples.

Testing

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/

# Run with coverage
pytest tests/ --cov=omium --cov-report=html

API Reference

OmiumClient

Main client for checkpoint operations.

Methods

  • connect() - Connect to checkpoint-manager service
  • close() - Close connection
  • set_execution_context(execution_id, agent_id) - Set execution context
  • create_checkpoint(...) - Create a checkpoint
  • get_checkpoint(checkpoint_id) - Get checkpoint details
  • list_checkpoints(execution_id) - List checkpoints for execution
  • rollback_to_checkpoint(checkpoint_id) - Rollback to checkpoint
  • verify_checkpoint(checkpoint_id) - Verify checkpoint integrity

@checkpoint Decorator

@checkpoint(
    name: str,
    preconditions: Optional[List[str]] = None,
    postconditions: Optional[List[str]] = None,
    client: Optional[OmiumClient] = None,
    execution_id: Optional[str] = None,
    agent_id: Optional[str] = None,
)

Checkpoint Context Manager

Checkpoint(
    name: str,
    client: Optional[OmiumClient] = None,
    execution_id: Optional[str] = None,
    agent_id: Optional[str] = None,
    preconditions: Optional[List[str]] = None,
    postconditions: Optional[List[str]] = None,
)

Requirements

  • Python >= 3.11
  • grpcio >= 1.60.0
  • protobuf >= 4.25.0

Development

Generating Proto Code

# From sdk/python directory
python -m grpc_tools.protoc \
    --python_out=omium/proto \
    --grpc_python_out=omium/proto \
    --proto_path=../../shared/proto \
    ../../shared/proto/checkpoint/checkpoint.proto

Or use the script:

.\scripts\generate-proto.ps1  # Windows
./scripts/generate-proto.sh   # Linux/Mac

License

Proprietary - Omium Platform

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

omium-0.2.0.tar.gz (74.9 kB view details)

Uploaded Source

Built Distribution

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

omium-0.2.0-py3-none-any.whl (90.2 kB view details)

Uploaded Python 3

File details

Details for the file omium-0.2.0.tar.gz.

File metadata

  • Download URL: omium-0.2.0.tar.gz
  • Upload date:
  • Size: 74.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omium-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3ae2920f78372a0b5508252e678e5790233c3d038a9cc242f418e80bd0c31f60
MD5 f24d82411bb15ff0ccb99684fd709cd0
BLAKE2b-256 f9573de9246dce528469e935140f65881d232188856923d2dbad9d159a2490e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for omium-0.2.0.tar.gz:

Publisher: sdk-publish.yml on Omium-ai/Omium-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omium-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: omium-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 90.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omium-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7d8248762fde4f8c7c012211c7e614890ed268f39797d869a277aae2722c9f7
MD5 c4750a9a8cd946b76357a33bbf4803d5
BLAKE2b-256 fe23250a8a5f80d1d32f16557548b15aafff71c0e904362668bd846e43a611f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for omium-0.2.0-py3-none-any.whl:

Publisher: sdk-publish.yml on Omium-ai/Omium-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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