'Compute inputs for the given term.
This is mostly complicated by the fact that for each input we store as
many rows as will be necessary to serve **any** computation requiring
that input.'

@staticmethod
def _inputs_for_term(term, workspace, graph):

    offsets = graph.offset
    out = []
    if term.windowed:
        for input_ in term.inputs:
            adjusted_array = ensure_adjusted_array(workspace[input_], input_.missing_value)
            out.append(adjusted_array.traverse(window_length=term.window_length, offset=offsets[(term, input_)]))
    else:
        for input_ in term.inputs:
            input_data = ensure_ndarray(workspace[input_])
            offset = offsets[(term, input_)]
            if offset:
                input_data = input_data[offset:]
            out.append(input_data)
    return out
