22 lines
685 B
Python
22 lines
685 B
Python
"""Bounded inputs for durable computation control."""
|
|
from typing import Literal
|
|
from uuid import UUID
|
|
from pydantic import Field
|
|
from app.mcp.models import StrictInput, PageInput, Id
|
|
|
|
CalculationStatus = Literal["queued", "running", "cancel_requested", "succeeded", "failed", "cancelled", "interrupted", "timed_out"]
|
|
|
|
|
|
class CalculationJobInput(StrictInput):
|
|
job_id: UUID
|
|
|
|
|
|
class CalculationResultInput(CalculationJobInput):
|
|
data_path: list[Id] = Field(default_factory=list, max_length=8)
|
|
limit: int = Field(default=20, ge=1, le=500)
|
|
offset: int = Field(default=0, ge=0, le=1000000)
|
|
|
|
|
|
class CalculationJobsInput(PageInput):
|
|
status: CalculationStatus | None = None
|