diff --git a/pyproject.toml b/pyproject.toml index 1ea2f60bc..d32d3af10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -223,7 +223,7 @@ disable = ["R0801"] extend-exclude = ["tests/profiles/syntax_error.py"] [tool.ruff.lint] -extend-select = ["TID251", "UP006", "UP007", "RUF100"] +extend-select = ["TID251", "UP006", "UP007", "UP035", "RUF100"] [tool.ruff.lint.flake8-tidy-imports.banned-api] unittest = { msg = "use pytest instead of unittest" } diff --git a/src/app/endpoints/a2a.py b/src/app/endpoints/a2a.py index d34e3ae4d..c09a857ee 100644 --- a/src/app/endpoints/a2a.py +++ b/src/app/endpoints/a2a.py @@ -3,9 +3,9 @@ import asyncio import json import uuid -from collections.abc import Mapping +from collections.abc import Mapping, AsyncIterator, MutableMapping from datetime import datetime, timezone -from typing import Annotated, Any, AsyncIterator, MutableMapping, Optional +from typing import Annotated, Any, Optional from a2a.server.agent_execution import AgentExecutor, RequestContext from a2a.server.apps import A2AStarletteApplication diff --git a/src/app/endpoints/streaming_query.py b/src/app/endpoints/streaming_query.py index 6c9fe639d..5b3e57794 100644 --- a/src/app/endpoints/streaming_query.py +++ b/src/app/endpoints/streaming_query.py @@ -3,7 +3,8 @@ import asyncio import datetime import json -from typing import Annotated, Any, AsyncIterator, Optional, cast +from typing import Annotated, Any, Optional, cast +from collections.abc import AsyncIterator from fastapi import APIRouter, Depends, HTTPException, Request from fastapi.responses import StreamingResponse diff --git a/src/app/main.py b/src/app/main.py index ab4b9cf72..bb3523eac 100644 --- a/src/app/main.py +++ b/src/app/main.py @@ -2,7 +2,7 @@ import os from contextlib import asynccontextmanager -from typing import AsyncIterator +from collections.abc import AsyncIterator from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware diff --git a/src/authentication/jwk_token.py b/src/authentication/jwk_token.py index 90343e2b6..1f0b9f436 100644 --- a/src/authentication/jwk_token.py +++ b/src/authentication/jwk_token.py @@ -2,7 +2,8 @@ import json from asyncio import Lock -from typing import Any, Callable +from typing import Any +from collections.abc import Callable import aiohttp from authlib.jose import JsonWebKey, Key, KeySet, jwt diff --git a/src/authorization/middleware.py b/src/authorization/middleware.py index 00cd2ceeb..431c9a771 100644 --- a/src/authorization/middleware.py +++ b/src/authorization/middleware.py @@ -1,7 +1,8 @@ """Authorization middleware and decorators.""" from functools import lru_cache, wraps -from typing import Any, Callable, Optional +from typing import Any, Optional +from collections.abc import Callable from fastapi import HTTPException from starlette.requests import Request diff --git a/src/models/config.py b/src/models/config.py index 47f4f768a..1f96944d0 100644 --- a/src/models/config.py +++ b/src/models/config.py @@ -6,7 +6,8 @@ from enum import Enum from functools import cached_property from pathlib import Path -from typing import Any, Optional, Pattern +from typing import Any, Optional, Literal, Self +from re import Pattern import jsonpath_ng import yaml @@ -25,7 +26,6 @@ model_validator, ) from pydantic.dataclasses import dataclass -from typing_extensions import Literal, Self import constants from log import get_logger diff --git a/src/models/requests.py b/src/models/requests.py index fc408694b..4027e3772 100644 --- a/src/models/requests.py +++ b/src/models/requests.py @@ -2,7 +2,7 @@ from enum import Enum from typing import Optional, Any -from typing_extensions import Self +from typing import Self from llama_stack_api.openai_responses import ( OpenAIResponseInputToolChoice as ToolChoice, diff --git a/src/utils/common.py b/src/utils/common.py index dbee9d84d..2f8d00319 100644 --- a/src/utils/common.py +++ b/src/utils/common.py @@ -2,7 +2,8 @@ import asyncio from functools import wraps -from typing import Any, Callable, cast +from typing import Any, cast +from collections.abc import Callable from logging import Logger from llama_stack_client import AsyncLlamaStackClient diff --git a/src/utils/connection_decorator.py b/src/utils/connection_decorator.py index 806378557..e21d855f8 100644 --- a/src/utils/connection_decorator.py +++ b/src/utils/connection_decorator.py @@ -1,6 +1,7 @@ """Decorator that makes sure the object is 'connected' according to it's connected predicate.""" -from typing import Any, Callable +from typing import Any +from collections.abc import Callable def connection(f: Callable) -> Callable: diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 11ceb7a93..15af92416 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -2,7 +2,7 @@ import os from pathlib import Path -from typing import Generator +from collections.abc import Generator import pytest from fastapi import Request, Response diff --git a/tests/integration/endpoints/test_health_integration.py b/tests/integration/endpoints/test_health_integration.py index 8857e356a..e477a2ce5 100644 --- a/tests/integration/endpoints/test_health_integration.py +++ b/tests/integration/endpoints/test_health_integration.py @@ -1,6 +1,7 @@ """Integration tests for the /health endpoint.""" -from typing import Any, Generator +from typing import Any +from collections.abc import Generator import pytest from fastapi import Response diff --git a/tests/integration/endpoints/test_info_integration.py b/tests/integration/endpoints/test_info_integration.py index 7350f3a55..8f59fe1c8 100644 --- a/tests/integration/endpoints/test_info_integration.py +++ b/tests/integration/endpoints/test_info_integration.py @@ -1,6 +1,7 @@ """Integration tests for the /info endpoint.""" -from typing import Generator, Any +from typing import Any +from collections.abc import Generator import pytest from pytest_mock import MockerFixture, AsyncMockType diff --git a/tests/integration/endpoints/test_model_list.py b/tests/integration/endpoints/test_model_list.py index b1cbe2e5c..78dcb3bd9 100644 --- a/tests/integration/endpoints/test_model_list.py +++ b/tests/integration/endpoints/test_model_list.py @@ -1,6 +1,7 @@ """Integration tests for the /models endpoint (using Responses API).""" -from typing import Any, Generator +from typing import Any +from collections.abc import Generator import pytest from fastapi import Request diff --git a/tests/integration/endpoints/test_query_integration.py b/tests/integration/endpoints/test_query_integration.py index fdf807a19..d96879c4e 100644 --- a/tests/integration/endpoints/test_query_integration.py +++ b/tests/integration/endpoints/test_query_integration.py @@ -4,7 +4,8 @@ # pylint: disable=too-many-arguments # Integration tests need many fixtures # pylint: disable=too-many-positional-arguments # Integration tests need many fixtures -from typing import Any, Generator +from typing import Any +from collections.abc import Generator import pytest from fastapi import HTTPException, Request, status diff --git a/tests/integration/endpoints/test_root_endpoint.py b/tests/integration/endpoints/test_root_endpoint.py index c760a3932..f98ef686f 100644 --- a/tests/integration/endpoints/test_root_endpoint.py +++ b/tests/integration/endpoints/test_root_endpoint.py @@ -1,6 +1,7 @@ """Integration tests for the /root endpoint.""" -from typing import Generator, Any +from typing import Any +from collections.abc import Generator import pytest from pytest_mock import MockerFixture diff --git a/tests/integration/endpoints/test_streaming_query_integration.py b/tests/integration/endpoints/test_streaming_query_integration.py index 66ab0c7ce..05fba0a5c 100644 --- a/tests/integration/endpoints/test_streaming_query_integration.py +++ b/tests/integration/endpoints/test_streaming_query_integration.py @@ -1,7 +1,7 @@ """Integration tests for the /streaming_query endpoint (using Responses API).""" -from collections.abc import AsyncIterator -from typing import Any, Generator +from collections.abc import AsyncIterator, Generator +from typing import Any import pytest from fastapi import HTTPException, Request, status diff --git a/tests/integration/endpoints/test_tools_integration.py b/tests/integration/endpoints/test_tools_integration.py index 64b009e6a..96b26a0e4 100644 --- a/tests/integration/endpoints/test_tools_integration.py +++ b/tests/integration/endpoints/test_tools_integration.py @@ -1,6 +1,7 @@ """Integration tests for the /tools endpoint.""" -from typing import Any, Generator +from typing import Any +from collections.abc import Generator import pytest from fastapi import HTTPException, Request, status diff --git a/tests/integration/test_rh_identity_integration.py b/tests/integration/test_rh_identity_integration.py index e4f0ea87e..1d159a1d6 100644 --- a/tests/integration/test_rh_identity_integration.py +++ b/tests/integration/test_rh_identity_integration.py @@ -5,7 +5,7 @@ import base64 import json import os -from typing import Generator +from collections.abc import Generator import pytest from fastapi.testclient import TestClient diff --git a/tests/unit/a2a_storage/test_storage_factory.py b/tests/unit/a2a_storage/test_storage_factory.py index e4c63f3d6..d02a7a06d 100644 --- a/tests/unit/a2a_storage/test_storage_factory.py +++ b/tests/unit/a2a_storage/test_storage_factory.py @@ -3,7 +3,8 @@ # pylint: disable=protected-access from pathlib import Path -from typing import Any, Generator +from typing import Any +from collections.abc import Generator import pytest from pytest_mock import MockerFixture diff --git a/tests/unit/app/test_database.py b/tests/unit/app/test_database.py index 0ec55099a..280a64192 100644 --- a/tests/unit/app/test_database.py +++ b/tests/unit/app/test_database.py @@ -2,7 +2,7 @@ # pylint: disable=protected-access -from typing import Generator +from collections.abc import Generator from pathlib import Path import tempfile import pytest diff --git a/tests/unit/app/test_routers.py b/tests/unit/app/test_routers.py index 8c9100b0e..754e3fdb2 100644 --- a/tests/unit/app/test_routers.py +++ b/tests/unit/app/test_routers.py @@ -1,6 +1,7 @@ """Unit tests for routers.py.""" -from typing import Any, Optional, Sequence, Callable +from typing import Any, Optional +from collections.abc import Sequence, Callable from fastapi import FastAPI diff --git a/tests/unit/authentication/test_jwk_token.py b/tests/unit/authentication/test_jwk_token.py index 221208cd1..b9fb6da86 100644 --- a/tests/unit/authentication/test_jwk_token.py +++ b/tests/unit/authentication/test_jwk_token.py @@ -3,7 +3,8 @@ """Unit tests for functions defined in authentication/jwk_token.py""" import time -from typing import Any, Generator, cast +from typing import Any, cast +from collections.abc import Generator import pytest from fastapi import HTTPException, Request diff --git a/tests/unit/authorization/test_azure_token_manager.py b/tests/unit/authorization/test_azure_token_manager.py index 012522009..6db81389e 100644 --- a/tests/unit/authorization/test_azure_token_manager.py +++ b/tests/unit/authorization/test_azure_token_manager.py @@ -4,7 +4,8 @@ import logging import time -from typing import Any, Generator +from typing import Any +from collections.abc import Generator import pytest from azure.core.credentials import AccessToken diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index 6a5afcac3..cf741b9e8 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Generator +from collections.abc import Generator import pytest from pytest_mock import AsyncMockType, MockerFixture diff --git a/tests/unit/models/rlsapi/test_requests.py b/tests/unit/models/rlsapi/test_requests.py index fb290e2b3..fbdd64f61 100644 --- a/tests/unit/models/rlsapi/test_requests.py +++ b/tests/unit/models/rlsapi/test_requests.py @@ -1,7 +1,8 @@ # pylint: disable=no-member """Unit tests for rlsapi v1 request models.""" -from typing import Any, Optional, Callable +from typing import Any, Optional +from collections.abc import Callable import pytest from pydantic import BaseModel, ValidationError diff --git a/tests/unit/test_configuration.py b/tests/unit/test_configuration.py index 1cd11df86..acd1ca5af 100644 --- a/tests/unit/test_configuration.py +++ b/tests/unit/test_configuration.py @@ -3,7 +3,8 @@ # pylint: disable=too-many-lines from pathlib import Path -from typing import Any, Generator +from typing import Any +from collections.abc import Generator from pydantic import ValidationError import pytest