File size: 946 Bytes
8086e8b
 
 
00c3a04
 
8086e8b
 
00c3a04
 
 
 
 
 
 
 
8086e8b
00c3a04
 
 
 
 
 
 
 
 
8b6152a
00c3a04
 
 
 
 
 
 
 
 
1948f92
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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