diff --git a/src/tree.py b/src/tree.py index 62ba9ad3c88d05efdd17bebd5a8d27cff4c5b2e6..904abd6716d68c7961048ceee4eb9ecd1a6f1171 100644 --- a/src/tree.py +++ b/src/tree.py @@ -243,8 +243,12 @@ class TreeWalker: return config def ensure_node_id(self, config): - if "node_id" not in config: - config["node_id"] = self.gen_node_id() + if "node_id" not in config or \ + not config["node_id"].startswith(f"{self.tree}-") or \ + config["node_id"] in id_set: + new_id = self.gen_node_id() + id_set.add(new_id) + config["node_id"] = new_id return True, config else: return False, config