Source code for scripts.generate_docs

#!/usr/bin/env python3
"""
Script de génération de documentation complète.

Ce script génère automatiquement la documentation avec Sphinx et pydoc.
"""

import subprocess
import sys
from pathlib import Path


[docs] def run_command(command: str, description: str) -> bool: """ Exécute une commande et affiche le résultat. Args: command: Commande à exécuter description: Description de la commande Returns: True si la commande a réussi, False sinon """ print(f"\n🔄 {description}...") print(f"📝 Commande: {command}") try: result = subprocess.run( command, shell=True, check=True, capture_output=True, text=True ) print(f"✅ {description} - Succès") if result.stdout: print(f"📤 Sortie: {result.stdout}") return True except subprocess.CalledProcessError as e: print(f"❌ {description} - Erreur") print(f"📤 Sortie: {e.stdout}") print(f"📤 Erreur: {e.stderr}") return False
[docs] def main(): """Fonction principale.""" project_root = Path(__file__).parent.parent print("📚 Génération de la documentation Demo API") print("=" * 50) # Vérifier que nous sommes dans le bon répertoire if not (project_root / "main.py").exists(): print("❌ Erreur: Ce script doit être exécuté depuis la racine du projet") sys.exit(1) success_count = 0 total_commands = 0 # 1. Générer les modules avec le script d'auto-découverte total_commands += 1 if run_command( f"cd {project_root} && python docs/sphinx/source/generate_modules.py", "Auto-découverte des modules Sphinx", ): success_count += 1 # 2. Générer la documentation Sphinx total_commands += 1 if run_command( f"cd {project_root}/docs/sphinx && sphinx-build -b html source build", "Génération de la documentation Sphinx", ): success_count += 1 # 3. Générer la documentation pdoc3 avec index complet total_commands += 1 if run_command( f"cd {project_root} && pdoc --html -o docs/pdoc3 . --force", "Génération de la documentation pdoc3 complète", ): success_count += 1 # Résumé print("\n" + "=" * 50) print(f"📊 Résumé: {success_count}/{total_commands} commandes réussies") if success_count == total_commands: print("🎉 Toute la documentation a été générée avec succès!") print("\n📖 Documentation disponible:") print(f" • Sphinx (complexe): {project_root}/docs/sphinx/build/index.html") print(f" • pdoc3 (moderne avec index): {project_root}/docs/pdoc3/index.html") print("\n🚀 Pour développement rapide:") print(f" • Serveur pdoc3: pdoc --http :8080 .") else: print("⚠️ Certaines commandes ont échoué. Vérifiez les erreurs ci-dessus.") sys.exit(1)
if __name__ == "__main__": main()