Spaces:
Running
Running
| from __future__ import annotations | |
| from enum import Enum | |
| from pathlib import Path | |
| from typing import Any | |
| from pydantic import BaseModel, ConfigDict, Field | |
| class MediaSource(str, Enum): | |
| MULTIPART = "multipart" | |
| JSON_URL = "json_url" | |
| JSON_BASE64 = "json_base64" | |
| N8N_BINARY = "n8n_binary" | |
| OCTET_STREAM = "octet_stream" | |
| YTDLP = "yt_dlp" | |
| LOCAL_PATH = "local_path" | |
| class InputMedia(BaseModel): | |
| """Source-agnostic media passed to all processing operations.""" | |
| model_config = ConfigDict(arbitrary_types_allowed=True) | |
| source: MediaSource | |
| filename: str | |
| mime_type: str | |
| temp_path: Path | |
| size: int = Field(ge=0) | |
| duration: float | None = None | |
| metadata: dict[str, Any] = Field(default_factory=dict) | |
| class ResolvedRequest(BaseModel): | |
| model_config = ConfigDict(arbitrary_types_allowed=True) | |
| request_id: str | |
| inputs: list[InputMedia] | |
| params: dict[str, Any] = Field(default_factory=dict) | |
| def primary(self) -> InputMedia: | |
| return self.inputs[0] | |
| class OperationResult(BaseModel): | |
| model_config = ConfigDict(arbitrary_types_allowed=True) | |
| path: Path | None = None | |
| filename: str | None = None | |
| mime_type: str | None = None | |
| metadata: dict[str, Any] = Field(default_factory=dict) | |