From 3c4ebd9b25f6556ee1952e0477e55e477fb17f9b Mon Sep 17 00:00:00 2001 From: Fabien Castan Date: Sun, 16 Jun 2024 21:29:23 +0200 Subject: [PATCH] [core] sort node types versions in file export --- meshroom/core/graph.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/meshroom/core/graph.py b/meshroom/core/graph.py index bd4dc625..567fa249 100644 --- a/meshroom/core/graph.py +++ b/meshroom/core/graph.py @@ -1292,14 +1292,18 @@ class Graph(BaseObject): self.header[Graph.IO.Keys.ReleaseVersion] = meshroom.__version__ self.header[Graph.IO.Keys.FileVersion] = Graph.IO.__version__ - # store versions of node types present in the graph (excluding CompatibilityNode instances) + # Store versions of node types present in the graph (excluding CompatibilityNode instances) + # and remove duplicates usedNodeTypes = set([n.nodeDesc.__class__ for n in self._nodes if isinstance(n, Node)]) - - self.header[Graph.IO.Keys.NodesVersions] = { + # Convert to node types to "name: version" + nodesVersions = { "{}".format(p.__name__): meshroom.core.nodeVersion(p, "0.0") for p in usedNodeTypes } - + # Sort them by name (to avoid random order changing from one save to another) + nodesVersions = dict(sorted(nodesVersions.items())) + # Add it the header + self.header[Graph.IO.Keys.NodesVersions] = nodesVersions self.header["template"] = template data = {}