code: def _fill(self, size):
          
          try:
              for i in range(size):
                  self.buffer.append(self.source.next())
          except StopIteration:
              self.buffer.append((EndOfFile, EndOfFile))
          self.len = len(self.buffer)
docs: fills the internal buffer from the source iterator