AnPv2/Python/Managers/SettingsManager.py

36 lines
1.2 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from typing import Any, Self, Sequence, Optional
from Interfaces.Application.AnPInterface import AnPInterface
from Utils.Utils import Utils
from Utils.Options import Options
class SettingsManager:
DEFAUTL_SETTINGS:dict[str, Any|None] = {}
GET_OPTIONS:Options = Options(Options.ALLOW_NULLS)
ADD_OPTIONS:Options = Options(Options.NO_OVERWRITE)
def __init__(self:Self,
anp:AnPInterface,
inputs:Optional[dict[str, Any|None]|Sequence[Any|None]] = None
) -> None:
self.anp:AnPInterface = anp
self.__inputs:dict[str, Any|None] = Utils.get_dictionary(inputs, Options.OVERWRITE)
self.__secrets:dict[str, Any|None] = {}
def get(self:Self,
keys:str|Sequence[str],
inputs:Optional[dict[str, Any|None]|Sequence[Any|None]] = None,
default:Any|None = None,
custom_options:int = 0
) -> Any|None:
return Utils.get_value(keys, (
inputs, self.__inputs, self.__secrets, self.DEFAUTL_SETTINGS
), default, Options(custom_options, self.GET_OPTIONS).get())
def add(self:Self, inputs:Any|None, custom_options:int = 0) -> None:
pass