""" Test script to verify all required imports work correctly. Run this after installing requirements.txt to ensure the environment is set up properly. """ import sys import logging logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s') logger = logging.getLogger(__name__) def test_import(module_name: str, package_name: str = None): """Test importing a module and report success/failure.""" try: if package_name: __import__(package_name) logger.info(f"✅ {module_name} ({package_name})") else: __import__(module_name) logger.info(f"✅ {module_name}") return True except ImportError as e: logger.error(f"❌ {module_name}: {e}") return False except Exception as e: logger.error(f"❌ {module_name}: Unexpected error - {e}") return False def main(): """Test all required imports.""" logger.info("Testing required imports...\n") results = [] # Core ML logger.info("=== Core ML Libraries ===") results.append(test_import("torch", "torch")) results.append(test_import("transformers", "transformers")) results.append(test_import("numpy", "numpy")) # Audio Processing logger.info("\n=== Audio Processing Libraries ===") results.append(test_import("librosa", "librosa")) results.append(test_import("soundfile", "soundfile")) results.append(test_import("webrtcvad", "webrtcvad")) results.append(test_import("scipy", "scipy")) # API & Web logger.info("\n=== API & Web Libraries ===") results.append(test_import("fastapi", "fastapi")) results.append(test_import("uvicorn", "uvicorn")) results.append(test_import("websockets", "websockets")) results.append(test_import("pydantic", "pydantic")) # Web UI logger.info("\n=== Web UI Libraries ===") results.append(test_import("gradio", "gradio")) # Logging logger.info("\n=== Logging Libraries ===") results.append(test_import("pythonjsonlogger", "python_json_logger")) # Config module logger.info("\n=== Project Modules ===") results.append(test_import("config", "config")) # Summary logger.info("\n" + "="*50) passed = sum(results) total = len(results) logger.info(f"Results: {passed}/{total} imports successful") if passed == total: logger.info("🎉 All imports successful!") return 0 else: logger.error(f"⚠️ {total - passed} import(s) failed. Please install missing packages.") return 1 if __name__ == "__main__": sys.exit(main())