#!/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