Convert all Chinese comments, docstrings, logger/print output, HTTPException detail messages, and API response messages to English across the entire codebase. Functional zh/ja localized strings (e.g. prompt templates, timezone display names, date formats) are preserved as-is. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
34 lines
999 B
Python
34 lines
999 B
Python
import asyncio
|
|
import logging
|
|
from typing import Dict
|
|
|
|
logger = logging.getLogger('app')
|
|
|
|
# Global cancel registry: session_id -> asyncio.Event
|
|
_cancel_registry: Dict[str, asyncio.Event] = {}
|
|
|
|
|
|
def register_cancel_event(session_id: str) -> asyncio.Event:
|
|
"""Register a cancel event."""
|
|
event = asyncio.Event()
|
|
_cancel_registry[session_id] = event
|
|
logger.debug(f"Cancel event registered for session_id={session_id}")
|
|
return event
|
|
|
|
|
|
def trigger_cancel(session_id: str) -> bool:
|
|
"""Trigger a cancel event."""
|
|
event = _cancel_registry.get(session_id)
|
|
if event:
|
|
event.set()
|
|
logger.info(f"Cancel triggered for session_id={session_id}")
|
|
return True
|
|
logger.warning(f"No active session found for session_id={session_id}")
|
|
return False
|
|
|
|
|
|
def unregister_cancel_event(session_id: str) -> None:
|
|
"""Clean up a cancel event."""
|
|
_cancel_registry.pop(session_id, None)
|
|
logger.debug(f"Cancel event unregistered for session_id={session_id}")
|