from .message import message class message_builder: def __init__(self) -> None: self.__sections = dict() self.__default = dict() def __add_section(self, section: str) -> object: if not section in self.__sections.keys(): self.__sections[section] = dict() def __set_section_key(self, section: str, key: str, value: str) -> None: self.__sections[section][key] = value def __set_default_key(self, key: str, value: str) -> None: self.__default[key] = value def set_key( self, key: str, value: str, section: str | None = None ) -> object: key = key.strip() value = value.strip() if len(key) == 0: raise RuntimeError("Key name can nob being empty.") if section is None: self.__set_default_key(key, value) return self section = section.strip() if len(section) == 0: raise RuntimeError("Section name can not being empty.") self.__add_section(section) self.__set_section_key(section, key, value) return self def build(self, help_type: type | None = None) -> message: result = message(self.__default, self.__sections) if help_type is None: return result return help_type(result)