| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import types
- class message:
- def __init__(self, default: dict, sections: dict) -> None:
- sections_proxy = dict()
- for key, value in sections.items():
- sections_proxy[key] = types.MappingProxyType(value)
- self.__sections = types.MappingProxyType(sections_proxy)
- self.__default = types.MappingProxyType(default)
- def get_key(self, key: str, section: str | None = None) -> str:
- if section is None:
- return self.get_from_default(key)
- return self.get_from_section(section, key)
- def get_from_default(self, key: str) -> any:
- return self.__default[key]
- def get_from_section(self, section: str, key: str) -> any:
- return self.__sections[section][key]
- @property
- def default(self) -> types.MappingProxyType:
- return self.__default
- @property
- def sections(self) -> types.MappingProxyType:
- return self.__sections
- 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 nam 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) -> message:
- return message(self.__default, self.__sections)
|