work in progress on MarkdownTemplate interface

This commit is contained in:
2026-10-06 16:34:54 +02:00
parent 8d8acd052e
commit 7f37cebc40
9 changed files with 170 additions and 13 deletions

View File

@ -29,6 +29,8 @@ from .validation import (
ValidAddressList,
)
InvalidAddress = InvalidAddressError
logger = logging.getLogger(__name__)
@ -72,6 +74,44 @@ class MarkdownTemplate:
self.raw_content = self.load_raw_template(template_name)
self.metadata, self.md_body = self.parse_template(self.raw_content)
self.validate()
self._from_email = self._init_from_email()
self._to = self._init_address_list("to")
self._cc = self._init_address_list("cc")
self._bcc = self._init_address_list("bcc")
self._reply_to = self._init_address_list("reply_to")
def _init_from_email(self) -> ValidAddress | None:
raw_from = self.metadata.get("from_email")
if raw_from:
return ValidAddress.factory(raw_from)
return None
def _init_address_list(self, key: str) -> ValidAddressList:
raw_val = self.metadata.get(key)
if not raw_val:
return ValidAddressList()
items = [raw_val] if isinstance(raw_val, str) else list(raw_val)
return ValidAddressList(items)
@property
def from_email(self) -> ValidAddress | None:
return self._from_email
@property
def to(self) -> ValidAddressList:
return self._to
@property
def cc(self) -> ValidAddressList:
return self._cc
@property
def bcc(self) -> ValidAddressList:
return self._bcc
@property
def reply_to(self) -> ValidAddressList:
return self._reply_to
@classmethod
def load_raw_template(cls, template_name: str) -> str: