2026-02-01 17:28:00 +08:00
|
|
|
|
"""
|
2026-02-02 21:16:28 +08:00
|
|
|
|
任务服务层(Phase2/Phase3)
|
2026-02-01 17:28:00 +08:00
|
|
|
|
|
2026-02-02 03:16:52 +08:00
|
|
|
|
统一任务框架相关的应用层入口:
|
2026-02-02 21:16:28 +08:00
|
|
|
|
- 候选域能力:`services.candidate.CandidateService`(resolve/record 等)
|
|
|
|
|
|
- 终态结算:`services.task.service.TaskService.finalize_video_task`
|
|
|
|
|
|
- 统一门面:`services.task.service.TaskService`
|
2026-02-01 17:28:00 +08:00
|
|
|
|
"""
|
|
|
|
|
|
|
2026-02-02 21:16:28 +08:00
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
|
|
|
|
|
|
|
|
if TYPE_CHECKING: # pragma: no cover
|
|
|
|
|
|
# NOTE: keep package import lightweight; avoid importing heavy modules on submodule imports
|
|
|
|
|
|
from .service import TaskService as TaskService
|
2026-02-01 17:28:00 +08:00
|
|
|
|
|
|
|
|
|
|
__all__ = [
|
2026-02-02 21:16:28 +08:00
|
|
|
|
"TaskService",
|
2026-02-01 17:28:00 +08:00
|
|
|
|
]
|
2026-02-02 21:16:28 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __getattr__(name: str) -> type: # pragma: no cover
|
|
|
|
|
|
if name == "TaskService":
|
|
|
|
|
|
from .service import TaskService
|
|
|
|
|
|
|
|
|
|
|
|
return TaskService
|
|
|
|
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __dir__() -> list[str]: # pragma: no cover
|
|
|
|
|
|
return sorted(__all__)
|