Source code for pyzeal.settings.core_settings_service
"""
Class `CoreSettingsService` from the package `pyzeal_settings`.
This module defines a protocol for a generic settings provider pertaining to
the core features of `PyZEAL`.
Authors:\n
- Philipp Schuette\n
"""
from typing import Protocol, runtime_checkable
from pyzeal.pyzeal_types.algorithm_types import AlgorithmTypes
from pyzeal.pyzeal_types.container_types import ContainerTypes
from pyzeal.pyzeal_types.estimator_types import EstimatorTypes
[docs]
@runtime_checkable
class CoreSettingsService(Protocol):
"""
Class providing a layer of abstraction for storage and retrieval of PyZEAL
core settings. Concrete `SettingService` implementations can choose freely
their data model and persistence layer.
"""
@property
def defaultContainer(self) -> ContainerTypes:
"""
Get the default container type.
:return: Default container type
"""
...
@defaultContainer.setter
def defaultContainer(self, value: ContainerTypes) -> None:
"""
Set the default container type to `value`.
:param value: New default container type.
"""
...
@property
def defaultAlgorithm(self) -> AlgorithmTypes:
"""
Get the default algorithm type.
:return: Default algorithm type.
"""
...
@defaultAlgorithm.setter
def defaultAlgorithm(self, value: AlgorithmTypes) -> None:
"""
Set the default algorithm type to `value`.
:param value: New default algorithm type.
"""
...
@property
def defaultEstimator(self) -> EstimatorTypes:
"""
Get the default estimator type.
:return: Default estimator type.
"""
...
@defaultEstimator.setter
def defaultEstimator(self, value: EstimatorTypes) -> None:
"""
Set the default estimator type.
:param value: New default estimator type.
"""
...