import re
import xml.etree.ElementTree
import collections
-from typing import Tuple, Optional, List, OrderedDict, Union, Dict
+from typing import Tuple, Optional, List, OrderedDict, Union, Dict, Any
import jinja2
from mwparserfromhell.nodes import Template, Wikilink
def list_template(self, name: str, value: List[str]) -> str:
return str(wrpylib.mwmarkup.create_template(name, value))
+ def key_value_template(self, name: str, value: Dict[str, Any], keep_empty: bool = False) -> str:
+ value = {k: str(v) for k, v in value.items()
+ if keep_empty or (v is not None and not isinstance(v, jinja2.Undefined) and str(v).strip() != '')}
+ return str(wrpylib.mwmarkup.create_template(name, [], value))
+
def json_template(self, value) -> str:
args = []
kwargs = {}