32 lines
965 B
Python
32 lines
965 B
Python
# Python imports
|
|
from dataclasses import dataclass, field
|
|
from dataclasses import asdict
|
|
|
|
# Gtk imports
|
|
|
|
# Application imports
|
|
from .config import Config
|
|
from .filters import Filters
|
|
from .theming import Theming
|
|
from .debugging import Debugging
|
|
|
|
|
|
@dataclass
|
|
class Settings:
|
|
load_defaults: bool = True
|
|
config: Config = field(default_factory=lambda: Config())
|
|
filters: Filters = field(default_factory=lambda: Filters())
|
|
theming: Theming = field(default_factory=lambda: Theming())
|
|
debugging: Debugging = field(default_factory=lambda: Debugging())
|
|
|
|
def __post_init__(self):
|
|
if not self.load_defaults:
|
|
self.load_defaults = False
|
|
self.config = Config(**self.config)
|
|
self.filters = Filters(**self.filters)
|
|
self.theming = Theming(**self.theming)
|
|
self.debugging = Debugging(**self.debugging)
|
|
|
|
def as_dict(self):
|
|
return asdict(self)
|