docs: def split_feature(f, n):
      """
      Split an interval into `n` roughly equal portions
      """
      if not isinstance(n, int):
          raise ValueError('n must be an integer')
      orig_feature = copy(f)
      step = (f.stop - f.start) / n
      for i in range(f.start, f.stop, step):
          f = copy(orig_feature)
          start = i
          stop = min(i + step, orig_feature.stop)
          f.start = start
          f.stop = stop
          yield f
          if stop == orig_feature.stop:
              break