Files
João Henrique b541f502ba feat: initial commit - Jhonny Editor
- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto
2026-09-08 09:59:31 -04:00

58 lines
1.3 KiB
Python

from dataclasses import dataclass, field
from typing import Any
@dataclass(frozen=True)
class IntervaloDeTempo:
inicio: float
fim: float
def __post_init__(self) -> None:
if self.inicio < 0 or self.fim < self.inicio:
raise ValueError("Intervalo de tempo inválido.")
@property
def duracao(self) -> float:
return self.fim - self.inicio
@dataclass
class Clipe:
identificador: str
nome: str
intervalo_na_timeline: IntervaloDeTempo
intervalo_na_origem: IntervaloDeTempo | None = None
arquivo: str | None = None
identificador_da_faixa: str | None = None
offline: bool = False
metadados: dict[str, Any] = field(default_factory=dict)
@dataclass
class Faixa:
identificador: str
nome: str
tipo: str
indice: int
clipes: list[Clipe] = field(default_factory=list)
@dataclass
class Timeline:
identificador: str
nome: str
duracao: float | None = None
taxa_de_quadros: float | None = None
largura: int | None = None
altura: int | None = None
faixas: list[Faixa] = field(default_factory=list)
metadados: dict[str, Any] = field(default_factory=dict)
@dataclass
class Projeto:
identificador: str
nome: str
caminho: str | None = None
sequencias: list[Any] = field(default_factory=list)