mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-02 19:02:29 +02:00
[core] expose registerNodeType function
This commit is contained in:
parent
b95e96449b
commit
7da2466c74
1 changed files with 14 additions and 4 deletions
|
@ -67,15 +67,25 @@ def loadNodes(folder, packageName):
|
||||||
return nodeTypes
|
return nodeTypes
|
||||||
|
|
||||||
|
|
||||||
|
def registerNodeType(nodeType):
|
||||||
|
""" Register a Node Type based on a Node Description class.
|
||||||
|
|
||||||
|
After registration, nodes of this type can be instantiated in a Graph.
|
||||||
|
"""
|
||||||
|
global nodesDesc
|
||||||
|
if nodeType.__name__ in nodesDesc:
|
||||||
|
raise RuntimeError("Node Desc {} is already registered.".format(nodeType.__name__))
|
||||||
|
nodesDesc[nodeType.__name__] = nodeType
|
||||||
|
|
||||||
|
|
||||||
def loadAllNodes(folder):
|
def loadAllNodes(folder):
|
||||||
global nodesDesc
|
global nodesDesc
|
||||||
for f in os.listdir(folder):
|
for f in os.listdir(folder):
|
||||||
if os.path.isdir(os.path.join(folder, f)) and not f.startswith('__'):
|
if os.path.isdir(os.path.join(folder, f)) and not f.startswith('__'):
|
||||||
nodeTypes = loadNodes(folder, f)
|
nodeTypes = loadNodes(folder, f)
|
||||||
|
for nodeType in nodeTypes:
|
||||||
nodes = dict([(m.__name__, m) for m in nodeTypes])
|
registerNodeType(nodeType)
|
||||||
print('Plugins loaded: ', ', '.join(nodes.keys()))
|
print('Plugins loaded: ', ', '.join([nodeType.__name__ for nodeType in nodeTypes]))
|
||||||
nodesDesc.update(nodes)
|
|
||||||
|
|
||||||
|
|
||||||
# Load plugins
|
# Load plugins
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue