|
|
| """
|
| Script to organize and archive extra files in the project root
|
| """
|
|
|
| import os
|
| import shutil
|
| from pathlib import Path
|
|
|
|
|
| ROOT = Path(".")
|
|
|
|
|
| ESSENTIAL_FILES = {
|
| "app.py",
|
| "Dockerfile",
|
| "requirements_hf.txt",
|
| "requirements.txt",
|
| "README.md",
|
| "config.py",
|
| "ai_models.py",
|
| "api_server_extended.py",
|
| "hf_unified_server.py",
|
| "docker-compose.yml",
|
| "pyproject.toml",
|
| "package.json",
|
| ".gitignore",
|
| ".dockerignore",
|
| }
|
|
|
|
|
| ARCHIVE_MAP = {
|
| "archive/html/": [
|
| "admin_advanced.html",
|
| "admin.html",
|
| "admin.html.optimized",
|
| "complete_dashboard.html",
|
| "dashboard.html",
|
| "hf_console.html",
|
| "index.html",
|
| "pool_management.html",
|
| "simple_overview.html",
|
| "unified_dashboard.html",
|
| ],
|
| "archive/docs/": [
|
| "ADMIN_DASHBOARD_COMPLETE.md",
|
| "ADMIN_ROUTING_UPDATE_FA.md",
|
| "APL_FINAL_SUMMARY.md",
|
| "APL_USAGE_GUIDE.md",
|
| "APP_DEPLOYMENT_GUIDE.md",
|
| "APP_IMPLEMENTATION_SUMMARY.md",
|
| "APP_PY_UPDATE_SUMMARY_FA.md",
|
| "AUDIT_COMPLETION_REPORT.md",
|
| "CHANGELOG.md",
|
| "CRYPTOBERT_QUICK_REFERENCE.md",
|
| "DEPENDENCY_FIX_SUMMARY.md",
|
| "DEPLOYMENT_CHECK_REPORT.md",
|
| "DEPLOYMENT_MASTER_GUIDE.md",
|
| "FINAL_SUMMARY.md",
|
| "FINAL_UI_ROUTING_REPORT.md",
|
| "FIX_SUMMARY_LOGGING_SETUP.md",
|
| "HEYSTIVE_README_FA.md",
|
| "HF_DOCKER_FIX.md",
|
| "HUGGINGFACE_API_GUIDE.md",
|
| "HUGGINGFACE_DEPLOYMENT_PROMPT.md",
|
| "HUGGINGFACE_DIAGNOSTIC_GUIDE.md",
|
| "IMPLEMENTATION_FIXES.md",
|
| "IMPLEMENTATION_SUMMARY_FA.md",
|
| "MODELS_AS_DATA_SOURCES.md",
|
| "PROFESSIONAL_DASHBOARD_GUIDE.md",
|
| "PROVIDER_AUTO_DISCOVERY_REPORT.md",
|
| "PROVIDERS_CONFIG_UPDATE_FA.md",
|
| "QUICK_REFERENCE_GUIDE.md",
|
| "QUICK_START.md",
|
| "QUICK_START_ADMIN.md",
|
| "QUICK_START_ADVANCED_UI.md",
|
| "QUICK_START_PROFESSIONAL.md",
|
| "QUICK_TEST_GUIDE.md",
|
| "README_HF_INTEGRATION.md",
|
| "README_HUGGINGFACE_API.md",
|
| "ROUTING_CONNECTION_SUMMARY_FA.md",
|
| "UI_ROUTING_SUMMARY_FA.md",
|
| ],
|
| "archive/scripts/": [
|
| "diagnostic.sh",
|
| "test.sh",
|
| "TEST_COMMANDS.sh",
|
| "TEST_ENDPOINTS.sh",
|
| "verify_deployment.sh",
|
| "start_crypto_bank.sh",
|
| "api-monitor.js",
|
| "failover-manager.js",
|
| ],
|
| "archive/servers/": [
|
| "app_gradio.py",
|
| "api_dashboard_backend.py",
|
| "api_loader.py",
|
| "enhanced_server.py",
|
| "gradio_ultimate_dashboard.py",
|
| "production_server.py",
|
| "real_server.py",
|
| "simple_server.py",
|
| ],
|
| "archive/reports/": [
|
| "PROVIDER_AUTO_DISCOVERY_REPORT.json",
|
| "providers_config_extended.backup.json",
|
| "DASHBOARD_READY.txt",
|
| "START.txt",
|
| "VIEW_IMPROVED_DASHBOARD.txt",
|
| ],
|
| "archive/": [
|
| "Dockerfile.zip",
|
| "requirements_gradio.txt",
|
| "collectors.py",
|
| "database.py",
|
| "monitor.py",
|
| "scheduler.py",
|
| "log_manager.py",
|
| "auto_provider_loader.py",
|
| "provider_fetch_helper.py",
|
| "provider_manager.py",
|
| "provider_validator.py",
|
| "import_resources.py",
|
| "test_aggregator.py",
|
| "test_crypto_bank.py",
|
| "test_integration.py",
|
| "test_providers_real.py",
|
| "test_routing.py",
|
| "verify_implementation.py",
|
| "all_apis_merged_2025.json",
|
| "ultimate_crypto_pipeline_2025_NZasinich.json",
|
| ],
|
| }
|
|
|
| def main():
|
| """Main function to organize files"""
|
| moved_count = 0
|
| skipped_count = 0
|
|
|
| print("🚀 Starting file organization...")
|
| print(f"📁 Root directory: {ROOT.absolute()}\n")
|
|
|
|
|
| for archive_dir in ARCHIVE_MAP.keys():
|
| archive_path = ROOT / archive_dir
|
| archive_path.mkdir(parents=True, exist_ok=True)
|
| print(f"✅ Created directory: {archive_dir}")
|
|
|
|
|
| for archive_dir, files in ARCHIVE_MAP.items():
|
| archive_path = ROOT / archive_dir
|
|
|
| for filename in files:
|
| source = ROOT / filename
|
|
|
| if not source.exists():
|
| print(f"⚠️ File not found: {filename}")
|
| skipped_count += 1
|
| continue
|
|
|
|
|
| if filename in ESSENTIAL_FILES:
|
| print(f"⏭️ Skipping essential file: {filename}")
|
| skipped_count += 1
|
| continue
|
|
|
| dest = archive_path / filename
|
|
|
| try:
|
|
|
| dest.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
|
| shutil.move(str(source), str(dest))
|
| print(f"✅ Moved: {filename} → {archive_dir}")
|
| moved_count += 1
|
| except Exception as e:
|
| print(f"❌ Error moving {filename}: {e}")
|
| skipped_count += 1
|
|
|
| print(f"\n📊 Summary:")
|
| print(f" ✅ Files moved: {moved_count}")
|
| print(f" ⏭️ Files skipped: {skipped_count}")
|
| print(f"\n✨ File organization complete!")
|
|
|
| if __name__ == "__main__":
|
| main()
|
|
|
|
|