Skip to content

Commit 98cf92b

Browse files
committed
perf(clear_events): fix Ruff PERF203 by moving try/except outside the loop
- Replace per-iteration try/except with a single try/except around a while True loop - Exit on asyncio.QueueEmpty to stop draining when the queue is empty - Reduces exception overhead and satisfies Ruff PERF203 without changing behavior
1 parent a5234fc commit 98cf92b

File tree

10 files changed

+118
-7
lines changed

10 files changed

+118
-7
lines changed

.idea/.gitignore

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/a2a-python.iml

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/profiles_settings.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies = [
1313
"pydantic>=2.11.3",
1414
"protobuf>=5.29.5",
1515
"google-api-core>=1.26.0",
16+
"pre-commit>=4.3.0",
1617
]
1718

1819
classifiers = [

src/a2a/server/events/event_queue.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,16 +184,16 @@ async def clear_events(self, clear_child_queues: bool = True) -> None:
184184
# Clear all events from the queue, even if closed
185185
cleared_count = 0
186186
async with self._lock:
187-
while not self.queue.empty():
188-
try:
187+
try:
188+
while True:
189189
event = self.queue.get_nowait()
190190
logger.debug(
191191
f'Discarding unprocessed event of type: {type(event)}, content: {event}'
192192
)
193193
self.queue.task_done()
194194
cleared_count += 1
195-
except asyncio.QueueEmpty:
196-
break
195+
except asyncio.QueueEmpty:
196+
pass
197197

198198
if cleared_count > 0:
199199
logger.debug(

uv.lock

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)