import json, sys from jinja2 import Environment, BaseLoader with open('dep-template.md.j2') as f: template_text = f.read() def from_json(val): return json.loads(val) if isinstance(val, str) else val env = Environment(loader=BaseLoader(), autoescape=False) env.filters['from_json'] = from_json # Test: empty manifest result = env.from_string(template_text).render(manifest='{}') sys.stdout.write("=== EMPTY MANIFEST ===\n") sys.stdout.write(result) sys.stdout.write("\n\n") # Test: empty arrays result = env.from_string(template_text).render(manifest=json.dumps({"imports":[], "fileRefs":[], "binDeps":[], "skillDeps":[]})) sys.stdout.write("=== EMPTY ARRAYS ===\n") sys.stdout.write(result)