#!/usr/bin/env python3 """ Startup script for the Aniworld FastAPI application. This script starts the application with proper logging configuration and graceful shutdown support via Ctrl+C (SIGINT) or SIGTERM. """ import uvicorn from src.infrastructure.logging.uvicorn_config import get_uvicorn_log_config if __name__ == "__main__": # Get logging configuration log_config = get_uvicorn_log_config() # Run the application with logging. # Only watch .py files in src/, explicitly exclude __pycache__. # This prevents reload loops from .pyc compilation. # # Graceful shutdown: # - Ctrl+C (SIGINT) or SIGTERM triggers graceful shutdown # - timeout_graceful_shutdown ensures shutdown completes within 30s # - The FastAPI lifespan handler orchestrates cleanup in proper order uvicorn.run( "src.server.fastapi_app:app", host="127.0.0.1", port=8000, reload=True, reload_dirs=["src"], reload_includes=["*.py"], reload_excludes=["*/__pycache__/*", "*.pyc"], log_config=log_config, timeout_graceful_shutdown=30, # Allow 30s for graceful shutdown )