Source code for fastpyxl.typed_serialisable.render
from __future__ import annotations
from fastpyxl.compat import safe_string
from fastpyxl.xml.functions import Element, whitespace
[docs]
def namespaced_tag(tag: str, namespace: str | None) -> str:
if namespace is None:
return tag
return f"{{{namespace}}}{tag}"
[docs]
def nested_value_node(tag: str, value, namespace: str | None = None, value_attribute: str = "val"):
if value is None:
return None
return Element(namespaced_tag(tag, namespace), {value_attribute: safe_string(value)})
[docs]
def nested_text_node(tag: str, value, namespace: str | None = None):
if value is None:
return None
el = Element(namespaced_tag(tag, namespace))
el.text = safe_string(value)
whitespace(el)
return el