Source code
from matplotlib.figure import Figure
from tornado.template import Template
from PIL import Image as PILImage
from .tools import mpl_to_pil, pil_to_b64
htmltemplate = Template("{{ data }}")
def decode(out):
if isinstance(out, str):
return {'kind': 'html', 'data': htmltemplate.generate(data=out)}
if isinstance(out, Figure):
img = mpl_to_pil(out)
out.clear()
return {'kind': 'img', 'data': pil_to_b64(img)}
if isinstance(out, PILImage.Image):
return {'kind': 'img', 'data': pil_to_b64(out)}
if isinstance(out, bool):
return {'kind': 'html', 'data': out}
else:
assert(False), "decoding for type {} not supported {}"\
.format(type(out), out)