import os import dash import dash_bootstrap_components as dbc from dataclasses import dataclass from typing import Optional @dataclass class AppConfig: APP_NAME: str = "MooreFRCollection" ROUTE_PREFIX: str = os.environ.get("EXTRAPATH", "") + "/" THEME: str = dbc.themes.BOOTSTRAP FAVICON: str = "logo.png" DEBUG: bool = True _instance: Optional[dash.Dash] = None def __post_init__(self): self._instance = dash.Dash( __name__, title=self.APP_NAME, suppress_callback_exceptions=True, external_stylesheets=[self.THEME], routes_pathname_prefix=self.ROUTE_PREFIX, ) self._instance._favicon = self.FAVICON @property def app(self) -> dash.Dash: return self._instance # Initialize config and export required variables config = AppConfig() app = config.app app_name = config.APP_NAME route_prefix = config.ROUTE_PREFIX