Skip to content

Commit b9623c7

Browse files
committed
chore: Formatting/Lint fixes
1 parent a6d327a commit b9623c7

File tree

5 files changed

+36
-40
lines changed

5 files changed

+36
-40
lines changed

examples/google_adk/birthday_planner/__main__.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import click
77
import uvicorn
8+
89
from adk_agent_executor import ADKAgentExecutor
910
from dotenv import load_dotenv
1011

@@ -18,6 +19,7 @@
1819
AgentSkill,
1920
)
2021

22+
2123
load_dotenv()
2224

2325
logging.basicConfig()
@@ -39,11 +41,12 @@ def wrapper(*args, **kwargs):
3941
)
4042
def main(host: str, port: int, calendar_agent: str):
4143
# Verify an API key is set. Not required if using Vertex AI APIs, since those can use gcloud credentials.
42-
if not os.getenv('GOOGLE_GENAI_USE_VERTEXAI') == 'TRUE':
43-
if not os.getenv('GOOGLE_API_KEY'):
44-
raise Exception(
45-
'GOOGLE_API_KEY environment variable not set and GOOGLE_GENAI_USE_VERTEXAI is not TRUE.'
46-
)
44+
if os.getenv('GOOGLE_GENAI_USE_VERTEXAI') != 'TRUE' and not os.getenv(
45+
'GOOGLE_API_KEY'
46+
):
47+
raise ValueError(
48+
'GOOGLE_API_KEY environment variable not set and GOOGLE_GENAI_USE_VERTEXAI is not TRUE.'
49+
)
4750

