From 40fd46d476a380352a88b9cf23e959764cfd725c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Candice=20Bent=C3=A9jac?= Date: Thu, 26 Dec 2024 15:51:49 +0100 Subject: [PATCH] [core] Node: Add a `sourceCodeFolder` property This property stores the location of the source code for a given node and is not exposed to the QML side. --- meshroom/core/desc/node.py | 3 +++ meshroom/core/node.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/meshroom/core/desc/node.py b/meshroom/core/desc/node.py index 2272c0ba..03327835 100644 --- a/meshroom/core/desc/node.py +++ b/meshroom/core/desc/node.py @@ -1,3 +1,5 @@ +from inspect import getfile +from pathlib import Path import os import psutil import shlex @@ -63,6 +65,7 @@ class Node(object): def __init__(self): super(Node, self).__init__() self.hasDynamicOutputAttribute = any(output.isDynamicValue for output in self.outputs) + self.sourceCodeFolder = Path(getfile(self.__class__)).parent.resolve().as_posix() def upgradeAttributeValues(self, attrValues, fromVersion): return attrValues diff --git a/meshroom/core/node.py b/meshroom/core/node.py index bdf36976..d67e3593 100644 --- a/meshroom/core/node.py +++ b/meshroom/core/node.py @@ -501,6 +501,7 @@ class BaseNode(BaseObject): self.packageName = self.packageVersion = "" self._internalFolder = "" + self._sourceCodeFolder = "" self._name = None self.graph = None @@ -1039,6 +1040,10 @@ class BaseNode(BaseObject): def internalFolder(self): return self._internalFolder.format(**self._cmdVars) + @property + def sourceCodeFolder(self): + return self._sourceCodeFolder + def updateStatusFromCache(self): """ Update node status based on status file content/existence. @@ -1441,6 +1446,7 @@ class Node(BaseNode): self.packageName = self.nodeDesc.packageName self.packageVersion = self.nodeDesc.packageVersion self._internalFolder = self.nodeDesc.internalFolder + self._sourceCodeFolder = self.nodeDesc.sourceCodeFolder for attrDesc in self.nodeDesc.inputs: self._attributes.add(attributeFactory(attrDesc, kwargs.get(attrDesc.name, None), isOutput=False, node=self))