Skip to content

为 uni_rl env 契约增加 runtime_checkable 符合性测试 #1587

Description

@TATP-233

背景

uni_rl 1.2.1 对 env 对象是鸭子类型访问,UniLab 侧没有任何测试结构化地钉住该契约:

  • env.cfg.max_episode_seconds / env.cfg.ctrl_dt(uni_rl/algos/rsl_rl.py:215)
  • env.set_nan_guard + env.play_capabilities.supports_physics_state_playback(uni_rl/offpolicy/worker.py:236-240、appo/worker.py:154-158)
  • 可选 env.set_episode_length_buf(uni_rl/algos/rsl_rl.py:233,由 src/unilab/envs/manager_based_rl_env.py:718 提供)

uni_rl.env_contract.EnvProtocol 是 runtime_checkable 的,而 src/unilab/base/env_factory.py:65-67 目前靠 cast + 注释兜底。

建议

加一条 isinstance(env, EnvProtocol) 符合性测试(覆盖 ManagerBasedRlEnv/NpEnv),把这类上下游错配从运行时失败变成测试失败。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions