mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-09-21 20:16:18 +00:00
Move model/errors.py up one level to domain/schedule/exceptions.py, a sibling of the model, matching the AWS domain layout the spec mandates (exceptions/ is its own member of the domain folder, not part of the model) and the feedback reference implementation. Class names keep the PEP 8 Error suffix. Pure move -- the nine classes are AST-identical to the originals; imports across the domain, adapters, router, and tests now take errors from deerflow.domain.schedule.exceptions.
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
"""The known errors of the schedule context.
|
|
|
|
One family under one base class, so the primary adapter can map the whole
|
|
family onto protocol codes in a single table. Class names keep the PEP 8
|
|
``Error`` suffix; the module is named ``exceptions`` after the AWS
|
|
hexagonal guidance's domain folder of the same name.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
class ScheduleError(Exception):
|
|
"""Base error for the schedule domain."""
|
|
|
|
|
|
class InvalidScheduleError(ScheduleError):
|
|
"""Timezone, cron expression, or run_at is not usable."""
|
|
|
|
|
|
class InvalidContextModeError(ScheduleError):
|
|
"""context_mode is unknown, or reuse_thread is missing its thread_id."""
|
|
|
|
|
|
class TaskNotFoundError(ScheduleError):
|
|
"""The task does not exist or does not belong to the user."""
|
|
|
|
|
|
class TaskNotMutableError(ScheduleError):
|
|
"""The task is currently running and cannot be edited."""
|
|
|
|
|
|
class ThreadNotFoundError(ScheduleError):
|
|
"""reuse_thread points at a thread the user cannot access."""
|
|
|
|
|
|
class ActiveRunConflictError(ScheduleError):
|
|
"""The task already holds its single active run slot.
|
|
|
|
Raised by the run repository when the partial unique index
|
|
``uq_scheduled_task_run_active`` rejects a second active row. Moved here
|
|
from ``persistence/scheduled_task_runs/sql.py`` (was
|
|
``ActiveScheduledRunConflict``) so the domain owns its own vocabulary.
|
|
"""
|
|
|
|
|
|
class ThreadBusyError(ScheduleError):
|
|
"""The execution thread already has an in-flight run.
|
|
|
|
Translated by the RunLauncher adapter from ConflictError / HTTP 409.
|
|
This is what removes `from fastapi import HTTPException` from the
|
|
orchestration layer.
|
|
"""
|
|
|
|
|
|
class LaunchFailedError(ScheduleError):
|
|
"""The run could not be launched for any non-conflict reason."""
|