Diagnostiquer le module Audio¶
Objectif : exposer le diagnostic non invasif de Forge Audio en JSON, à partir
des contrôles de forge audio:doctor.
Ce que vous allez apprendre : Forge Audio fournit forge audio:doctor ; ce
palier en expose le sous-ensemble non invasif : paquet importable, configuration
chargeable, présence de ffprobe/ffmpeg, routes enregistrables.
Troisième palier du niveau avancé de la progression audio.
Module opt-in
Ce starter suppose forge-mvc-audio installé (palier « Installation »).
Ce que ce starter montre¶
- l'appel des contrôles
check_*deforge_mvc_audio.cli.doctor; - leur sérialisation JSON (
status,name,detail) ; - un diagnostic sans effet de bord (ni fichier, ni réseau, ni base).
Classes Forge utilisées¶
| Classe / fonction | Rôle dans ce starter | Référence |
|---|---|---|
forge_mvc_audio.cli.doctor.check_* |
Contrôles : paquet, config, ffprobe, ffmpeg, routes. |
Audio |
Tester¶
Ouvrez https://localhost:8000/audio-doctor : la page renvoie le statut de chaque
contrôle en JSON. La présence de ffprobe/ffmpeg y apparaît.
Le contrôleur¶
# mvc/controllers/audio_doctor_controller.py
from forge_mvc_audio.cli.doctor import (
check_config_loadable, check_ffmpeg_present, check_ffprobe_present,
check_package_importable, check_routes_registrable,
)
_SAFE_CHECKS = (
check_package_importable, check_config_loadable,
check_ffprobe_present, check_ffmpeg_present, check_routes_registrable,
)
class AudioDoctorController(BaseController):
@staticmethod
def index(request: Request) -> Response:
checks = []
for check in _SAFE_CHECKS:
result = check()
checks.append({"status": result.status, "name": result.name, "detail": result.detail})
return Response.json({"checks": checks})
Comprendre ce code¶
- Chaque
check_*()renvoie unCheckResult(status, name, detail): on les sérialise tels quels. - Tous les contrôles retenus sont sûrs : aucun ne touche un fichier, le réseau ou une base. Un diagnostic ne doit jamais avoir d'effet de bord.
- La commande
forge audio:doctorreste le diagnostic complet en ligne de commande.
À retenir¶
- Un module exploitable se diagnostique : paquet, config, binaires, routes.
forge audio:doctoren CLI ; ce starter l'expose en HTTP/JSON.- Un diagnostic est non invasif par principe.
Après ce starter¶
Vous avez parcouru toute la progression audio : découvrir, ingérer, lire, sonder, transcoder, diagnostiquer.