import logging import os import sys # Configure detailed logging from the very start logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", handlers=[logging.StreamHandler(sys.stdout)], ) # Set up logger for this module logger = logging.getLogger(__name__) logger.info("=" * 80) logger.info("🎬 STARTING APPLICATION BOOTSTRAP") logger.info("=" * 80) logger.info(f"📍 Current working directory: {os.getcwd()}") logger.info(f"🐍 Python path: {sys.path[0]}") logger.info(f"⚙️ Python version: {sys.version}") from src.app_factory import ( # noqa: E402 (intentional import after logging setup) create_app, ) logger.info("📦 Importing app factory...") # Create the Flask app using the factory logger.info("🏭 Creating Flask application...") # During pytest runs, avoid initializing heavy HF startup flows if os.getenv("PYTEST_RUNNING") == "1": app = create_app(initialize_vectordb=False, initialize_llm=False) else: app = create_app() logger.info("✅ Flask application created successfully") if __name__ == "__main__": logger.info("-" * 80) logger.info("🖥️ STARTING DEVELOPMENT SERVER") logger.info("-" * 80) # Enable periodic memory logging and milestone tracking os.environ["MEMORY_DEBUG"] = "1" os.environ["MEMORY_LOG_INTERVAL"] = "10" port = int(os.environ.get("PORT", 8080)) logger.info("🌐 Server configuration:") logger.info(" • Host: 0.0.0.0") logger.info(f" • Port: {port}") logger.info(" • Debug: True") logger.info(" • Memory Debug: Enabled") logger.info("🚀 Starting Flask development server...") app.run(debug=True, host="0.0.0.0", port=port)