docs: def commit(self):
  		"""
  		Commit change made by the add_* methods.
  		All previous values with no update will be lost.
  		This method is automatically called by the updater thread.
  		"""
  
  		# Generate index before acquiring lock to keep locked section fast
  		# Works because this thread is the only writer of self.pending
  		pending_idx = sorted(list(self.pending.keys()), key=lambda k: tuple(int(part) for part in k.split('.')))
  
  		# Commit new data
  		try:
  			self.lock.acquire()
  			self.data=self.pending
  			self.pending=dict()
  			self.data_idx = pending_idx
  		finally:
  			self.lock.release()