Spaces:
Sleeping
Sleeping
File size: 3,289 Bytes
588939d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
#!/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()
|