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
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any, Protocol
|
||||
|
||||
from ...dominio import Timeline
|
||||
|
||||
|
||||
@dataclass
|
||||
class ContextoDeAnalise:
|
||||
timeline: Timeline | None = None
|
||||
dados_da_timeline: dict[str, Any] | None = None
|
||||
erros: list[str] = field(default_factory=list)
|
||||
avisos: list[str] = field(default_factory=list)
|
||||
analises_concluidas: list[str] = field(default_factory=list)
|
||||
transcricoes: dict[str, list[Any]] = field(default_factory=dict)
|
||||
caracteristicas_visuais: dict[str, dict[str, Any]] = field(default_factory=dict)
|
||||
cenas: list[Any] = field(default_factory=list)
|
||||
eventos: list[Any] = field(default_factory=list)
|
||||
|
||||
|
||||
class Analisador(Protocol):
|
||||
nome: str
|
||||
|
||||
def executar(self, contexto: ContextoDeAnalise) -> ContextoDeAnalise: ...
|
||||
|
||||
|
||||
class PipelineDoScanner:
|
||||
"""Executa análises em ordem, sem conhecer sua implementação."""
|
||||
|
||||
def __init__(self, analises: list[Analisador]) -> None:
|
||||
self.analises = analises
|
||||
|
||||
def executar(self, contexto: ContextoDeAnalise) -> ContextoDeAnalise:
|
||||
for analise in self.analises:
|
||||
contexto = analise.executar(contexto)
|
||||
contexto.analises_concluidas.append(analise.nome)
|
||||
return contexto
|
||||
|
||||
|
||||
class AnalisadorDeTimeline:
|
||||
"""Ponto de entrada da análise da timeline."""
|
||||
|
||||
def __init__(self, pipeline: PipelineDoScanner) -> None:
|
||||
self.pipeline = pipeline
|
||||
|
||||
def analisar(self) -> ContextoDeAnalise:
|
||||
return self.pipeline.executar(ContextoDeAnalise())
|
||||
Reference in New Issue
Block a user