code: def _inputs_for_term(term, workspace, graph):
          
          offsets = graph.offset
          out = []
          if term.windowed:
              # If term is windowed, then all input data should be instances of
              # AdjustedArray.
              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:
              # If term is not windowed, input_data may be an AdjustedArray or
              # np.ndarray.  Coerce the former to the latter.
              for input_ in term.inputs:
                  input_data = ensure_ndarray(workspace[input_])
                  offset = offsets[term, input_]
                  # OPTIMIZATION: Don't make a copy by doing input_data[0:] if
                  # offset is zero.
                  if offset:
                      input_data = input_data[offset:]
                  out.append(input_data)
          return out
docs: 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.