code: def store(self, o, id=None): #pylint:disable=redefined-builtin
          
          actual_id = id or self._get_persistent_id(o) or "TMP-"+str(uuid.uuid4())
  
          l.debug("STORE: %s %s", o, actual_id)
  
          # this handles recursive objects
          if actual_id in self.storing:
              return actual_id
  
          if self.is_stored(actual_id):
              l.debug("... already stored")
              return actual_id
  
          with self._write_context(actual_id) as output:
              self.storing.add(actual_id)
              VaultPickler(self, output, assigned_objects=(o,)).dump(o)
              self.stored.add(actual_id)
  
          return actual_id
docs: Stores an object and returns its ID.
  
          :param o: the object
          :param id: an ID to use