"""FastAPI app exposing MiniGridEnv through OpenEnv.""" try: from ..env.config import EnvConfig from ..env.minigrid_env import MiniGridEnvironment from ..env.models import MiniGridAction, MiniGridObservation except ImportError: from env.config import EnvConfig from env.minigrid_env import MiniGridEnvironment from env.models import MiniGridAction, MiniGridObservation try: from openenv.core.env_server import create_app except ImportError: create_app = None # type: ignore def _env_factory() -> MiniGridEnvironment: """Create a fresh env instance per client session.""" return MiniGridEnvironment(config=EnvConfig()) if create_app is not None: app = create_app( _env_factory, MiniGridAction, MiniGridObservation, env_name="MiniGridEnv", max_concurrent_envs=256, ) else: from fastapi import FastAPI app = FastAPI(title="MiniGridEnv") app.get("/health")(lambda: {"status": "ok"}) def main() -> None: """Entry point for `uv run server` or `python -m`.""" import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000) if __name__ == "__main__": main()