code: def update_from(self, config_mod, path=""):
      added = config_mod.added
      updated = config_mod.modified
      typechanged = config_mod.typechanged
      self.added &= {join_paths(path, a) for a in added}
      self.modified |= {join_paths(path, u) for u in updated}
      self.typechanged.update(
          {join_paths(path, k): v for k, v in typechanged.items()}
      )
      self.ensure_coherence()
      for k, v in config_mod.docs.items():
          if not self.docs.get(k, ""):
              self.docs[k] = v
  
imports: from sacred.utils import iter_prefixes, join_paths
label_desc: Use image node_id 2 for calling the ConfigSummary obj's underlying member method code with example usage: obj.update_from(config_mod, path) without return types