from .message import message from .template import template class message_template(message): def __init__(self, target: message) -> None: super().__init__(clone_it = target) def _import_template(self, target: template) -> None: default_keys = target.default_keys for key in default_keys: name = "get_" + key setattr(self, name, self._create_getter(key)) for section in target.sections_names: for key in target.get_section_keys(section): name = "get_" + key if name in default_keys: name = "get_" + key + "_" + section setattr(self, name, self._create_getter(key, section)) def _create_getter(self, key: str, section: str | None = None) -> object: if not self.key_exists(key, section): raise RuntimeError("Message not have required key " + key + ".") return lambda: self.get_key(key, section)