import railroad import pyparsing import typing from typing import ( List, NamedTuple, Generic, TypeVar, Dict, Callable, Set, Iterable, ) from jinja2 import Template from io import StringIO import inspect jinja2_template_source = """\
{% if not head %} {% else %} {{ head | safe }} {% endif %} {{ body | safe }} {% for diagram in diagrams %}