#!/usr/bin/env bash set -Eeuo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" if [ -n "${OPENPI_PYTHON:-}" ]; then PY="$OPENPI_PYTHON" elif [ -x "$ROOT/.venv/bin/python" ]; then PY="$ROOT/.venv/bin/python" else PY="$(command -v python3 || true)" fi if [ -z "$PY" ] || [ ! -x "$PY" ]; then echo "ERROR: no usable Python interpreter found" exit 1 fi export PYTHONDONTWRITEBYTECODE=1 export PYTHONPATH="$ROOT:$ROOT/src:$ROOT/packages/openpi-client/src" export OPENPI_REAL_PIPER_X_ASSETS="$ROOT/checkpoints/29999/assets" echo "Repository: $ROOT" echo "Python: $PY" "$PY" "$ROOT/deployment/verify_checkpoint.py" "$PY" - "$ROOT" <<'PY' from pathlib import Path import inspect import json import sys root = Path(sys.argv[1]) manifest = json.loads( (root / "metadata" / "release_manifest.json").read_text( encoding="utf-8" ) ) from openpi.training import config as train_config from deployment import piperx_client from deployment import serve_piperx config_name = "pi05_stream3_piper_x_real_6tasks" config = train_config.get_config(config_name) assert config.model.hist_horizon == 3 assert config.model.action_horizon == 10 assert config.data.repo_id == "real_piper_x_6tasks" assert config.data.use_delta_joint_actions is True assert config.data.base_config.hist_interval == 5 source = inspect.getsource(type(config.data).create) assert "DeltaActions" in source assert "AbsoluteActions" in source assert "make_bool_mask(6, -1, 6, -1)" in source model = manifest["model"] assert serve_piperx.CONFIG_NAME == config_name assert serve_piperx.HISTORY_HORIZON == model["history_horizon"] assert serve_piperx.ACTION_HORIZON == model["action_horizon"] assert serve_piperx.EXECUTE_STEPS == model["execute_steps"] assert serve_piperx.STATE_DIM == model["state_dim"] assert serve_piperx.ACTION_DIM == model["action_dim"] assert piperx_client.HISTORY_HORIZON == model["history_horizon"] assert piperx_client.ACTION_HORIZON == model["action_horizon"] assert piperx_client.EXECUTE_STEPS == model["execute_steps"] assert list(piperx_client.CAMERA_NAMES) == model["cameras"] print("CONFIG_REGISTRATION_OK") print("DELTA_TO_ABSOLUTE_TRANSFORM_OK") print("SERVER_CLIENT_PROTOCOL_OK") print("RELEASE_VERIFY_OK") PY