This release is a pre-release and may not be stable for production use.
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.
-
Install dev dependencies:
cd motia && uv sync --all-extras
-
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)
Metadata
Release files for motia 0.2.1.dev20260212195031
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| motia-0.2.1.dev20260212195031.tar.gz | 69.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| motia-0.2.1.dev20260212195031-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 92.7 kB
Release files / motia-0.2.1.dev20260212195031.tar.gz
| Download URL | motia-0.2.1.dev20260212195031.tar.gz |
|---|---|
| Size | 69.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c507190cec5215b1b88f9d69274c0dd8682551e13a90805e11fe754baf9d044
|
|
BLAKE2b-256 checksum How to use checksums |
d4681366330377ce5ee1d7606650b0b8052e533265feaa2fea2ddaeb4ae5180c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency logRelease files / motia-0.2.1.dev20260212195031-py3-none-any.whl
| Download URL | motia-0.2.1.dev20260212195031-py3-none-any.whl |
|---|---|
| Size | 23.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d29dad8b1e1ef2e32d2c109ce0e87c54d331b94310eca46575e61c70413652a9
|
|
BLAKE2b-256 checksum How to use checksums |
f3db71d0d7a8b14fff40c2865e00aa791e521c09a45c74ec1bc2054f03b164a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency log