[core] plugins: Rename getNodePlugin... to getRegisteredNodePlugin...

This prevents ambiguities between `NodePlugin` objects that have been
registered (and are thus instantiable) and those that belong to `Plugin`
objects but have not been registered.
This commit is contained in:
Candice Bentéjac 2025-05-22 16:17:20 +02:00
parent c16b56c7e3
commit 98d90dae81
7 changed files with 17 additions and 17 deletions

View file

@ -642,9 +642,9 @@ class BaseNode(BaseObject):
self.nodePlugin: plugins.Plugin = None
# instantiate node description if nodeType is valid
if meshroom.core.pluginManager.getNodePlugin(nodeType):
self.nodeDesc = meshroom.core.pluginManager.getNodePlugin(nodeType).nodeDescriptor()
self.nodePlugin = meshroom.core.pluginManager.getNodePlugin(nodeType)
if meshroom.core.pluginManager.getRegisteredNodePlugin(nodeType):
self.nodeDesc = meshroom.core.pluginManager.getRegisteredNodePlugin(nodeType).nodeDescriptor()
self.nodePlugin = meshroom.core.pluginManager.getRegisteredNodePlugin(nodeType)
self.packageName: str = ""
self.packageVersion: str = ""

View file

@ -56,7 +56,7 @@ class _NodeCreator:
self.uid = self.nodeData.get("uid", None)
self.nodeDesc = None
if meshroom.core.pluginManager.isRegistered(self.nodeType):
self.nodeDesc = meshroom.core.pluginManager.getNodePlugin(self.nodeType).nodeDescriptor
self.nodeDesc = meshroom.core.pluginManager.getRegisteredNodePlugin(self.nodeType).nodeDescriptor
def create(self) -> Union[Node, CompatibilityNode]:
compatibilityIssue = self._checkCompatibilityIssues()

View file

@ -262,14 +262,14 @@ class NodePluginManager(BaseObject):
if not self.getPlugin(plugin.name):
self._plugins[plugin.name] = plugin
def getNodePlugins(self) -> dict[str: NodePlugin]:
def getRegisteredNodePlugins(self) -> dict[str: NodePlugin]:
"""
Return a dictionary containing all the registered NodePlugins, with
{key, value} = {name, NodePlugin}.
"""
return self._nodePlugins
def getNodePlugin(self, name: str) -> NodePlugin:
def getRegisteredNodePlugin(self, name: str) -> NodePlugin:
"""
Return the NodePlugin object that has been registered under the name "name" if it exists.

View file

@ -31,7 +31,7 @@ def checkTemplateVersions(path: str, nodesAlreadyLoaded: bool = False) -> bool:
if not meshroom.core.pluginManager.isRegistered(nodeType):
return False
nodeDesc = meshroom.core.pluginManager.getNodePlugin(nodeType)
nodeDesc = meshroom.core.pluginManager.getRegisteredNodePlugin(nodeType)
currentNodeVersion = meshroom.core.nodeVersion(nodeDesc)
inputs = nodeData.get("inputs", {})
@ -60,7 +60,7 @@ def checkTemplateVersions(path: str, nodesAlreadyLoaded: bool = False) -> bool:
finally:
if not nodesAlreadyLoaded:
nodePlugins = meshroom.core.pluginManager.getNodePlugins()
nodePlugins = meshroom.core.pluginManager.getRegisteredNodePlugins()
for node in nodePlugins:
meshroom.core.pluginManager.unregisterNode(node)

View file

@ -261,7 +261,7 @@ class MeshroomApp(QApplication):
self.engine.addImportPath(qmlDir)
# expose available node types that can be instantiated
self.engine.rootContext().setContextProperty("_nodeTypes", {n: {"category": pluginManager.getNodePlugins()[n].nodeDescriptor.category} for n in sorted(pluginManager.getNodePlugins().keys())})
self.engine.rootContext().setContextProperty("_nodeTypes", {n: {"category": pluginManager.getRegisteredNodePlugins()[n].nodeDescriptor.category} for n in sorted(pluginManager.getRegisteredNodePlugins().keys())})
# instantiate Reconstruction object
self._undoStack = commands.UndoStack(self)

View file

@ -537,7 +537,7 @@ class Reconstruction(UIGraph):
# For all nodes declared to be accessed by the UI
usedNodeTypes = {j for i in self.activeNodeCategories.values() for j in i}
allUiNodes = set(self.uiNodes) | usedNodeTypes
allLoadedNodeTypes = set(meshroom.core.pluginManager.getNodePlugins().keys())
allLoadedNodeTypes = set(meshroom.core.pluginManager.getRegisteredNodePlugins().keys())
for nodeType in allUiNodes:
self._activeNodes.add(ActiveNode(nodeType, parent=self))
@ -684,7 +684,7 @@ class Reconstruction(UIGraph):
if not sfmFile or not os.path.isfile(sfmFile):
self.tempCameraInit = None
return
nodeDesc = meshroom.core.pluginManager.getNodePlugin("CameraInit")
nodeDesc = meshroom.core.pluginManager.getRegisteredNodePlugin("CameraInit")
views, intrinsics = nodeDesc.readSfMData(sfmFile)
tmpCameraInit = Node("CameraInit", viewpoints=views, intrinsics=intrinsics)
tmpCameraInit.locked = True

View file

@ -170,7 +170,7 @@ class SampleInputNodeV2(desc.InputNode):
def replaceNodeTypeDesc(nodeType: str, nodeDesc: Type[desc.Node]):
"""Change the `nodeDesc` associated to `nodeType`."""
pluginManager.getNodePlugins()[nodeType] = NodePlugin(nodeDesc)
pluginManager.getRegisteredNodePlugins()[nodeType] = NodePlugin(nodeDesc)
def test_unknown_node_type():
@ -216,7 +216,7 @@ def test_description_conflict():
Test compatibility behavior for conflicting node descriptions.
"""
# Copy registered node types to be able to restore them
originalNodeTypes = copy.deepcopy(pluginManager.getNodePlugins())
originalNodeTypes = copy.deepcopy(pluginManager.getRegisteredNodePlugins())
nodeTypes = [SampleNodeV1, SampleNodeV2, SampleNodeV3, SampleNodeV4, SampleNodeV5]
nodes = []
@ -242,7 +242,7 @@ def test_description_conflict():
# Offset node types register to create description conflicts
# Each node type name now reference the next one's implementation
for i, nt in enumerate(nodeTypes[:-1]):
pluginManager.getNodePlugins()[nt.__name__] = NodePlugin(nodeTypes[i + 1])
pluginManager.getRegisteredNodePlugins()[nt.__name__] = NodePlugin(nodeTypes[i + 1])
# Reload file
g = loadGraph(graphFile)
@ -359,8 +359,8 @@ def test_upgradeAllNodes():
pluginManager.unregisterNode(nodePluginSampleInputV2)
# Replace SampleNodeV1 by SampleNodeV2 and SampleInputNodeV1 by SampleInputNodeV2
pluginManager.getNodePlugins()[nodePluginSampleV1.nodeDescriptor.__name__] = nodePluginSampleV2
pluginManager.getNodePlugins()[nodePluginSampleInputV1.nodeDescriptor.__name__] = \
pluginManager.getRegisteredNodePlugins()[nodePluginSampleV1.nodeDescriptor.__name__] = nodePluginSampleV2
pluginManager.getRegisteredNodePlugins()[nodePluginSampleInputV1.nodeDescriptor.__name__] = \
nodePluginSampleInputV2
# Reload file
@ -400,7 +400,7 @@ def test_conformUpgrade():
g.save(graphFile)
# Replace SampleNodeV5 by SampleNodeV6
pluginManager.getNodePlugins()[nodePluginSampleV5.nodeDescriptor.__name__] = nodePluginSampleV6
pluginManager.getRegisteredNodePlugins()[nodePluginSampleV5.nodeDescriptor.__name__] = nodePluginSampleV6
# Reload file
g = loadGraph(graphFile)