data / validate_app_structure.py
Tracy André
updated
588939d
raw
history blame
3.29 kB
#!/usr/bin/env python3
"""
Validation de la structure finale de l'application
"""
import os
def validate_app_structure():
"""Valide que tous les fichiers nécessaires sont présents"""
print("🔍 Validation de la structure de l'application")
print("=" * 50)
required_files = {
'app.py': 'Application Gradio principale',
'requirements.txt': 'Dépendances Python',
'README.md': 'Métadonnées HuggingFace Spaces',
'sample_data.csv': 'Données de fallback (non utilisées)'
}
optional_files = {
'DEPLOY_HF.md': 'Guide de déploiement',
'PARSING_ERROR_FIX.md': 'Documentation de la correction',
'FINAL_SUMMARY.md': 'Résumé des modifications'
}
print("📁 Fichiers requis:")
all_present = True
for filename, description in required_files.items():
if os.path.exists(filename):
size = os.path.getsize(filename)
print(f" ✅ {filename:<20} ({size:,} bytes) - {description}")
else:
print(f" ❌ {filename:<20} MANQUANT - {description}")
all_present = False
print("\n📁 Fichiers optionnels:")
for filename, description in optional_files.items():
if os.path.exists(filename):
size = os.path.getsize(filename)
print(f" ✅ {filename:<25} ({size:,} bytes) - {description}")
else:
print(f" ⚪ {filename:<25} Absent - {description}")
print("\n🔧 Validation du contenu:")
# Vérifier app.py
if os.path.exists('app.py'):
with open('app.py', 'r', encoding='utf-8') as f:
content = f.read()
checks = [
('HackathonCRA/2024', 'Dataset ID configuré'),
('load_dataset', 'Import datasets présent'),
('dtype=str', 'Chargement CSV robuste'),
('csv_files =', 'Fallback CSV direct'),
('pandas', 'Import pandas'),
('AgricultureAnalyzer', 'Classe principale')
]
for check, description in checks:
if check in content:
print(f" ✅ {description}")
else:
print(f" ⚠️ {description} - Non trouvé: '{check}'")
# Vérifier requirements.txt
if os.path.exists('requirements.txt'):
with open('requirements.txt', 'r') as f:
requirements = f.read()
deps = [
'gradio',
'datasets',
'huggingface_hub',
'pandas',
'numpy',
'plotly'
]
print(f"\n📦 Dépendances:")
for dep in deps:
if dep in requirements:
print(f" ✅ {dep}")
else:
print(f" ❌ {dep} manquant")
print(f"\n🎯 RÉSULTAT:")
if all_present:
print(" ✅ Tous les fichiers requis sont présents")
print(" ✅ Application prête pour HuggingFace Spaces")
print(" 🚀 Vous pouvez déployer maintenant !")
else:
print(" ❌ Des fichiers requis sont manquants")
print(" 🔧 Corrigez avant le déploiement")
return all_present
if __name__ == "__main__":
validate_app_structure()