Skip to main content

Motia framework for III Engine

Project description

Motia Framework for Python

High-level framework for building workflows with the III Engine.

Installation

uv pip install iii-motia

Usage

Defining a Step

from motia import FlowContext, event

config = {
    "name": "process-data",
    "triggers": [event("data.created")],
    "emits": ["data.processed"],
}

async def handler(data: dict, ctx: FlowContext) -> None:
    ctx.logger.info("Processing data", data)
    await ctx.emit({"topic": "data.processed", "data": data})

API Steps

from motia import ApiRequest, ApiResponse, FlowContext, api

config = {
    "name": "create-item",
    "triggers": [api("POST", "/items")],
    "emits": ["item.created"],
}

async def handler(req: ApiRequest, ctx: FlowContext) -> ApiResponse:
    ctx.logger.info("Creating item", req.body)
    await ctx.emit({"topic": "item.created", "data": req.body})
    return ApiResponse(status=201, body={"id": "123"})

Streams

from motia import Stream

# Define a stream
todo_stream = Stream[dict]("todos")

# Use the stream
item = await todo_stream.get("group-1", "item-1")
await todo_stream.set("group-1", "item-1", {"title": "Buy milk"})
await todo_stream.delete("group-1", "item-1")
items = await todo_stream.get_group("group-1")

Build & Publish

python -m build
uv publish --index cloudsmith dist/*

Features

  • Event-driven step definitions
  • API route handlers
  • Cron job support
  • Stream-based state management
  • Type-safe context with logging

Testing

Running Integration Tests

Integration tests require a running III Engine instance. Make sure to have it built or installed before running tests.

  1. Install dev dependencies:

    cd motia && uv sync --all-extras
    
  2. Run tests:

    uv run pytest
    

Test Configuration

Tests use non-default ports to avoid conflicts:

  • Engine WebSocket: ws://localhost:49199
  • HTTP API: http://localhost:3199

Set III_ENGINE_PATH environment variable to point to the III engine binary.

Test Coverage

The integration test suite covers:

  • Bridge connection and function registration
  • API triggers (HTTP endpoints)
  • KV Server operations
  • PubSub messaging
  • Logging module
  • Motia framework integration
  • Stream operations (when available)
  • State management (when available)

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

motia-0.2.1.dev20260212195031.tar.gz (69.6 kB view details)

Uploaded Source

Built Distribution

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

motia-0.2.1.dev20260212195031-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file motia-0.2.1.dev20260212195031.tar.gz.

File metadata

  • Download URL: motia-0.2.1.dev20260212195031.tar.gz
  • Upload date:
  • Size: 69.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for motia-0.2.1.dev20260212195031.tar.gz
Algorithm Hash digest
SHA256 9c507190cec5215b1b88f9d69274c0dd8682551e13a90805e11fe754baf9d044
MD5 a38b27d338e138d0166683c446cda583
BLAKE2b-256 d4681366330377ce5ee1d7606650b0b8052e533265feaa2fea2ddaeb4ae5180c

See more details on using hashes here.

Provenance

The following attestation bundles were made for motia-0.2.1.dev20260212195031.tar.gz:

Publisher: wip-release-pypi.yml on MotiaDev/motia-iii

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

File details

Details for the file motia-0.2.1.dev20260212195031-py3-none-any.whl.

File metadata

File hashes

Hashes for motia-0.2.1.dev20260212195031-py3-none-any.whl
Algorithm Hash digest
SHA256 d29dad8b1e1ef2e32d2c109ce0e87c54d331b94310eca46575e61c70413652a9
MD5 ef8801b118bd41df8f2a0fdab620e0b0
BLAKE2b-256 f3db71d0d7a8b14fff40c2865e00aa791e521c09a45c74ec1bc2054f03b164a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for motia-0.2.1.dev20260212195031-py3-none-any.whl:

Publisher: wip-release-pypi.yml on MotiaDev/motia-iii

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