Source code for pyzeal.settings.settings_service
"""
Class `SettingsService` from the package `pyzeal_settings`.
This module defines a protocol for a generic settings provider.
Authors:\n
- Philipp Schuette\n
"""
from typing import Protocol, Tuple, runtime_checkable
from pyzeal.pyzeal_logging.log_levels import LogLevel
from pyzeal.settings.core_settings_service import CoreSettingsService
[docs]
@runtime_checkable
class SettingsService(CoreSettingsService, Protocol):
"""
Class providing a layer of abstraction for storage and retrieval of PyZEAL
related settings. Concrete `SettingService` implementations can choose
freely their data model and persistence layer.
"""
@property
def logLevel(self) -> LogLevel:
"""
Get the current LogLevel setting.
:return: Current LogLevel
"""
...
@logLevel.setter
def logLevel(self, value: LogLevel) -> None:
"""
Set the LogLevel to `value`.
:param value: New LogLevel to use
"""
...
@property
def verbose(self) -> bool:
"""
Get current verbosity setting.
:return: True if verbose mode is enabled.
"""
...
@verbose.setter
def verbose(self, value: bool) -> None:
"""
Set the default verbosity setting.
:param value: New verbosity setting
"""
...
@property
def precision(self) -> Tuple[int, int]:
"""
Get current precision level as a negative exponent, i.e. a precision
of 10^(-3), in real and imaginary parts respectively, corresponds
to a precision level of (3, 3).
:return: Current precision level
"""
...
@precision.setter
def precision(self, value: Tuple[int, int]) -> None:
"""
Set the default precision level to `value`.
:param value: New precision level
"""
...