import os
""" Leitura, escrita e formatação de tempos do placar """
def ler_tempos(caminho: str) -> list[tuple[int, str]]:
    if not os.path.exists(caminho):
        return []
    resultados: list[tuple[int, str]] = []
    try:
        with open(caminho, "r", encoding="utf-8") as f:
            for linha in f:
                partes = linha.strip().split(";")
                if len(partes) == 2:
                    try:
                        ms = int(partes[0])
                        nome = partes[1]
                        resultados.append((ms, nome))
                    except ValueError:
                        pass
    except OSError:
        return []
    return resultados

def salvar_tempo(caminho: str, ms: int, nome: str) -> None:
    try:
        with open(caminho, "a", encoding="utf-8") as f:
            f.write(f"{ms};{nome}\n")
    except OSError:
        pass

def top5(registros: list[tuple[int, str]]) -> list[tuple[int, str]]:
    return sorted(registros, key=lambda x: x[0])[:5]

def formatar_ms(ms: int) -> str:
    s = ms // 1000
    ms_rem = ms % 1000
    return f"{s}.{ms_rem:03d}s"
