Skip to content

Commit d279515

Browse files
committed
Refactors from review: sort extensions in response, small method refactor
1 parent c27d7f5 commit d279515

2 files changed

Lines changed: 7 additions & 13 deletions

File tree

src/a2a/server/apps/jsonrpc/jsonrpc_app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ def _create_response(
392392
"""
393393
headers = {}
394394
if exts := context.activated_extensions:
395-
headers[HTTP_EXTENSION_HEADER] = ', '.join(exts)
395+
headers[HTTP_EXTENSION_HEADER] = ', '.join(sorted(exts))
396396
if isinstance(handler_result, AsyncGenerator):
397397
# Result is a stream of SendStreamingMessageResponse objects
398398
async def event_generator(

src/a2a/server/request_handlers/grpc_handler.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,13 @@ def _get_metadata_value(
5252
context: grpc.aio.ServicerContext, key: str
5353
) -> list[str]:
5454
md = context.invocation_metadata
55-
vs = []
55+
raw_values: list[str | bytes] = []
5656
if isinstance(md, Metadata):
57-
vs = [
58-
e if isinstance(e, str) else e.decode('utf-8')
59-
for e in md.get_all(key)
60-
]
57+
raw_values = md.get_all(key)
6158
elif isinstance(md, Sequence):
62-
vs = [
63-
e if isinstance(e, str) else e.decode('utf-8')
64-
for (k, e) in md
65-
if k == key.lower()
66-
]
67-
return vs
59+
lower_key = key.lower()
60+
raw_values = [e for (k, e) in md if k == lower_key]
61+
return [e if isinstance(e, str) else e.decode('utf-8') for e in raw_values]
6862

6963

7064
class DefaultCallContextBuilder(CallContextBuilder):
@@ -414,6 +408,6 @@ def _set_extension_metadata(
414408
context.set_trailing_metadata(
415409
[
416410
(HTTP_EXTENSION_HEADER, e)
417-
for e in server_context.activated_extensions
411+
for e in sorted(server_context.activated_extensions)
418412
]
419413
)

0 commit comments

Comments
 (0)