Source code for concrete_settings.sources.strategies
"""Built-in Settings update strategies.
This module contains the basic and default update strategies used
when calling `concrete_settings.Settings.update`
"""
import abc
from typing_extensions import Protocol
[docs]class Strategy(Protocol):
[docs] @abc.abstractmethod
def __call__(self, current_value, new_value):
...
def overwrite(current_val, new_value):
return new_value
def append(current_val, new_value):
return current_val + new_value
def prepend(current_value, new_value):
return new_value + current_value
default: Strategy = overwrite