[core] add utility functions to get nodes and modules versions

This commit is contained in:
Yann Lanthony 2018-07-13 18:15:57 +02:00
parent e776d99944
commit 95ca93c977

View file

@ -11,6 +11,8 @@ import uuid
import logging
import pkgutil
import sys
from meshroom.core.submitter import BaseSubmitter
from . import desc
@ -82,6 +84,32 @@ def loadPlugins(folder, packageName, classType):
return pluginTypes
def moduleVersion(moduleName, default=None):
""" Return the version of a module indicated with '__version__' keyword.
Args:
moduleName (str): the name of the module to get the version of
default: the value to return if no version info is available
Returns:
str: the version of the module
"""
return getattr(sys.modules[moduleName], "__version__", default)
def nodeVersion(nodeDesc, default=None):
""" Return node type version for the given node description class.
Args:
nodeDesc (desc.Node): the node description class
default: the value to return if no version info is available
Returns:
str: the version of the node type
"""
return moduleVersion(nodeDesc.__module__, default)
def registerNodeType(nodeType):
""" Register a Node Type based on a Node Description class.