Files
ds_task_recycling_project/backend/main.py
T
2025-07-17 00:03:03 +01:00

80 lines
2.1 KiB
Python

import os
import sys
import logging
from pathlib import Path
from app import app
from config import Config
from training import TrainingDataManager
# Ensuring the backend directory is in the system path
backend_dir = Path(__file__).parent
sys.path.insert(0, str(backend_dir))
# Configure logging
logging.basicConfig(
level=getattr(logging, Config.LOG_LEVEL),
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def setup_environment():
"""Set up the application environment."""
try:
# Validate and create required directories
Config.validate_paths()
# Initialize training data manager
training_manager = TrainingDataManager()
# Log training data statistics
stats = training_manager.get_training_statistics()
logger.info(f"Training data loaded: {stats}")
# Validate training data
validation = training_manager.validate_training_data()
logger.info(f"Training data validation: {validation}")
return True
except Exception as e:
logger.error(f"Error setting up environment: {e}")
return False
def main():
"""Main application entry point."""
logger.info("Starting Memory Module Detection API")
# Set up environment
if not setup_environment():
logger.error("Failed to set up environment")
sys.exit(1)
# Display configuration
logger.info(f"Server configuration:")
logger.info(f" - Host: {Config.HOST}")
logger.info(f" - Port: {Config.PORT}")
logger.info(f" - Debug: {Config.DEBUG}")
logger.info(f" - Algorithm: {Config.ALGORITHM}")
logger.info(f" - Max file size: {Config.MAX_CONTENT_LENGTH} bytes")
# Start the Flask application
try:
app.run(
host=Config.HOST,
port=Config.PORT,
debug=Config.DEBUG,
threaded=True
)
except KeyboardInterrupt:
logger.info("Application stopped by user")
except Exception as e:
logger.error(f"Application error: {e}")
sys.exit(1)
if __name__ == '__main__':
main()