docs: def insert(self, key, value, data={}):
          """Insert the `key` into a bin based on the given `value`.
  
          Optionally, `data` dictionary may be provided to attach arbitrary data
          to the key.
          """
          if value < self.min_value or value > self.max_value:
              raise BoundsError('item value out of bounds')
  
          item = self.Item(key, value, data)
          index = self.get_bin_index(value)
  
          self.bins[index].append(item)