fix(models): 全面替換 datetime.UTC → timezone.utc 相容 Python 3.10
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Type Sync Check / check-type-sync (push) Successful in 59s

terminal.py, incident.py, utils/timezone.py 同樣問題。
CI runner Python 3.10 無 UTC 常數,導致所有模型靜默 import 失敗。

# 2026-04-06 ogt: 完整修復,不再有漏網之魚

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-06 12:40:27 +08:00
parent 59c3dfb910
commit cd37befbe6
3 changed files with 9 additions and 9 deletions

View File

@@ -20,7 +20,7 @@ C-Suite 戰略會議決議 (2026-03-22):
- Semantic Memory (Vector DB): 向量化後的知識,供 RAG 檢索
"""
from datetime import UTC, datetime
from datetime import datetime, timezone
from enum import Enum
from typing import Literal
from uuid import UUID, uuid4
@@ -338,7 +338,7 @@ class Incident(BaseModel):
# === 識別 ===
incident_id: str = Field(
default_factory=lambda: f"INC-{datetime.now(UTC).strftime('%Y%m%d')}-{str(uuid4())[:6].upper()}",
default_factory=lambda: f"INC-{datetime.now(timezone.utc).strftime('%Y%m%d')}-{str(uuid4())[:6].upper()}",
description="事件唯一識別碼 (如 INC-20260322-A1B2C3)",
)
@@ -387,11 +387,11 @@ class Incident(BaseModel):
# === 時間軸 ===
created_at: datetime = Field(
default_factory=lambda: datetime.now(UTC),
default_factory=lambda: datetime.now(timezone.utc),
description="事件建立時間",
)
updated_at: datetime = Field(
default_factory=lambda: datetime.now(UTC),
default_factory=lambda: datetime.now(timezone.utc),
description="最後更新時間",
)
resolved_at: datetime | None = Field(

View File

@@ -11,7 +11,7 @@ Pydantic models for Terminal SSE communication.
@date 2026-03-28 (台北時間)
"""
from datetime import UTC, datetime
from datetime import datetime, timezone
from enum import Enum
from typing import Any
@@ -110,7 +110,7 @@ class TerminalIntentResponse(BaseModel):
description="SSE 串流訂閱 URL",
)
created_at: datetime = Field(
default_factory=lambda: datetime.now(UTC),
default_factory=lambda: datetime.now(timezone.utc),
)
@@ -248,7 +248,7 @@ class TerminalSession(BaseModel):
intent: str
context: SpatialContext
status: TerminalSessionStatus = TerminalSessionStatus.PENDING
created_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
last_event_id: int = 0
message_count: int = 0

View File

@@ -6,7 +6,7 @@ AWOOOI - 時區工具
🔴 HARD RULE: 全系統使用台北時區,禁止 UTC
"""
from datetime import UTC, datetime, timedelta, timezone
from datetime import datetime, timedelta, timezone
# 台北時區 (UTC+8)
TAIPEI_TZ = timezone(timedelta(hours=8))
@@ -38,7 +38,7 @@ def to_taipei(dt: datetime) -> datetime:
"""
if dt.tzinfo is None:
# naive datetime假設是 UTC
dt = dt.replace(tzinfo=UTC)
dt = dt.replace(tzinfo=timezone.utc)
return dt.astimezone(TAIPEI_TZ)