[core] Add ProcessEnv class in new plugins module

Add a new module named `plugins` with a `ProcessEnv` class which
contains the paths describing the environment needed for the plugin's
(node's) process.
This commit is contained in:
Candice Bentéjac 2025-05-05 16:06:52 +02:00
parent 99a6dc0671
commit b56420318d
2 changed files with 17 additions and 4 deletions

View file

@ -19,6 +19,7 @@ try:
except Exception: except Exception:
pass pass
from meshroom.core.plugins import ProcessEnv
from meshroom.core.submitter import BaseSubmitter from meshroom.core.submitter import BaseSubmitter
from meshroom.env import EnvVar, meshroomFolder from meshroom.env import EnvVar, meshroomFolder
from . import desc from . import desc
@ -349,9 +350,7 @@ def loadPluginFolder(folder):
logging.info(f"Plugin folder '{folder}' does not contain a 'meshroom' folder.") logging.info(f"Plugin folder '{folder}' does not contain a 'meshroom' folder.")
return return
binFolders = [Path(folder, 'bin')] processEnv = ProcessEnv(folder)
libFolders = [Path(folder, 'lib'), Path(folder, 'lib64')]
pythonPathFolders = [Path(folder)] + binFolders
loadAllNodes(folder=mrFolder) loadAllNodes(folder=mrFolder)
loadPipelineTemplates(folder=mrFolder) loadPipelineTemplates(folder=mrFolder)
@ -361,7 +360,7 @@ def loadPluginsFolder(folder):
if not os.path.isdir(folder): if not os.path.isdir(folder):
logging.debug(f"PluginSet folder '{folder}' does not exist.") logging.debug(f"PluginSet folder '{folder}' does not exist.")
return return
for file in os.listdir(folder): for file in os.listdir(folder):
if os.path.isdir(file): if os.path.isdir(file):
subFolder = os.path.join(folder, file) subFolder = os.path.join(folder, file)

14
meshroom/core/plugins.py Normal file
View file

@ -0,0 +1,14 @@
from pathlib import Path
from meshroom.common import BaseObject
class ProcessEnv(BaseObject):
"""
Describes the environment required by a node's process.
"""
def __init__(self, folder: str):
super().__init__()
self.binPaths: list = [Path(folder, "bin")]
self.libPaths: list = [Path(folder, "lib"), Path(folder, "lib64")]
self.pythonPathFolders: list = [Path(folder)] + self.binPaths