File size: 1,175 Bytes
a03a89b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"""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()