initial commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user