code: def data(self, buffer_index):
          
          # Check for expired elements and discard if they exist
          expired = self.time - self.max_time     
          exp = self.buffer_expire[buffer_index]
          j = 0
          while j < len(exp):
              # Everything before this j must be expired
              if exp[j] >= expired:
                  self.buffer_expire[buffer_index] = exp[j:].copy()
                  self.buffer[buffer_index] = self.buffer[buffer_index][j:].copy()
                  break
              j += 1
         
          return self.buffer[buffer_index]
docs: Return the data vector for a given ring buffer