""" Modelos internos para representar análises de músicas instrumentais. Este módulo define somente os dados produzidos pela análise. Ele não importa Essentia, não lê arquivos e não transforma o resultado em texto para a interface. """ from dataclasses import dataclass, field from pathlib import Path @dataclass(frozen=True) class ResultadoDaAnaliseMusical: """ Representa os descritores calculados para uma música instrumental. A classe mantém valores objetivos, como BPM e tonalidade, além das classificações fornecidas pelos modelos disponíveis. Ela não afirma uma interpretação definitiva da intenção artística da música. """ caminho_do_arquivo: Path duracao_em_segundos: float | None = None batidas_por_minuto: float | None = None tonalidade: str | None = None modo: str | None = None intensidade: float | None = None dancabilidade: float | None = None generos: tuple[str, ...] = field(default_factory=tuple) humores: tuple[str, ...] = field(default_factory=tuple) instrumentos: tuple[str, ...] = field(default_factory=tuple) etiquetas: tuple[str, ...] = field(default_factory=tuple) provedor: str = "Essentia" modelo: str | None = None