Python-With-Gtk-Template/src/libs/settings_manager/options/settings.py

32 lines
965 B
Python
Raw Normal View History

# Python imports
2023-08-06 01:04:22 +00:00
from dataclasses import dataclass, field
2023-07-30 05:48:27 +00:00
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:
2023-08-06 01:04:22 +00:00
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):
2023-08-06 01:04:22 +00:00
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)
2023-07-30 05:48:27 +00:00
def as_dict(self):
return asdict(self)