Renforce les contrats : types complets et docstrings de methode protegees
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+9
-3
@@ -5,7 +5,13 @@ le noyau parle au monde extérieur. Tout ce qui dépend d'un système d'exploita
|
||||
d'une bibliothèque d'affichage ou d'un moteur de transcription vit DERRIÈRE l'un
|
||||
d'eux — jamais dans `core.py`, `controller.py` ni `audio_level.py`.
|
||||
"""
|
||||
from typing import Protocol
|
||||
from typing import IO, Protocol
|
||||
|
||||
# numpy entre dans ce fichier volontairement minuscule car c'est déjà une
|
||||
# dépendance dure du projet, et le type du signal audio fait partie du
|
||||
# contrat : un `Any` implicite laisserait passer un mauvais type sans que
|
||||
# rien ne bronche.
|
||||
import numpy as np
|
||||
|
||||
|
||||
class Transcripteur(Protocol):
|
||||
@@ -14,7 +20,7 @@ class Transcripteur(Protocol):
|
||||
def warmup(self) -> None:
|
||||
"""Charge le modèle une fois, pour que la première dictée ne traîne pas."""
|
||||
|
||||
def transcrire(self, audio) -> str:
|
||||
def transcrire(self, audio: np.ndarray) -> str:
|
||||
"""Rend le texte d'un tableau numpy float32 mono."""
|
||||
|
||||
|
||||
@@ -55,5 +61,5 @@ class Systeme(Protocol):
|
||||
def dossier_donnees(self) -> str:
|
||||
"""Dossier des données de l'application (verrou d'instance, réglages)."""
|
||||
|
||||
def acquerir_verrou_instance(self, chemin: str):
|
||||
def acquerir_verrou_instance(self, chemin: str) -> IO | None:
|
||||
"""Verrou exclusif non bloquant ; rend le fichier, ou None s'il est pris."""
|
||||
|
||||
Reference in New Issue
Block a user