From 2911c63daa38185e789af5d10d58c9586cb3c088 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Wed, 14 Oct 2026 17:15:36 +0200 Subject: [PATCH] Add JSON CLI envelopes for Subdoc and RichText Allow python -m docxtpl to expand __docxtpl__ subdoc/richtext objects from JSON before render. Includes example, e2e tests, and docs. --- docs/index.rst | 15 ++ docxtpl/__init__.py | 1 + docxtpl/__main__.py | 2 + docxtpl/envelope.py | 95 ++++++++++++ tests/envelope_cli.py | 214 ++++++++++++++++++++++++++ tests/envelope_execute.py | 29 ++++ tests/templates/envelope_cli.json | 13 ++ tests/templates/envelope_cli_sub.docx | Bin 0 -> 36590 bytes tests/templates/envelope_cli_tpl.docx | Bin 0 -> 36648 bytes 9 files changed, 369 insertions(+) create mode 100644 docxtpl/envelope.py create mode 100644 tests/envelope_cli.py create mode 100644 tests/envelope_execute.py create mode 100644 tests/templates/envelope_cli.json create mode 100644 tests/templates/envelope_cli_sub.docx create mode 100644 tests/templates/envelope_cli_tpl.docx diff --git a/docs/index.rst b/docs/index.rst index 46cf69f..358790a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -489,6 +489,21 @@ One can use `docxtpl` module directly on command line to generate a docx from a See tests/module_execute.py for an example. +JSON context may include typed objects via a ``__docxtpl__`` envelope so the CLI can +build ``RichText`` and ``Subdoc`` values before render: + +* RichText (use with ``{{r var }}``):: + + {"__docxtpl__": "richtext", "runs": [{"text": "Hello ", "bold": false}, {"text": "world", "bold": true}]} + +* Subdoc (use with ``{{p var }}``, alone on its paragraph). Provide either + ``docx_base64`` or ``path`` (mutually exclusive). Subdoc envelopes require + ``docxcompose`` (``pip install "docxtpl[subdoc]"``):: + + {"__docxtpl__": "subdoc", "path": "fragment.docx"} + +See tests/envelope_execute.py for a full CLI example. + Examples -------- diff --git a/docxtpl/__init__.py b/docxtpl/__init__.py index 5559d4f..bb3a0dc 100644 --- a/docxtpl/__init__.py +++ b/docxtpl/__init__.py @@ -8,6 +8,7 @@ __version__ = "0.20.2" # flake8: noqa +from .envelope import expand_context from .inline_image import InlineImage from .listing import Listing from .richtext import RichText, R, RichTextParagraph, RP diff --git a/docxtpl/__main__.py b/docxtpl/__main__.py index 59cf049..0923f97 100644 --- a/docxtpl/__main__.py +++ b/docxtpl/__main__.py @@ -2,6 +2,7 @@ import json import os +from .envelope import expand_context from .template import DocxTemplate, TemplateError TEMPLATE_ARG = "template_path" @@ -130,6 +131,7 @@ def make_docxtemplate(template_path): def render_docx(doc, json_data): try: + json_data = expand_context(doc, json_data) doc.render(json_data) return doc except TemplateError: diff --git a/docxtpl/envelope.py b/docxtpl/envelope.py new file mode 100644 index 0000000..8231c93 --- /dev/null +++ b/docxtpl/envelope.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +"""JSON-serializable envelopes for Subdoc and RichText in CLI / embedders.""" +from __future__ import annotations + +import base64 +import io +from typing import Any, Optional + +from .richtext import RichText + +DOCXTPL_KEY = "__docxtpl__" + + +def is_envelope(value: Any) -> bool: + return isinstance(value, dict) and DOCXTPL_KEY in value + + +def _expand_subdoc(tpl, envelope: dict): + try: + from .subdoc import Subdoc # noqa: F401 + except ImportError as e: + raise RuntimeError( + 'Subdoc envelopes require docxcompose. Install with: pip install "docxtpl[subdoc]"' + ) from e + + has_b64 = "docx_base64" in envelope and envelope["docx_base64"] is not None + has_path = "path" in envelope and envelope["path"] + if has_b64 and has_path: + raise RuntimeError("Subdoc envelope must not set both docx_base64 and path") + if not has_b64 and not has_path: + raise RuntimeError("Subdoc envelope requires docx_base64 or path") + + if has_path: + return tpl.new_subdoc(envelope["path"]) + try: + raw = base64.b64decode(envelope["docx_base64"]) + except Exception as e: + raise RuntimeError("Invalid docx_base64 in subdoc envelope") from e + return tpl.new_subdoc(io.BytesIO(raw)) + + +def _expand_richtext(tpl, envelope: dict) -> RichText: + runs = envelope.get("runs") + if runs is None: + raise RuntimeError("RichText envelope requires a runs array") + if not isinstance(runs, list): + raise RuntimeError("RichText envelope runs must be a list") + + rt = RichText() + for i, run in enumerate(runs): + if not isinstance(run, dict): + raise RuntimeError("RichText run #%s must be an object" % i) + if "text" not in run: + raise RuntimeError("RichText run #%s requires text" % i) + kwargs = {} + for key in ( + "bold", + "italic", + "underline", + "strike", + "subscript", + "superscript", + "color", + "size", + "font", + "style", + ): + if key in run and run[key] is not None: + kwargs[key] = run[key] + url = run.get("url") + if url: + kwargs["url_id"] = tpl.build_url_id(url) + rt.add(run["text"], **kwargs) + return rt + + +def expand_value(tpl, value: Any) -> Any: + if is_envelope(value): + kind = value.get(DOCXTPL_KEY) + if kind == "subdoc": + return _expand_subdoc(tpl, value) + if kind == "richtext": + return _expand_richtext(tpl, value) + raise RuntimeError("Unknown __docxtpl__ envelope type: %r" % kind) + + if isinstance(value, list): + return [expand_value(tpl, item) for item in value] + if isinstance(value, dict): + return {k: expand_value(tpl, v) for k, v in value.items()} + return value + + +def expand_context(tpl, context: Any) -> Any: + """Expand __docxtpl__ envelopes in a JSON-loaded context before render().""" + return expand_value(tpl, context) diff --git a/tests/envelope_cli.py b/tests/envelope_cli.py new file mode 100644 index 0000000..32bae4c --- /dev/null +++ b/tests/envelope_cli.py @@ -0,0 +1,214 @@ +# -*- coding: utf-8 -*- +"""Tests for JSON CLI envelopes (subdoc + richtext).""" +import base64 +import io +import json +import os +import subprocess +import sys +import tempfile +import unittest +import zipfile + +from docx import Document + +from docxtpl import DocxTemplate, RichText, expand_context + +os.chdir(os.path.dirname(__file__)) +os.makedirs("output", exist_ok=True) + + +def _docx_bytes_with_paragraph(text): + doc = Document() + doc.add_paragraph(text) + buf = io.BytesIO() + doc.save(buf) + return buf.getvalue() + + +def _template_with_p_placeholder(varname): + """Build a minimal .docx whose body is a single {{p varname }} paragraph.""" + doc = Document() + p = doc.add_paragraph() + p.add_run("{{p %s }}" % varname) + buf = io.BytesIO() + doc.save(buf) + buf.seek(0) + return buf + + +def _template_with_r_placeholder(varname, prefix="Label: "): + doc = Document() + p = doc.add_paragraph() + p.add_run(prefix) + p.add_run("{{r %s }}" % varname) + buf = io.BytesIO() + doc.save(buf) + buf.seek(0) + return buf + + +class EnvelopeTests(unittest.TestCase): + def test_expand_richtext_envelope(self): + tpl = DocxTemplate(_template_with_r_placeholder("body")) + ctx = expand_context( + tpl, + { + "body": { + "__docxtpl__": "richtext", + "runs": [ + {"text": "Hello ", "bold": False}, + {"text": "world", "bold": True}, + ], + } + }, + ) + self.assertIsInstance(ctx["body"], RichText) + tpl.render(ctx) + out = "output/envelope_richtext.docx" + tpl.save(out) + self.assertTrue(os.path.isfile(out)) + + def test_expand_subdoc_envelope(self): + mini = _docx_bytes_with_paragraph("Inserted block") + tpl = DocxTemplate(_template_with_p_placeholder("body")) + ctx = expand_context( + tpl, + { + "body": { + "__docxtpl__": "subdoc", + "docx_base64": base64.b64encode(mini).decode("ascii"), + } + }, + ) + from docxtpl.subdoc import Subdoc + + self.assertIsInstance(ctx["body"], Subdoc) + tpl.render(ctx) + out = "output/envelope_subdoc.docx" + tpl.save(out) + self.assertTrue(os.path.isfile(out)) + with zipfile.ZipFile(out) as zf: + xml = zf.read("word/document.xml").decode("utf-8") + self.assertIn("Inserted block", xml) + + def test_expand_subdoc_path_envelope(self): + from docxtpl.subdoc import Subdoc + + tpl = DocxTemplate(_template_with_p_placeholder("body")) + ctx = expand_context( + tpl, + { + "body": { + "__docxtpl__": "subdoc", + "path": "templates/envelope_cli_sub.docx", + } + }, + ) + self.assertIsInstance(ctx["body"], Subdoc) + tpl.render(ctx) + out = "output/envelope_subdoc_path.docx" + tpl.save(out) + with zipfile.ZipFile(out) as zf: + xml = zf.read("word/document.xml").decode("utf-8") + self.assertIn("Inserted via CLI", xml) + + def test_cli_end_to_end_envelopes(self): + out = "output/envelope_cli_e2e.docx" + if os.path.exists(out): + os.unlink(out) + result = subprocess.run( + [ + sys.executable, + "-m", + "docxtpl", + "templates/envelope_cli_tpl.docx", + "templates/envelope_cli.json", + out, + "-o", + "-q", + ], + capture_output=True, + text=True, + ) + self.assertEqual( + result.returncode, + 0, + "CLI failed: stdout=%r stderr=%r" % (result.stdout, result.stderr), + ) + self.assertTrue(os.path.isfile(out)) + with zipfile.ZipFile(out) as zf: + xml = zf.read("word/document.xml").decode("utf-8") + self.assertIn("Hello", xml) + self.assertIn("world", xml) + self.assertIn("Inserted via CLI", xml) + + def test_cli_end_to_end_base64_subdoc(self): + mini = _docx_bytes_with_paragraph("Base64 block") + with tempfile.TemporaryDirectory() as tmp: + tpl_path = os.path.join(tmp, "tpl.docx") + json_path = os.path.join(tmp, "ctx.json") + out_path = os.path.join(tmp, "out.docx") + buf = _template_with_p_placeholder("body") + with open(tpl_path, "wb") as fh: + fh.write(buf.read()) + with open(json_path, "w") as fh: + json.dump( + { + "body": { + "__docxtpl__": "subdoc", + "docx_base64": base64.b64encode(mini).decode("ascii"), + } + }, + fh, + ) + result = subprocess.run( + [ + sys.executable, + "-m", + "docxtpl", + tpl_path, + json_path, + out_path, + "-o", + "-q", + ], + capture_output=True, + text=True, + ) + self.assertEqual( + result.returncode, + 0, + "CLI failed: stdout=%r stderr=%r" % (result.stdout, result.stderr), + ) + with zipfile.ZipFile(out_path) as zf: + xml = zf.read("word/document.xml").decode("utf-8") + self.assertIn("Base64 block", xml) + + def test_unknown_envelope_type(self): + tpl = DocxTemplate(_template_with_r_placeholder("body")) + with self.assertRaises(RuntimeError): + expand_context( + tpl, {"body": {"__docxtpl__": "nope", "runs": []}} + ) + + def test_nested_list_expansion(self): + tpl = DocxTemplate(_template_with_r_placeholder("body")) + ctx = expand_context( + tpl, + { + "rows": [ + { + "body": { + "__docxtpl__": "richtext", + "runs": [{"text": "row1", "bold": True}], + } + } + ] + }, + ) + self.assertIsInstance(ctx["rows"][0]["body"], RichText) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/envelope_execute.py b/tests/envelope_execute.py new file mode 100644 index 0000000..a5570af --- /dev/null +++ b/tests/envelope_execute.py @@ -0,0 +1,29 @@ +import os +import sys + +TEMPLATE_PATH = "templates/envelope_cli_tpl.docx" +JSON_PATH = "templates/envelope_cli.json" +OUTPUT_FILENAME = "output/envelope_cli.docx" +OVERWRITE = "-o" +QUIET = "-q" + + +os.chdir(os.path.dirname(__file__)) +os.makedirs("output", exist_ok=True) + +if os.path.exists(OUTPUT_FILENAME): + os.unlink(OUTPUT_FILENAME) + +cmd = "%s -m docxtpl %s %s %s %s %s" % ( + sys.executable, + TEMPLATE_PATH, + JSON_PATH, + OUTPUT_FILENAME, + OVERWRITE, + QUIET, +) +print('Executing "%s" ...' % cmd) +os.system(cmd) + +if os.path.exists(OUTPUT_FILENAME): + print(" --> File %s has been generated." % OUTPUT_FILENAME) diff --git a/tests/templates/envelope_cli.json b/tests/templates/envelope_cli.json new file mode 100644 index 0000000..27d34e7 --- /dev/null +++ b/tests/templates/envelope_cli.json @@ -0,0 +1,13 @@ +{ + "highlight": { + "__docxtpl__": "richtext", + "runs": [ + {"text": "Hello ", "bold": false}, + {"text": "world", "bold": true} + ] + }, + "block": { + "__docxtpl__": "subdoc", + "path": "templates/envelope_cli_sub.docx" + } +} diff --git a/tests/templates/envelope_cli_sub.docx b/tests/templates/envelope_cli_sub.docx new file mode 100644 index 0000000000000000000000000000000000000000..28de051c37dd1b578e1f7e71556712d050722ebc GIT binary patch literal 36590 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 hJ&4fX+JcnDP+Nxq-mJhJ1j literal 0 HcmV?d00001 diff --git a/tests/templates/envelope_cli_tpl.docx b/tests/templates/envelope_cli_tpl.docx new file mode 100644 index 0000000000000000000000000000000000000000..a544aed78f3f5906dbd139e61efd6ef222907481 GIT binary patch literal 36648 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