Spaces:
Running
Running
| from enum import Enum | |
| from pydantic import BaseModel, Field | |
| class JobState(str, Enum): | |
| pending = "pending" | |
| processing = "processing" | |
| done = "done" | |
| error = "error" | |
| class JobStatus(BaseModel): | |
| job_id: str | |
| state: JobState | |
| progress: int = Field(default=0, ge=0, le=100) | |
| error: str | None = None | |
| stems: dict[str, str] | None = None | |
| original_filename: str | None = None | |
| # Analysis metadata for creators. | |
| bpm: float | None = Field(default=None, ge=30, le=260) | |
| bpm_confidence: float | None = Field(default=None, ge=0, le=1) | |
| musical_key: str | None = None | |
| key_scale: str | None = None | |
| key_confidence: float | None = Field(default=None, ge=0, le=1) | |
| # Rhythm / tala metadata. | |
| tala: str | None = None | |
| time_signature: str | None = None | |
| class DownloadRecord(BaseModel): | |
| job_id: str | |
| original_filename: str | |
| stem: str | |
| timestamp: str | |
| class UploadResponse(BaseModel): | |
| job_id: str | |
| class YoutubeJobRequest(BaseModel): | |
| url: str | |
| class YoutubeJobStatus(BaseModel): | |
| id: str | |
| status: str | |
| error: str | None = None | |
| slug: str | None = None | |