code: def next(self):
          
          if self._has_finished:
              raise StopIteration
  
          if not len(self._buffer):
                      
              results = self.fetch_next_block()
              self._buffer.extend(results)
              
          if not len(self._buffer):
              raise StopIteration
              
          return self._buffer.popleft()
docs: Returns the next query result.
          
          :return:
              The next query result.
          :rtype: dict
          :raises StopIteration: If no more result is left.