- Adicionado estrutura completa do projeto - Configurado MCP server para Premiere Pro - Adicionado documentação e skills - Configurado Gitignore para o projeto
57 lines
1.2 KiB
Python
57 lines
1.2 KiB
Python
from dataclasses import dataclass, field
|
|
from enum import Enum
|
|
from typing import Any
|
|
|
|
|
|
class StatusDaAnalise(str, Enum):
|
|
CONCLUIDA = "concluida"
|
|
CONCLUIDA_COM_AVISOS = "concluida_com_avisos"
|
|
FALHOU = "falhou"
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class ErroDeAnalise(Exception):
|
|
codigo: str
|
|
mensagem: str
|
|
caminho: str | None = None
|
|
detalhes: dict[str, Any] = field(default_factory=dict)
|
|
|
|
def __post_init__(self) -> None:
|
|
Exception.__init__(self, self.mensagem)
|
|
|
|
|
|
@dataclass
|
|
class ResultadoDaAnalise:
|
|
status: StatusDaAnalise
|
|
timeline: Any = None
|
|
erros: list[ErroDeAnalise] = field(default_factory=list)
|
|
avisos: list[str] = field(default_factory=list)
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class SegmentoDeTranscricao:
|
|
inicio: float
|
|
fim: float
|
|
texto: str
|
|
confianca: float | None = None
|
|
|
|
def __post_init__(self) -> None:
|
|
if self.inicio < 0 or self.fim < self.inicio:
|
|
raise ValueError("Intervalo de transcrição inválido.")
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class Cena:
|
|
inicio: float
|
|
fim: float
|
|
confianca: float | None = None
|
|
referencias: tuple[float, ...] = ()
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class Evento:
|
|
tipo: str
|
|
inicio: float
|
|
fim: float
|
|
confianca: float | None = None
|