4851
skill = AgentSkill(
4952
id='plan_parties',

examples/google_adk/birthday_planner/adk_agent_executor.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import asyncio
22
import logging
3-
from collections.abc import AsyncGenerator
4-
from typing import Any, AsyncIterable
3+
4+
from collections.abc import AsyncGenerator, AsyncIterable
5+
from typing import Any
56
from uuid import uuid4
67

78
import httpx
9+
810
from google.adk import Runner
911
from google.adk.agents import LlmAgent, RunConfig
1012
from google.adk.artifacts import InMemoryArtifactService
@@ -42,14 +44,15 @@
4244
from a2a.utils import get_text_parts
4345
from a2a.utils.errors import ServerError
4446

47+
4548
logger = logging.getLogger(__name__)
4649
logger.setLevel(logging.DEBUG)
4750

4851
AUTH_TASK_POLLING_DELAY_SECONDS = 0.2
4952

5053

5154
class A2ARunConfig(RunConfig):
52-
"""Custom override of ADK RunConfig to smuggle extra data through the event loop"""
55+
"""Custom override of ADK RunConfig to smuggle extra data through the event loop."""
5356

5457
model_config = ConfigDict(
5558
arbitrary_types_allowed=True,
@@ -66,7 +69,7 @@ def __init__(self, calendar_agent_url):
6669
name='birthday_planner_agent',
6770
description='An agent that helps manage birthday parties.',
6871
after_tool_callback=self._handle_auth_required_task,
69-
instruction=f"""
72+
instruction="""
7073
You are an agent that helps plan birthday parties.
7174
7275
Your job as a party planner is to act as a sounding board and idea generator for
@@ -111,7 +114,7 @@ async def _handle_auth_required_task(
111114
tool_context: ToolContext,
112115
tool_response: dict,
113116
) -> dict | None:
114-
"""Handle requests that return auth-required"""
117+
"""Handle requests that return auth-required."""
115118
if tool.name != 'message_calendar_agent':
116119
return None
117120
if not tool_context.state.get('task_suspended'):
@@ -165,7 +168,7 @@ async def _process_request(
165168
task_updater.add_artifact(response)
166169
task_updater.complete()
167170
break
168-
elif calls := event.get_function_calls():
171+
if calls := event.get_function_calls():
169172
for call in calls:
170173
# Provide an update on what we're doing.
171174
if call.name == 'message_calendar_agent':
@@ -314,23 +317,21 @@ def convert_a2a_part_to_genai(part: Part) -> types.Part:
314317
part = part.root
315318
if isinstance(part, TextPart):
316319
return types.Part(text=part.text)
317-
elif isinstance(part, FilePart):
320+
if isinstance(part, FilePart):
318321
if isinstance(part.file, FileWithUri):
319322
return types.Part(
320323
file_data=types.FileData(
321324
file_uri=part.file.uri, mime_type=part.file.mime_type
322325
)
323326
)
324-
elif isinstance(part.file, FileWithBytes):
327+
if isinstance(part.file, FileWithBytes):
325328
return types.Part(
326329
inline_data=types.Blob(
327330
data=part.file.bytes, mime_type=part.file.mime_type
328331
)
329332
)
330-
else:
331-
raise ValueError(f'Unsupported file type: {type(part.file)}')
332-
else:
333-
raise ValueError(f'Unsupported part type: {type(part)}')
333+
raise ValueError(f'Unsupported file type: {type(part.file)}')
334+
raise ValueError(f'Unsupported part type: {type(part)}')
334335

335336

336337
def convert_genai_parts_to_a2a(parts: list[types.Part]) -> list[Part]:
@@ -346,14 +347,14 @@ def convert_genai_part_to_a2a(part: types.Part) -> Part:
346347
"""Convert a single Google GenAI Part type into an A2A Part type."""
347348
if part.text:
348349
return TextPart(text=part.text)
349-
elif part.file_data:
350+
if part.file_data:
350351
return FilePart(
351352
file=FileWithUri(
352353
uri=part.file_data.file_uri,
353354
mime_type=part.file_data.mime_type,
354355
)
355356
)
356-
elif part.inline_data:
357+
if part.inline_data:
357358
return Part(
358359
root=FilePart(
359360
file=FileWithBytes(
@@ -362,5 +363,4 @@ def convert_genai_part_to_a2a(part: types.Part) -> Part:
362363
)
363364
)
364365
)
365-
else:
366-
raise ValueError(f'Unsupported part type: {part}')
366+
raise ValueError(f'Unsupported part type: {part}')

src/a2a/server/request_handlers/default_request_handler.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import asyncio
2-
import contextlib
32
import logging
3+
44
from collections.abc import AsyncGenerator
55
from typing import cast
66

@@ -10,7 +10,6 @@
1010
EventConsumer,
1111
EventQueue,
1212
InMemoryQueueManager,
13-
NoTaskQueue,
1413
QueueManager,
1514
TaskQueueExists,
1615
)
@@ -29,6 +28,7 @@
2928
)
3029
from a2a.utils.errors import ServerError
3130

31+
3232
logger = logging.getLogger(__name__)
3333

3434

@@ -206,11 +206,11 @@ async def on_message_send_stream(
206206
finally:
207207
await self._cleanup_producer(producer_task, task_id)
208208

209-
async def _register_producer(self, task_id, producer_task):
209+
async def _register_producer(self, task_id, producer_task) -> None:
210210
async with self._running_agents_lock:
211211
self._running_agents[task_id] = producer_task
212212

213-
async def _cleanup_producer(self, producer_task, task_id):
213+
async def _cleanup_producer(self, producer_task, task_id) -> None:
214214
await producer_task
215215
await self._queue_manager.close(task_id)
216216
async with self._running_agents_lock:

src/a2a/server/tasks/result_aggregator.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import asyncio
22
import logging
3+
34
from collections.abc import AsyncGenerator, AsyncIterator
4-
from typing import Tuple
55

66
from a2a.server.events import Event, EventConsumer
77
from a2a.server.tasks.task_manager import TaskManager
88
from a2a.types import Message, Task, TaskState, TaskStatusUpdateEvent
99

10+
1011
logger = logging.getLogger(__name__)
1112

1213

@@ -54,7 +55,7 @@ async def consume_all(
5455

5556
async def consume_and_break_on_interrupt(
5657
self, consumer: EventConsumer
57-
) -> Tuple[Task | Message | None, bool]:
58+
) -> tuple[Task | Message | None, bool]:
5859
"""Process the event stream until completion or an interruptable state is encountered."""
5960
event_stream = consumer.consume_all()
6061
interrupted = False
@@ -64,7 +65,7 @@ async def consume_and_break_on_interrupt(
6465
return event, False
6566
await self.task_manager.process(event)
6667
if (
67-
isinstance(event, (Task, TaskStatusUpdateEvent))
68+
isinstance(event, Task | TaskStatusUpdateEvent)
6869
and event.status.state == TaskState.auth_required
6970
):
7071
# auth-required is a special state: the message should be
@@ -82,16 +83,8 @@ async def consume_and_break_on_interrupt(
8283
break
8384
return await self.task_manager.get_task(), interrupted
8485

85-
async def _continue_consuming(self, event_stream: AsyncIterator[Event]):
86+
async def _continue_consuming(
87+
self, event_stream: AsyncIterator[Event]
88+
) -> None:
8689
async for event in event_stream:
8790
await self.task_manager.process(event)
88-
89-
# async def consume_and_emit_task(
90-
# self, consumer: EventConsumer
91-
# ) -> AsyncGenerator[Event, None]:
92-
# """Processes the event stream and emits the current state of the task."""
93-
# async for event in consumer.consume_all():
94-
# if isinstance(event, Message):
95-
# self._current_task_or_message = event
96-
# break
97-
# yield await self.task_manager.process(event)

src/a2a/utils/helpers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def decorator(function):
9292
def wrapper(self, *args, **kwargs):
9393
if not expression(self):
9494
if not error_message:
95-
message = str(expression)
95+
error_message = str(expression)
9696
logger.error(f'Unsupported Operation: {error_message}')
9797
raise ServerError(
9898
UnsupportedOperationError(message=error_message)

0 commit comments

Comments
 (0)