[object Object]

← back to Exo

tidy: remove context manager from api (#1199)

746589ba6bcd99b91712ca02eadede467a4cfbaa · 2026-01-19 11:58:13 +0000 · Evan Quiney

Files touched

Diff

commit 746589ba6bcd99b91712ca02eadede467a4cfbaa
Author: Evan Quiney <evanev7@gmail.com>
Date:   Mon Jan 19 11:58:13 2026 +0000

    tidy: remove context manager from api (#1199)
---
 src/exo/master/api.py | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/exo/master/api.py b/src/exo/master/api.py
index 3f36c3c8..1c5f19fc 100644
--- a/src/exo/master/api.py
+++ b/src/exo/master/api.py
@@ -155,18 +155,19 @@ class API:
         self.paused_ev = anyio.Event()
 
     def _setup_exception_handlers(self) -> None:
-        @self.app.exception_handler(HTTPException)
-        async def http_exception_handler(  # pyright: ignore[reportUnusedFunction]
-            _: Request, exc: HTTPException
-        ) -> JSONResponse:
-            err = ErrorResponse(
-                error=ErrorInfo(
-                    message=exc.detail,
-                    type=HTTPStatus(exc.status_code).phrase,
-                    code=exc.status_code,
-                )
+        self.app.exception_handler(HTTPException)(self.http_exception_handler)
+
+    async def http_exception_handler(
+        self, _: Request, exc: HTTPException
+    ) -> JSONResponse:
+        err = ErrorResponse(
+            error=ErrorInfo(
+                message=exc.detail,
+                type=HTTPStatus(exc.status_code).phrase,
+                code=exc.status_code,
             )
-            return JSONResponse(err.model_dump(), status_code=exc.status_code)
+        )
+        return JSONResponse(err.model_dump(), status_code=exc.status_code)
 
     def _setup_cors(self) -> None:
         self.app.add_middleware(

← f82f862f Fix several issues with placement (#1200)  ·  back to Exo  ·  Set swa_idx and ga_idx for single layer (#1202) 73b3f87e →