"""Entry point for the YouTube Trends Analysis Dashboard.""" from __future__ import annotations import logging import os try: from dotenv import load_dotenv # type: ignore[import-not-found] except ImportError: # pragma: no cover - optional dependency for convenience load_dotenv = None from youtube_trends_dashboard import ui LOGGER = logging.getLogger(__name__) def configure_logging() -> None: """Set up a basic logging configuration for the application.""" logging.basicConfig( level=os.getenv("YTD_LOG_LEVEL", "INFO"), format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) def main() -> None: """Load environment, configure logging, and launch the Gradio app.""" if load_dotenv: load_dotenv() LOGGER.debug("Loaded environment variables from .env") configure_logging() demo = ui.create_interface() server_name = os.getenv("HOST", "127.0.0.1") server_port = int(os.getenv("PORT", "7860")) demo.launch(server_name=server_name, server_port=server_port, share=os.getenv("SHARE", "false").lower() == "true") if __name__ == "__main__": main()