'Compute the given TermGraph, seeding the workspace of our engine with
`initial_workspace`.
Parameters
graph : zipline.pipeline.graph.TermGraph
Graph to run.
initial_workspace : dict
Initial workspace to forward to SimplePipelineEngine.compute_chunk.
mask : DataFrame, optional
This is a value to pass to `initial_workspace` as the mask from
`AssetExists()`.  Defaults to a frame of shape `self.default_shape`
containing all True values.
Returns
results : dict
Mapping from termname -> computed result.'

def run_graph(self, graph, initial_workspace, mask=None):

    engine = SimplePipelineEngine((lambda column: ExplodingObject()), self.nyse_sessions, self.asset_finder)
    if (mask is None):
        mask = self.default_asset_exists_mask
    (dates, assets, mask_values) = explode(mask)
    initial_workspace.setdefault(AssetExists(), mask_values)
    initial_workspace.setdefault(InputDates(), dates)
    return engine.compute_chunk(graph, dates, assets, initial_workspace)
