docs: def windowed_iter(src, size):
      """Returns tuples with length *size* which represent a sliding
      window over iterable *src*.
  
      >>> list(windowed_iter(range(7), 3))
      [(0, 1, 2), (1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6)]
  
      If the iterable is too short to make a window of length *size*,
      then no window tuples are returned.
  
      >>> list(windowed_iter(range(3), 5))
      []
      """
      # TODO: lists? (for consistency)
      tees = itertools.tee(src, size)
      try:
          for i, t in enumerate(tees):
              for _ in xrange(i):
                  next(t)
      except StopIteration:
          return izip([])
      return izip(*tees)