Spaces:
Sleeping
Sleeping
| 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) | |