Skip to content

Commit 109488c

Browse files
committed
Refactor starlette imports in utility modules
Ensures [http-server] optional dependency imports are handled within try-except in utility modules: - server/request_handlers/rest_handler.py - and utils/error_handlers.py Also, removes duplicate imports from `starlette` in `rest_adapter.py`.
1 parent 38739b7 commit 109488c

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

src/a2a/server/apps/rest/rest_adapter.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
from collections.abc import AsyncIterable, AsyncIterator, Awaitable, Callable
55
from typing import TYPE_CHECKING, Any
66

7-
from sse_starlette.sse import EventSourceResponse
8-
from starlette.requests import Request
9-
from starlette.responses import JSONResponse, Response
10-
117

128
if TYPE_CHECKING:
139
from sse_starlette.sse import EventSourceResponse

src/a2a/server/request_handlers/rest_handler.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
import logging
22

33
from collections.abc import AsyncIterable, AsyncIterator
4-
from typing import Any
4+
from typing import TYPE_CHECKING, Any
55

66
from google.protobuf.json_format import MessageToDict, MessageToJson, Parse
7-
from starlette.requests import Request
7+
8+
9+
if TYPE_CHECKING:
10+
from starlette.requests import Request
11+
else:
12+
try:
13+
from starlette.requests import Request
14+
except ImportError:
15+
Request = Any
16+
817

918
from a2a.grpc import a2a_pb2
1019
from a2a.server.context import ServerCallContext

src/a2a/utils/error_handlers.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,18 @@
22
import logging
33

44
from collections.abc import Awaitable, Callable, Coroutine
5-
from typing import Any
5+
from typing import TYPE_CHECKING, Any
6+
7+
8+
if TYPE_CHECKING:
9+
from starlette.responses import JSONResponse, Response
10+
else:
11+
try:
12+
from starlette.responses import JSONResponse, Response
13+
except ImportError:
14+
JSONResponse = Any
15+
Response = Any
616

7-
from starlette.responses import JSONResponse, Response
817

918
from a2a._base import A2ABaseModel
1019
from a2a.types import (

0 commit comments

Comments
 (0)