Spaces:
Sleeping
Sleeping
| #!/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() | |