Mission : ouvrir un outil de reporting aux plugins d'équipes externes
Construire un système de découverte automatique de plugins d'export sans modifier le code central, et sécuriser le chargement dynamique avec un Protocol.
Contexte
Un outil de reporting interne doit permettre à différentes équipes d'ajouter leurs propres formats d'export (CSV, JSON, Excel, Slack) sans jamais toucher au fichier principal de l'application. Chaque équipe dépose son module d'export dans un dossier plugins/ dédié, mais actuellement, ajouter un nouveau format oblige encore à modifier une longue chaîne if nom_format == "csv": ... elif nom_format == "json": ... dans le cœur de l'application.
Tu dois remplacer cette chaîne de conditions par un système de découverte automatique, puis protéger l'application contre un plugin mal formé grâce à un Protocol.