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.2.tar.gz (93.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.3.2-py3-none-any.whl (107.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: omium-0.3.2.tar.gz
  • Upload date:
  • Size: 93.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.3.2.tar.gz
Algorithm Hash digest
SHA256 ed5748b443dfff49e07f1bb1ddc832b7bfcc9f8bb919ba7a566664d4578f7f5d
MD5 0d6d715e94c1049ea804a053617ef016
BLAKE2b-256 58758370a85bc1aea23b54112a4770b5525b27732d7ae8fbd2b2dcf692dd499a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: omium-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 107.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4a449a287bb86012f516fb600df8353d345d82cde599349e501a1c9410c193cc
MD5 63f4d92a0fda6ef3e9bc48d7c018e5e6
BLAKE2b-256 5e966a50d58a510208199df5a7ab0279baeb7a4817f8064d89ec908964b4281c

See more details on using hashes here.

Provenance

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