import StringIO from volatility.renderers.basic import Renderer import json __author__ = 'mike' class HTMLRenderer(Renderer): def __init__(self): pass def render(self, outfd, data): """Renders the treegrid to HTML""" column_titles = ", \n".join(["{ \"title\": \"" + column.name + "\"}" for column in data.columns]) json = StringIO.StringIO() JSONRenderer().render(json, data) outfd.write("""
""" + "\n") class JSONRenderer(Renderer): def render_row(self, node, accumulator): return accumulator + [node.values] def render(self, outfd, data): """Renderers a treegrid as columns/row items in JSON format""" # TODO: Implement tree structure in JSON if data.max_depth() > 1: raise NotImplementedError("JSON output for trees has not yet been implemented") # TODO: Output (basic) type information in JSON json_input = {"columns": [column.name for column in data.columns], "rows": data.visit(None, self.render_row, [])} return outfd.write(json.dumps(json_input))