fix: 修复 pre-commit hook 基于pyright 配置

This commit is contained in:
qzl
2026-04-08 18:00:08 +08:00
parent 8cf0011720
commit 17a1303f00
7 changed files with 19 additions and 12 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ repos:
- id: backend-basedpyright - id: backend-basedpyright
name: backend basedpyright check name: backend basedpyright check
entry: uv run basedpyright backend/src entry: bash -c "uv run basedpyright --level error backend/src 2>/dev/null"
language: system language: system
pass_filenames: false pass_filenames: false
files: ^backend/ files: ^backend/
@@ -7,6 +7,7 @@ from ag_ui.core.types import RunAgentInput
from agentscope.message import Msg from agentscope.message import Msg
from openai import APIConnectionError from openai import APIConnectionError
from core.agentscope.runtime.runner import AgentScopeRunner from core.agentscope.runtime.runner import AgentScopeRunner
from core.agentscope.runtime.protocols import PipelineLike
from core.logging import get_logger from core.logging import get_logger
from schemas.agent.runtime_config import RuntimeConfig from schemas.agent.runtime_config import RuntimeConfig
from schemas.shared.user import UserContext from schemas.shared.user import UserContext
@@ -14,10 +15,6 @@ from schemas.shared.user import UserContext
logger = get_logger("core.agentscope.runtime.orchestrator") logger = get_logger("core.agentscope.runtime.orchestrator")
class PipelineLike(Protocol):
async def emit(self, *, session_id: str, event: dict[str, Any]) -> str: ...
class RunnerLike(Protocol): class RunnerLike(Protocol):
async def execute( async def execute(
self, self,
@@ -0,0 +1,7 @@
from __future__ import annotations
from typing import Any, Protocol
class PipelineLike(Protocol):
async def emit(self, *, session_id: str, event: dict[str, Any]) -> str: ...
@@ -4,7 +4,7 @@ import asyncio
import contextlib import contextlib
from dataclasses import dataclass from dataclasses import dataclass
from datetime import datetime, timezone from datetime import datetime, timezone
from typing import TYPE_CHECKING, Any, Awaitable, Callable from typing import Any, Awaitable, Callable
from ag_ui.core.types import RunAgentInput from ag_ui.core.types import RunAgentInput
from agentscope.formatter import OpenAIChatFormatter from agentscope.formatter import OpenAIChatFormatter
@@ -48,8 +48,7 @@ from services.llm_pricing.service import LlmPricingService
from sqlalchemy import select from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
if TYPE_CHECKING: from core.agentscope.runtime.protocols import PipelineLike
from core.agentscope.runtime.orchestrator import PipelineLike
@dataclass(frozen=True) @dataclass(frozen=True)
+1 -2
View File
@@ -5,7 +5,6 @@ from typing import ClassVar, Literal
from urllib.parse import quote from urllib.parse import quote
from pydantic import ( from pydantic import (
AnyHttpUrl,
BaseModel, BaseModel,
Field, Field,
SecretStr, SecretStr,
@@ -120,7 +119,7 @@ class RedisSettings(BaseModel):
class SupabaseSettings(BaseModel): class SupabaseSettings(BaseModel):
public_url: AnyHttpUrl public_url: str
anon_key: str = "CHANGE_ME" anon_key: str = "CHANGE_ME"
service_role_key: str = "CHANGE_ME" service_role_key: str = "CHANGE_ME"
jwt_secret: SecretStr | None = Field(default=None, exclude=True) jwt_secret: SecretStr | None = Field(default=None, exclude=True)
+3 -1
View File
@@ -61,7 +61,9 @@ async def _enforce_rate_limit_with_redis(
window_seconds: int, window_seconds: int,
) -> None: ) -> None:
client = await get_or_init_redis_client() client = await get_or_init_redis_client()
current = await client.eval(_REDIS_LIMIT_SCRIPT, 1, key, window_seconds) # type: ignore[await] # redis-py type stub bug: eval() declares Union[Awaitable[str], str]
# but actually always returns awaitable in async context
current = await client.eval(_REDIS_LIMIT_SCRIPT, 1, key, window_seconds) # pyright: ignore[reportGeneralTypeIssues]
if int(current) > limit: if int(current) > limit:
raise ApiProblemError( raise ApiProblemError(
status_code=429, status_code=429,
+4 -1
View File
@@ -1,8 +1,11 @@
from __future__ import annotations from __future__ import annotations
from collections.abc import Mapping
from dataclasses import dataclass from dataclasses import dataclass
from uuid import UUID from uuid import UUID
from models.profile import Profile
@dataclass @dataclass
class ContactInfo: class ContactInfo:
@@ -13,7 +16,7 @@ class ContactInfo:
async def resolve_contacts_by_user_ids( async def resolve_contacts_by_user_ids(
*, *,
user_ids: list[UUID], user_ids: list[UUID],
profiles_by_id: dict[UUID, object], profiles_by_id: Mapping[UUID, Profile],
auth_gateway: object, auth_gateway: object,
) -> dict[UUID, ContactInfo]: ) -> dict[UUID, ContactInfo]:
_ = auth_gateway _ = auth_gateway