code: def _makewindows(self, indices, window):
          
          div = divmod(window, 2)
          before = div[0]
          after = div[0] + div[1]
          index = asarray(self.index)
          indices = asarray(indices)
          if where(index == max(indices))[0][0] + after > len(index):
              raise ValueError("Maximum requested index %g, with window %g, exceeds length %g"
                               % (max(indices), window, len(index)))
          if where(index == min(indices))[0][0] - before < 0:
              raise ValueError("Minimum requested index %g, with window %g, is less than 0"
                               % (min(indices), window))
          masks = [arange(where(index == i)[0][0]-before, where(index == i)[0][0]+after, dtype='int') for i in indices]
          return masks
docs: Make masks used by windowing functions
  
          Given a list of indices specifying window centers,
          and a window size, construct a list of index arrays,
          one per window, that index into the target array
  
          Parameters
          ----------
          indices : array-like
              List of times specifying window centers
  
          window : int
              Window size