Source code for ipypublish.filters.meta_to_yaml

import ruamel.yaml as yaml
from nbformat.notebooknode import NotebookNode


[docs]def recurse_convert(node): # type: (NotebookNode) -> dict """convert notebook node to dict""" dct = {} for key, val in node.items(): if isinstance(val, NotebookNode): dct[key] = recurse_convert(val) else: dct[key] = val return dct
[docs]def meta_to_yaml(metadata, comment="#~~ "): # type: (NotebookNode, str) -> str """convert metadata json to yaml Parameters ---------- metadata: nbformat.notebooknode.NotebookNode comment="": str append to the start of each line Returns ------- string: str """ metadata = recurse_convert(metadata) string = yaml.dump(metadata, default_flow_style=False) if comment: string = "\n".join([comment + s for s in string.splitlines()]) return string