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.
This commit is contained in:
122
main.py
Normal file
122
main.py
Normal file
@@ -0,0 +1,122 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user