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.4.tar.gz (75.3 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.4-py3-none-any.whl (90.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: omium-0.2.4.tar.gz
  • Upload date:
  • Size: 75.3 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.4.tar.gz
Algorithm Hash digest
SHA256 e2a212a492639e21bdc3c8ed5ed2e2916c44a8eb0bc774fb30529a326fb380cf
MD5 5319ac677d99755e6e03ae481bd69102
BLAKE2b-256 1493d72f50e3605ea500b50638f9de2c3d884621c9e3bb74657d874a09a32d6b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: omium-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 90.6 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1f4d553a19a6af4301848e752ed4f844fd32c804efc504c5fe87c1ebd05e4ab0
MD5 48d3b6c149395d199a3bc3f88c2d3aab
BLAKE2b-256 0e5ee0d660e16c75c6afa73dca2242954d9a8cf2df29ba3baf6c559b8930c865

See more details on using hashes here.

Provenance

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