|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
FastAPI application for the Echo Environment. |
|
|
|
|
|
This module creates an HTTP server that exposes the EchoEnvironment |
|
|
over HTTP endpoints, making it compatible with HTTPEnvClient. |
|
|
|
|
|
Usage: |
|
|
# Development (with auto-reload): |
|
|
uvicorn envs.echo_env.server.app:app --reload --host 0.0.0.0 --port 8000 |
|
|
|
|
|
# With the packaged CLI (auto-reload enabled via flag): |
|
|
server --reload --host 0.0.0.0 --port 8000 |
|
|
|
|
|
# Production: |
|
|
uvicorn envs.echo_env.server.app:app --host 0.0.0.0 --port 8000 --workers 4 |
|
|
|
|
|
# Or run directly: |
|
|
python -m envs.echo_env.server.app |
|
|
""" |
|
|
|
|
|
from core.env_server.http_server import create_app |
|
|
|
|
|
from ..models import EchoAction, EchoObservation |
|
|
from .echo_environment import EchoEnvironment |
|
|
|
|
|
|
|
|
env = EchoEnvironment() |
|
|
|
|
|
|
|
|
app = create_app(env, EchoAction, EchoObservation, env_name="echo_env") |
|
|
|
|
|
|
|
|
def main(host: str = "0.0.0.0", port: int = 8000, *, reload: bool = False) -> None: |
|
|
"""Run the Echo environment server with Uvicorn.""" |
|
|
import uvicorn |
|
|
|
|
|
uvicorn.run( |
|
|
"envs.echo_env.server.app:app", |
|
|
host=host, |
|
|
port=port, |
|
|
reload=reload, |
|
|
) |
|
|
|
|
|
|
|
|
def cli(argv: list[str] | None = None) -> None: |
|
|
"""Entry point for the packaged console script.""" |
|
|
import argparse |
|
|
parser = argparse.ArgumentParser(description="Run the Echo Environment HTTP server.") |
|
|
parser.add_argument("--host", default="0.0.0.0", help="Host interface to bind.") |
|
|
parser.add_argument( |
|
|
"--port", type=int, default=8000, help="Port number to expose the server on." |
|
|
) |
|
|
parser.add_argument( |
|
|
"--reload", |
|
|
action="store_true", |
|
|
help="Enable the uvicorn reload watcher (development only).", |
|
|
) |
|
|
args = parser.parse_args(argv) |
|
|
main(host=args.host, port=args.port, reload=args.reload) |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
cli() |
|
|
|