import argparse import sys from openenv.core.env import OpenEnv from openenv.core.config import EnvConfig from openenv.core.models import Observation, Action, Reward, EnvState def main(): parser = argparse.ArgumentParser(description="OpenEnv CLI") subparsers = parser.add_subparsers(dest="command") val_parser = subparsers.add_parser("validate", help="Validate the OpenEnv implementation") args = parser.parse_args() if args.command == "validate": print("Validating OpenEnv Spec Compliance...") try: config = EnvConfig(task_level="easy", verbose=False) env = OpenEnv(config=config) # 1. Test reset obs, info = env.reset() assert isinstance(obs, Observation), "reset() must return an Observation model" # 2. Test step act = Action(action_type=0) obs, reward, terminated, truncated, info = env.step(act) assert isinstance(obs, Observation), "step() must return an Observation model" assert isinstance(reward, float), "step() must return float reward" # 3. Test state state = env.state() assert isinstance(state, EnvState), "state() must return an EnvState model" print("Validation Passed! Environment is OpenEnv-compliant.") sys.exit(0) except Exception as e: print(f"Validation Failed: {e}") sys.exit(1) if __name__ == "__main__": main()