code: def _take_batch(self, min_records):
          '''If we have enough data to build a batch, returns all the data in the
          buffer and then clears the buffer.'''
  
          if not self._buffer:
              return []
  
          enough_messages = len(self._buffer) >= min_records
          enough_time = time.time() - self.time_last_batch_sent >= self.batch_delay_seconds
          ready = enough_messages or enough_time
  
          if not ready:
              return []
  
          result = list(self._buffer)
          self._buffer.clear()
          return resulf _take_batch(self, min_records):
          '''If we have enough data to build a batch, returns all the data in the
          buffer and then clears the buffer.'''
  
          if not self._buffer:
              return []
  
          enough_messages = len(self._buffer) >= min_records
          enough_time = time.time() - self.time_last_batch_sent >= self.batch_delay_seconds
          ready = enough_messages or enough_time
  
          if not ready:
              return []
  
          result = list(self._buffer)
          self._buffer.clear()
          return result
docs: If we have enough data to build a batch, returns all the data in the
          buffer and then clears the buffer.