Spaces:
Sleeping
Sleeping
File size: 1,643 Bytes
9bed109 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | from __future__ import annotations
from datetime import datetime
from typing import Any, Literal
from uuid import UUID
from pydantic import BaseModel, ConfigDict, Field, HttpUrl
from shared.schemas.render_job import RenderQuality
class RenderEnqueueBody(BaseModel):
model_config = ConfigDict(extra="forbid")
render_type: Literal["preview", "full"] = "preview"
quality: RenderQuality = "720p"
webhook_url: HttpUrl | None = None
scene_id: UUID | None = Field(
default=None,
description="When set, worker renders `manim_code` from this scene (class GeneratedScene).",
)
class RenderEnqueueResponse(BaseModel):
model_config = ConfigDict(extra="forbid")
job_id: UUID
status: Literal["queued"] = "queued"
class RenderJobStatusResponse(BaseModel):
"""`RenderJob` fields exposed by `GET /v1/jobs/{job_id}`."""
model_config = ConfigDict(extra="forbid")
id: UUID
project_id: UUID
scene_id: UUID | None = Field(
default=None,
description="Source scene when render was enqueued with scene_id.",
)
job_type: Literal["preview", "full"]
render_quality: RenderQuality | None = None
status: Literal["queued", "rendering", "completed", "failed", "cancelled"]
progress: int = Field(default=0, ge=0, le=100)
logs: str | None = None
asset_url: str | None = None
error_code: str | None = None
webhook_url: str | None = None
docker_image_tag: str | None = None
created_at: datetime
started_at: datetime | None = None
completed_at: datetime | None = None
metadata: dict[str, Any] = Field(default_factory=dict)
|