Skip to content

Commit 6459c07

Browse files
committed
Turn Message -> str into a resuable utility method
Change-Id: I50f020880af3f216ece3792d97cf31e00e00bf4c
1 parent a12333e commit 6459c07

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

src/a2a/server/agent_execution/context.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
Task,
88
TextPart,
99
)
10+
from a2a.utils import get_message_text
1011
from a2a.utils.errors import ServerError
1112

1213

@@ -48,11 +49,7 @@ def get_user_input(self, delimiter='\n') -> str:
4849
if not self._params:
4950
return ''
5051

51-
parts = []
52-
for part in self._params.message.parts:
53-
if isinstance(part.root, TextPart):
54-
parts.append(part.root.text)
55-
return delimiter.join(parts)
52+
return get_message_text(self._params.message, delimiter)
5653

5754
def attach_related_task(self, task: Task):
5855
self._related_tasks.append(task)

src/a2a/utils/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@
44
build_text_artifact,
55
create_task_obj,
66
)
7-
from a2a.utils.message import new_agent_text_message
7+
from a2a.utils.message import (
8+
get_message_text,
9+
get_text_parts,
10+
new_agent_text_message,
11+
)
812
from a2a.utils.task import new_task
913

1014

1115
__all__ = [
1216
'append_artifact_to_task',
1317
'build_text_artifact',
1418
'create_task_obj',
19+
'get_message_text',
20+
'get_text_parts',
1521
'new_agent_text_message',
1622
'new_task',
1723
'new_text_artifact',

src/a2a/utils/message.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,12 @@ def new_agent_text_message(
1919
taskId=task_id,
2020
contextId=context_id,
2121
)
22+
23+
24+
def get_text_parts(parts: list[Part]) -> list[str]:
25+
"""Return all text parts from a list of parts."""
26+
return [part.root.text for part in parts if isinstance(part.root, TextPart)]
27+
28+
29+
def get_message_text(message: Message, delimiter='\n') -> str:
30+
return delimiter.join(get_text_parts(message.parts))

0 commit comments

Comments
 (0)