zlaqa-version-c-ai-enginee / test_imports.py
anfastech's picture
Feat: project structure and configuration
79f7931
"""
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())