From f0daa566f57e81631bac12124ebc7f8fc5d9aeef Mon Sep 17 00:00:00 2001 From: Rachit Mehta Date: Tue, 17 Feb 2026 10:13:58 -0500 Subject: [PATCH] fix: bidi linting errors --- src/strands/experimental/bidi/_async/__init__.py | 2 +- src/strands/experimental/bidi/_async/_task_group.py | 3 ++- src/strands/experimental/bidi/_async/_task_pool.py | 3 ++- src/strands/experimental/bidi/agent/agent.py | 3 ++- src/strands/experimental/bidi/agent/loop.py | 3 ++- src/strands/experimental/bidi/models/gemini_live.py | 3 ++- src/strands/experimental/bidi/models/model.py | 3 ++- src/strands/experimental/bidi/models/nova_sonic.py | 8 ++------ src/strands/experimental/bidi/models/openai_realtime.py | 5 +++-- src/strands/experimental/bidi/types/agent.py | 4 +--- src/strands/experimental/bidi/types/io.py | 3 ++- 11 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/strands/experimental/bidi/_async/__init__.py b/src/strands/experimental/bidi/_async/__init__.py index 47473115c..10c3c0f60 100644 --- a/src/strands/experimental/bidi/_async/__init__.py +++ b/src/strands/experimental/bidi/_async/__init__.py @@ -1,6 +1,6 @@ """Utilities for async operations.""" -from typing import Awaitable, Callable +from collections.abc import Awaitable, Callable from ._task_group import _TaskGroup from ._task_pool import _TaskPool diff --git a/src/strands/experimental/bidi/_async/_task_group.py b/src/strands/experimental/bidi/_async/_task_group.py index 33cf63dca..7a289e075 100644 --- a/src/strands/experimental/bidi/_async/_task_group.py +++ b/src/strands/experimental/bidi/_async/_task_group.py @@ -6,7 +6,8 @@ """ import asyncio -from typing import Any, Coroutine, cast +from collections.abc import Coroutine +from typing import Any, cast class _TaskGroup: diff --git a/src/strands/experimental/bidi/_async/_task_pool.py b/src/strands/experimental/bidi/_async/_task_pool.py index 83146fd5f..55de94f72 100644 --- a/src/strands/experimental/bidi/_async/_task_pool.py +++ b/src/strands/experimental/bidi/_async/_task_pool.py @@ -4,7 +4,8 @@ """ import asyncio -from typing import Any, Coroutine +from collections.abc import Coroutine +from typing import Any class _TaskPool: diff --git a/src/strands/experimental/bidi/agent/agent.py b/src/strands/experimental/bidi/agent/agent.py index 8c68e780e..62f13599c 100644 --- a/src/strands/experimental/bidi/agent/agent.py +++ b/src/strands/experimental/bidi/agent/agent.py @@ -15,7 +15,8 @@ import asyncio import logging -from typing import TYPE_CHECKING, Any, AsyncGenerator +from collections.abc import AsyncGenerator +from typing import TYPE_CHECKING, Any from .... import _identifier from ....agent.state import AgentState diff --git a/src/strands/experimental/bidi/agent/loop.py b/src/strands/experimental/bidi/agent/loop.py index 2b883cf73..2c0f4d43c 100644 --- a/src/strands/experimental/bidi/agent/loop.py +++ b/src/strands/experimental/bidi/agent/loop.py @@ -5,7 +5,8 @@ import asyncio import logging -from typing import TYPE_CHECKING, Any, AsyncGenerator, cast +from collections.abc import AsyncGenerator +from typing import TYPE_CHECKING, Any, cast from ....types._events import ToolInterruptEvent, ToolResultEvent, ToolResultMessageEvent, ToolUseStreamEvent from ....types.content import Message diff --git a/src/strands/experimental/bidi/models/gemini_live.py b/src/strands/experimental/bidi/models/gemini_live.py index 88d7f5a0c..e23f703b6 100644 --- a/src/strands/experimental/bidi/models/gemini_live.py +++ b/src/strands/experimental/bidi/models/gemini_live.py @@ -15,7 +15,8 @@ import base64 import logging import uuid -from typing import Any, AsyncGenerator, cast +from collections.abc import AsyncGenerator +from typing import Any, cast from google import genai from google.genai import types as genai_types diff --git a/src/strands/experimental/bidi/models/model.py b/src/strands/experimental/bidi/models/model.py index 5941d7e41..041e6bb4f 100644 --- a/src/strands/experimental/bidi/models/model.py +++ b/src/strands/experimental/bidi/models/model.py @@ -14,7 +14,8 @@ """ import logging -from typing import Any, AsyncIterable, Protocol, runtime_checkable +from collections.abc import AsyncIterable +from typing import Any, Protocol, runtime_checkable from ....types._events import ToolResultEvent from ....types.content import Messages diff --git a/src/strands/experimental/bidi/models/nova_sonic.py b/src/strands/experimental/bidi/models/nova_sonic.py index d836bde49..8f8aa7c33 100644 --- a/src/strands/experimental/bidi/models/nova_sonic.py +++ b/src/strands/experimental/bidi/models/nova_sonic.py @@ -15,17 +15,13 @@ Note, BidiNovaSonicModel is only supported for Python 3.12+ """ -import sys - -if sys.version_info < (3, 12): - raise ImportError("BidiNovaSonicModel is only supported for Python 3.12+") - import asyncio import base64 import json import logging import uuid -from typing import Any, AsyncGenerator, cast +from collections.abc import AsyncGenerator +from typing import Any, cast import boto3 from aws_sdk_bedrock_runtime.client import BedrockRuntimeClient, InvokeModelWithBidirectionalStreamOperationInput diff --git a/src/strands/experimental/bidi/models/openai_realtime.py b/src/strands/experimental/bidi/models/openai_realtime.py index 9196a39d5..b00de9e26 100644 --- a/src/strands/experimental/bidi/models/openai_realtime.py +++ b/src/strands/experimental/bidi/models/openai_realtime.py @@ -10,7 +10,8 @@ import os import time import uuid -from typing import Any, AsyncGenerator, Literal, cast +from collections.abc import AsyncGenerator +from typing import Any, Literal, cast import websockets from websockets import ClientConnection @@ -434,7 +435,7 @@ async def receive(self) -> AsyncGenerator[BidiOutputEvent, None]: try: message = await asyncio.wait_for(self._websocket.recv(), timeout=10) - except asyncio.TimeoutError: + except TimeoutError: continue openai_event = json.loads(message) diff --git a/src/strands/experimental/bidi/types/agent.py b/src/strands/experimental/bidi/types/agent.py index 8d1e9aab7..f28e3b3e6 100644 --- a/src/strands/experimental/bidi/types/agent.py +++ b/src/strands/experimental/bidi/types/agent.py @@ -3,8 +3,6 @@ This module defines the types used for BidiAgent. """ -from typing import TypeAlias - from .events import BidiAudioInputEvent, BidiImageInputEvent, BidiTextInputEvent -BidiAgentInput: TypeAlias = str | BidiTextInputEvent | BidiAudioInputEvent | BidiImageInputEvent +type BidiAgentInput = str | BidiTextInputEvent | BidiAudioInputEvent | BidiImageInputEvent diff --git a/src/strands/experimental/bidi/types/io.py b/src/strands/experimental/bidi/types/io.py index bdb7d9c9d..0cfc41a0d 100644 --- a/src/strands/experimental/bidi/types/io.py +++ b/src/strands/experimental/bidi/types/io.py @@ -5,7 +5,8 @@ by separating input and output concerns into independent callables. """ -from typing import TYPE_CHECKING, Awaitable, Protocol, runtime_checkable +from collections.abc import Awaitable +from typing import TYPE_CHECKING, Protocol, runtime_checkable from ..types.events import BidiInputEvent, BidiOutputEvent