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.3.0.tar.gz (93.0 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.3.0-py3-none-any.whl (112.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for omium-0.3.0.tar.gz
Algorithm Hash digest
SHA256 65ea3b722e1f7698765fc003a733466e32f51e2591a5decd4d2cefea4d20dd34
MD5 0dfa95595f989951c47054d6fb2796d2
BLAKE2b-256 c4cb9a0e3de5f9d2ea9e8730058f5d3985d7109211beffac0e8f40ad9af96822

See more details on using hashes here.

Provenance

The following attestation bundles were made for omium-0.3.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: omium-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 112.3 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9190739a118666e685ec8e2cdc36caaf0bddb7bacb4af902b4720ee04a3eb35c
MD5 c69c3ff8feb851f945918c0cf544dc11
BLAKE2b-256 111d556b909786f8c53ff5f4a5aa07c3bf78ef7c1350071adaafa5fda32a7b0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for omium-0.3.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