Skip to main content

embodied-ops

Reliable collection, evaluation, and artifact workflows for embodied AI.

Apache-2.0 License

embodied-ops contains the workflow primitives that sit above robot and policy adapters: episode decisions, sample-timing checks, deterministic evaluation plans, and transactional artifact publication. The package has no runtime dependencies and does not define a competing robot API.

Install

python -m pip install embodied-ops

Scope

Area Public contract
Collection Portable experiment IDs, episode decisions, reset policy, sample freshness and pair skew
Evaluation Stable task/repetition plans and deterministic run slots
Artifacts Atomic file and directory publication, create-only reports, JSON helpers, and SHA-256 digests

Use the native interface of the framework that owns the hardware integration, such as LeRobot Robot and Teleoperator. ROS nodes, drivers, control leases, safety limits, datasets, policies, and process supervision remain in those framework or robot-specific packages.

Atomic artifacts

from pathlib import Path
from embodied_ops import OutputDirectoryTransaction

with OutputDirectoryTransaction(Path("runs/eval-001")) as transaction:
    assert transaction.path is not None
    (transaction.path / "metrics.json").write_text("{}\n")
    transaction.commit()

If the body fails or exits without commit(), the staging directory is removed and any previous complete output remains authoritative. Once publication succeeds, transaction.committed remains true even if removal of the displaced backup fails; that recovery state raises PublishedOutputCleanupError with both paths. Unfinished staging or backup siblings block reuse until they are inspected. For single files, create_only_output_file() provides the same build-then-publish flow without ever replacing an existing path.

Evaluation plans

from embodied_ops import EvaluationPlan

plan = EvaluationPlan(
    identifier="fruit-placement",
    task_ids=("apple_bowl", "mango_plate"),
    attempts_per_task=3,
)
for slot in plan.slots():
    print(slot.sequence, slot.total, slot.task_id)

Run metadata may persist slot.to_dict() and later reconstruct the same task/repetition position without depending on directory order.

Development

uv sync --dev
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv build

Metadata

Release files for embodied-ops 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for embodied-ops 0.3.0
File Size Uploaded
embodied_ops-0.3.0.tar.gz 14.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for embodied-ops 0.3.0
File Interpreter ABI Platform
embodied_ops-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.7 kB

Release files / embodied_ops-0.3.0.tar.gz

Download URL embodied_ops-0.3.0.tar.gz
Size 14.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5127bd1a147df3d85813eb8b3f9b4ac1d9eaced593d0334c89b56f31d073f628
BLAKE2b-256 checksum
How to use checksums
8ed1524a585326ebf8e3fae567a12e4c0ffc10b010d04bddefe96b3c5428a53c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / embodied_ops-0.3.0-py3-none-any.whl

Download URL embodied_ops-0.3.0-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cea680cdba2a3c53498d8bdc82b42daead88d7b5300eb64073bed9fde47dc174
BLAKE2b-256 checksum
How to use checksums
c1b844ec997c13dd2737a180c1c445d1697b5693f8e0e56061d9c7b5b1e644c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.9.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page