code: def peek(self, n=0, skip=None, drop=False):
          
          buffer = self._buffer
          popleft = buffer.popleft
          datum = None
          if skip is not None:
              stack = []
              stackpush = stack.append
              while n >= 0:
                  try:
                      datum = popleft()
                  except IndexError:
                      self._buffer_fill()
                      datum = popleft()
                  if not skip(datum):
                      n -= 1
                      stackpush(datum)
                  elif not drop:
                      stackpush(datum)
              buffer.extendleft(reversed(stack))
          else:
              self._buffer_fill(n + 1)
              datum = buffer[n]
          return datum
docs: Return the *n*th datum from the buffer.