refactor: standardize runtime annotation types across multiple files

This commit is contained in:
Abhimanyu Saharan
2026-02-09 17:24:21 +05:30
parent 7706943209
commit f5d592f61a
47 changed files with 2203 additions and 1413 deletions

View File

@@ -2,11 +2,13 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from uuid import UUID # noqa: TCH003
from datetime import datetime
from uuid import UUID
from sqlmodel import SQLModel
RUNTIME_ANNOTATION_TYPES = (datetime, UUID)
class ActivityEventRead(SQLModel):
"""Serialized activity event payload returned by activity endpoints."""

View File

@@ -2,15 +2,16 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from datetime import datetime
from typing import Literal, Self
from uuid import UUID # noqa: TCH003
from uuid import UUID
from pydantic import model_validator
from sqlmodel import SQLModel
ApprovalStatus = Literal["pending", "approved", "rejected"]
STATUS_REQUIRED_ERROR = "status is required"
RUNTIME_ANNOTATION_TYPES = (datetime, UUID)
class ApprovalBase(SQLModel):

View File

@@ -3,10 +3,12 @@
from __future__ import annotations
from typing import Any
from uuid import UUID # noqa: TCH003
from uuid import UUID
from sqlmodel import SQLModel
RUNTIME_ANNOTATION_TYPES = (UUID,)
class BoardGroupHeartbeatApply(SQLModel):
"""Request payload for heartbeat policy updates."""

View File

@@ -2,12 +2,14 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from uuid import UUID # noqa: TCH003
from datetime import datetime
from uuid import UUID
from sqlmodel import SQLModel
from app.schemas.common import NonEmptyStr # noqa: TCH001
from app.schemas.common import NonEmptyStr
RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr)
class BoardGroupMemoryCreate(SQLModel):

View File

@@ -2,11 +2,13 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from uuid import UUID # noqa: TCH003
from datetime import datetime
from uuid import UUID
from sqlmodel import SQLModel
RUNTIME_ANNOTATION_TYPES = (datetime, UUID)
class BoardGroupBase(SQLModel):
"""Shared board-group fields for create/read operations."""

View File

@@ -2,12 +2,14 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from uuid import UUID # noqa: TCH003
from datetime import datetime
from uuid import UUID
from sqlmodel import SQLModel
from app.schemas.common import NonEmptyStr # noqa: TCH001
from app.schemas.common import NonEmptyStr
RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr)
class BoardMemoryCreate(SQLModel):

View File

@@ -2,9 +2,9 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from datetime import datetime
from typing import Self
from uuid import UUID # noqa: TCH003
from uuid import UUID
from pydantic import model_validator
from sqlmodel import SQLModel
@@ -13,6 +13,7 @@ _ERR_GOAL_FIELDS_REQUIRED = (
"Confirmed goal boards require objective and success_metrics"
)
_ERR_GATEWAY_REQUIRED = "gateway_id is required"
RUNTIME_ANNOTATION_TYPES = (datetime, UUID)
class BoardBase(SQLModel):

View File

@@ -4,7 +4,9 @@ from __future__ import annotations
from sqlmodel import SQLModel
from app.schemas.common import NonEmptyStr # noqa: TCH001
from app.schemas.common import NonEmptyStr
RUNTIME_ANNOTATION_TYPES = (NonEmptyStr,)
class GatewaySessionMessageRequest(SQLModel):

View File

@@ -3,11 +3,13 @@
from __future__ import annotations
from typing import Literal
from uuid import UUID # noqa: TCH003
from uuid import UUID
from sqlmodel import Field, SQLModel
from app.schemas.common import NonEmptyStr # noqa: TCH001
from app.schemas.common import NonEmptyStr
RUNTIME_ANNOTATION_TYPES = (UUID, NonEmptyStr)
def _lead_reply_tags() -> list[str]:

View File

@@ -2,12 +2,14 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from uuid import UUID # noqa: TCH003
from datetime import datetime
from uuid import UUID
from pydantic import field_validator
from sqlmodel import Field, SQLModel
RUNTIME_ANNOTATION_TYPES = (datetime, UUID)
class GatewayBase(SQLModel):
"""Shared gateway fields used across create/read payloads."""

View File

@@ -2,11 +2,13 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from datetime import datetime
from typing import Literal
from sqlmodel import SQLModel
RUNTIME_ANNOTATION_TYPES = (datetime,)
class DashboardSeriesPoint(SQLModel):
"""Single numeric time-series point."""

View File

@@ -2,11 +2,13 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from uuid import UUID # noqa: TCH003
from datetime import datetime
from uuid import UUID
from sqlmodel import Field, SQLModel
RUNTIME_ANNOTATION_TYPES = (datetime, UUID)
class OrganizationRead(SQLModel):
"""Organization payload returned by read endpoints."""

View File

@@ -2,17 +2,20 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from datetime import datetime
from typing import Literal, Self
from uuid import UUID # noqa: TCH003
from uuid import UUID
from pydantic import field_validator, model_validator
from sqlmodel import Field, SQLModel
from app.schemas.common import NonEmptyStr # noqa: TCH001
from app.schemas.common import NonEmptyStr
TaskStatus = Literal["inbox", "in_progress", "review", "done"]
STATUS_REQUIRED_ERROR = "status is required"
# Keep these symbols as runtime globals so Pydantic can resolve
# deferred annotations reliably.
RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr)
class TaskBase(SQLModel):

View File

@@ -2,10 +2,12 @@
from __future__ import annotations
from uuid import UUID # noqa: TCH003
from uuid import UUID
from sqlmodel import SQLModel
RUNTIME_ANNOTATION_TYPES = (UUID,)
class UserBase(SQLModel):
"""Common user profile fields shared across user payload schemas."""

View File

@@ -2,18 +2,28 @@
from __future__ import annotations
from datetime import datetime # noqa: TCH003
from uuid import UUID # noqa: TCH003
from datetime import datetime
from uuid import UUID
from sqlmodel import Field, SQLModel
from app.schemas.agents import AgentRead # noqa: TCH001
from app.schemas.approvals import ApprovalRead # noqa: TCH001
from app.schemas.board_groups import BoardGroupRead # noqa: TCH001
from app.schemas.board_memory import BoardMemoryRead # noqa: TCH001
from app.schemas.boards import BoardRead # noqa: TCH001
from app.schemas.agents import AgentRead
from app.schemas.approvals import ApprovalRead
from app.schemas.board_groups import BoardGroupRead
from app.schemas.board_memory import BoardMemoryRead
from app.schemas.boards import BoardRead
from app.schemas.tasks import TaskRead
RUNTIME_ANNOTATION_TYPES = (
datetime,
UUID,
AgentRead,
ApprovalRead,
BoardGroupRead,
BoardMemoryRead,
BoardRead,
)
class TaskCardRead(TaskRead):
"""Task read model enriched with assignee and approval counters."""