Skip to content

Commit 9cade9b

Browse files
authored
fix: fix docstrings related to CallContextBuilder args in constructors and make ServerCallContext mandatory in compat folder (#907)
# Changes - change docstrings related to `CallContextBuilder` args in constructors from innaccurate "If None, no ServerCallContext is passed." to accurate "If None the DefaultCallContextBuilder is used." - make `ServerCallContext` mandatory in [‎src/a2a/compat/v0_3/rest_adapter.py](https://github.com/a2aproject/a2a-python/pull/907/changes#diff-308e6baa6b4fcc3040166435af1735c54e3aa717ad2d39479fd588afd5e180d9)
1 parent 8d18d3d commit 9cade9b

File tree

4 files changed

+11
-14
lines changed

4 files changed

+11
-14
lines changed

src/a2a/compat/v0_3/rest_adapter.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ async def event_generator(
109109
)
110110

111111
async def handle_get_agent_card(
112-
self, request: Request, call_context: ServerCallContext | None = None
112+
self, request: Request, call_context: ServerCallContext
113113
) -> dict[str, Any]:
114114
"""Handles GET requests for the agent card endpoint."""
115115
card_to_serve = self.agent_card
@@ -119,7 +119,7 @@ async def handle_get_agent_card(
119119
return v03_card.model_dump(mode='json', exclude_none=True)
120120

121121
async def handle_authenticated_agent_card(
122-
self, request: Request, call_context: ServerCallContext | None = None
122+
self, request: Request, call_context: ServerCallContext
123123
) -> dict[str, Any]:
124124
"""Hook for per credential agent card response."""
125125
if not self.agent_card.capabilities.extended_agent_card:
@@ -132,9 +132,8 @@ async def handle_authenticated_agent_card(
132132
card_to_serve = self.agent_card
133133

134134
if self.extended_card_modifier:
135-
context = self._context_builder.build(request)
136135
card_to_serve = await maybe_await(
137-
self.extended_card_modifier(card_to_serve, context)
136+
self.extended_card_modifier(card_to_serve, call_context)
138137
)
139138
elif self.card_modifier:
140139
card_to_serve = await maybe_await(self.card_modifier(card_to_serve))

src/a2a/server/routes/jsonrpc_dispatcher.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,8 @@ def __init__( # noqa: PLR0913
215215
extended_agent_card: An optional, distinct AgentCard to be served
216216
at the authenticated extended card endpoint.
217217
context_builder: The CallContextBuilder used to construct the
218-
ServerCallContext passed to the request_handler. If None, no
219-
ServerCallContext is passed.
218+
ServerCallContext passed to the request_handler. If None the
219+
DefaultCallContextBuilder is used.
220220
card_modifier: An optional callback to dynamically modify the public
221221
agent card before it is served.
222222
extended_card_modifier: An optional callback to dynamically modify

src/a2a/server/routes/jsonrpc_routes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ def create_jsonrpc_routes( # noqa: PLR0913
5454
extended_agent_card: An optional, distinct AgentCard to be served
5555
at the authenticated extended card endpoint.
5656
context_builder: The CallContextBuilder used to construct the
57-
ServerCallContext passed to the request_handler. If None, no
58-
ServerCallContext is passed.
57+
ServerCallContext passed to the request_handler. If None the
58+
DefaultCallContextBuilder is used.
5959
card_modifier: An optional callback to dynamically modify the public
6060
agent card before it is served.
6161
extended_card_modifier: An optional callback to dynamically modify

src/a2a/server/routes/rest_routes.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ def create_rest_routes( # noqa: PLR0913
7676
extended_agent_card: An optional, distinct AgentCard to be served
7777
at the authenticated extended card endpoint.
7878
context_builder: The CallContextBuilder used to construct the
79-
ServerCallContext passed to the request_handler. If None, no
80-
ServerCallContext is passed.
79+
ServerCallContext passed to the request_handler. If None the
80+
DefaultCallContextBuilder is used.
8181
card_modifier: An optional callback to dynamically modify the public
8282
agent card before it is served.
8383
extended_card_modifier: An optional callback to dynamically modify
@@ -176,7 +176,7 @@ async def event_generator() -> AsyncIterator[str]:
176176
return EventSourceResponse(event_generator())
177177

178178
async def _handle_authenticated_agent_card(
179-
request: 'Request', call_context: ServerCallContext | None = None
179+
request: 'Request', call_context: ServerCallContext
180180
) -> dict[str, Any]:
181181
if not agent_card.capabilities.extended_agent_card:
182182
raise ExtendedAgentCardNotConfiguredError(
@@ -185,10 +185,8 @@ async def _handle_authenticated_agent_card(
185185
card_to_serve = extended_agent_card or agent_card
186186

187187
if extended_card_modifier:
188-
# Re-generate context if none passed to replicate RESTAdapter exact logic
189-
context = call_context or _build_call_context(request)
190188
card_to_serve = await maybe_await(
191-
extended_card_modifier(card_to_serve, context)
189+
extended_card_modifier(card_to_serve, call_context)
192190
)
193191
elif card_modifier:
194192
card_to_serve = await maybe_await(card_modifier(card_to_serve))

0 commit comments

Comments
 (0)