Source code for fontTools.ttLib.tables.D__e_b_g

import json
from textwrap import indent

from . import DefaultTable
from fontTools.misc.textTools import tostr


[docs] class table_D__e_b_g(DefaultTable.DefaultTable): def __init__(self, tag=None): DefaultTable.DefaultTable.__init__(self, tag) self.data = {}
[docs] def decompile(self, data, ttFont): self.data = json.loads(data)
[docs] def compile(self, ttFont): return json.dumps(self.data).encode("utf-8")
[docs] def toXML(self, writer, ttFont): # make sure json indentation inside CDATA block matches XMLWriter's data = json.dumps(self.data, indent=len(writer.indentwhite)) prefix = tostr(writer.indentwhite) * (writer.indentlevel + 1) # but don't indent the first json line so it's adjacent to `<![CDATA[{` cdata = indent(data, prefix, lambda ln: ln != "{\n") writer.begintag("json") writer.newline() writer.writecdata(cdata) writer.newline() writer.endtag("json") writer.newline()
[docs] def fromXML(self, name, attrs, content, ttFont): if name == "json": self.data = json.loads("".join(content))