Add function create_template(). master
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Fri, 6 Aug 2021 21:16:53 +0000 (23:16 +0200)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Fri, 6 Aug 2021 21:16:53 +0000 (23:16 +0200)
wrpylib/mwmarkup.py

index a5d83ba5714c36f90f961dfb3198e4a76eec86e5..c14e96256e924ed5855a3a38a47ce40241207e92 100644 (file)
@@ -6,11 +6,27 @@ Other Python MediaWiki parsers:
 * mwlib http://code.pediapress.com/wiki/wiki
 * https://www.mediawiki.org/wiki/Alternative_parsers
 """
-from typing import Optional
+from typing import Optional, Dict, List
 
 from mwparserfromhell.nodes import Template
 
 
+def create_template(name: str, args: List[str], kwargs: Optional[Dict[str, str]] = None) -> Template:
+    """Creates a mwparserfromhell template with from a dictionary (string: string)
+
+    :param name: Name of the template
+    :param args: list of unnamed parameters
+    :param kwargs: named parameters
+    """
+    template = Template(name)
+    for i, value in enumerate(args, 1):
+        template.add(str(i), value, False)
+    if kwargs is not None:
+        for key, value in kwargs.items():
+            template.add(key, value, True)
+    return template
+
+
 def format_template_table(template: Template, keylen: Optional[int] = None):
     """Reformat the given template to be tabular. The template is modified in-place