Files
LettresJulesBerton/main.py
MrRaph_ 3af796f9c4 feat: Add main analysis script and Excel metadata reader
- Implemented main.py to orchestrate the analysis of Jules Berton's letters collection.
- Added read_excel_metadata.py to read and analyze the Excel file containing letter metadata.
- Included functions for reading Excel files, analyzing structure, extracting letter information, and saving data to JSON.
- Added error handling and user feedback for file operations and analysis steps.
- Provided a summary of the analysis results and instructions for further usage.
2025-09-04 08:54:05 +02:00

123 lines
3.9 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Script principal pour analyser la collection des lettres de Jules Berton.
Ce script orchestre l'ensemble du processus d'analyse et de génération de documentation.
Auteur: Assistant IA
Date: Septembre 2025
"""
import subprocess
import sys
from pathlib import Path
def run_script(script_name, description):
"""
Exécute un script Python et affiche les résultats.
Args:
script_name (str): Nom du script à exécuter
description (str): Description de l'action
"""
print(f"\n🔄 {description}")
print("=" * 60)
try:
# Utiliser l'interpréteur Python de l'environnement virtuel
python_path = Path(__file__).parent / ".venv" / "bin" / "python"
script_path = Path(__file__).parent / script_name
result = subprocess.run(
[str(python_path), str(script_path)],
capture_output=True,
text=True,
cwd=Path(__file__).parent
)
if result.returncode == 0:
print(result.stdout)
print(f"{description} terminé avec succès")
else:
print(f"❌ Erreur lors de l'exécution:")
print(result.stderr)
return False
except Exception as e:
print(f"❌ Erreur: {e}")
return False
return True
def main():
"""Fonction principale qui orchestre l'analyse complète."""
print("📚 ANALYSE COMPLÈTE DE LA COLLECTION JULES BERTON")
print("=" * 70)
print("Ce script va analyser le fichier Excel et générer une documentation complète.")
print()
base_path = Path(__file__).parent
excel_file = base_path / "Jules Berton - lettres, dates et lieux.xlsx"
# Vérifier la présence du fichier Excel
if not excel_file.exists():
print(f"❌ Le fichier Excel '{excel_file.name}' n'a pas été trouvé.")
print(f" Assurez-vous qu'il soit présent dans le répertoire: {base_path}")
return
print(f"✓ Fichier Excel trouvé: {excel_file.name}")
# Étape 1: Lecture des métadonnées Excel
success = run_script(
"read_excel_metadata.py",
"ÉTAPE 1: Lecture et analyse du fichier Excel"
)
if not success:
print("❌ Impossible de continuer sans les métadonnées Excel.")
return
# Étape 2: Génération du README
success = run_script(
"generate_readme.py",
"ÉTAPE 2: Génération du README.md avec métadonnées complètes"
)
if not success:
print("⚠️ Le README n'a pas pu être généré, mais les métadonnées sont disponibles.")
# Résumé final
print("\n📋 RÉSUMÉ DE L'ANALYSE")
print("=" * 50)
# Vérifier les fichiers générés
json_file = base_path / "lettres_metadata.json"
readme_file = base_path / "README.md"
if json_file.exists():
print(f"✅ Métadonnées JSON: {json_file.name}")
else:
print(f"❌ Métadonnées JSON: Non trouvé")
if readme_file.exists():
print(f"✅ Documentation: {readme_file.name}")
else:
print(f"❌ Documentation: Non trouvé")
print("\n🔧 FICHIERS UTILITAIRES DISPONIBLES:")
print("- read_excel_metadata.py : Analyse le fichier Excel")
print("- generate_readme.py : Génère le README.md")
print("- lettres_metadata.json : Métadonnées au format JSON")
print("\n📖 UTILISATION:")
print("1. Pour re-analyser le fichier Excel:")
print(" python read_excel_metadata.py")
print("\n2. Pour régénérer le README:")
print(" python generate_readme.py")
print("\n3. Pour une analyse complète:")
print(" python main.py")
print(f"\n✨ Analyse terminée! Consultez le fichier README.md pour la documentation complète.")
if __name__ == "__main__":
main()