From a45f3b034762277dbf43a15dcc868b5c188d0bcb Mon Sep 17 00:00:00 2001 From: DUC ANH HOANG Date: Tue, 29 Oct 2024 14:58:06 +0100 Subject: [PATCH] [EDF31137] : Modularize smesh python plugin --- src/Tools/smesh_plugins.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/Tools/smesh_plugins.py b/src/Tools/smesh_plugins.py index fdf3c5b1f..5b9194d59 100644 --- a/src/Tools/smesh_plugins.py +++ b/src/Tools/smesh_plugins.py @@ -117,3 +117,28 @@ try: except Exception as e: salome_pluginsmanager.logger.info('ERROR: TopIIVolMesh plug-in is unavailable: {}'.format(e)) pass + +import sys +import importlib +import importlib.util + +plugin_dirs = os.getenv("SMESH_PYPLUGIN_DIR").split(":") +# reverse plugin_dirs list to call smesh python plugin in good order +plugin_dirs.reverse() +for plg_dir in plugin_dirs: + if os.path.exists(plg_dir): + sys.path.insert(0, plg_dir) + #for filename in sorted( + # filter(lambda x: os.path.isfile(os.path.join(plg_dir, x)), + # os.listdir(plg_dir))): + for filename in os.listdir(plg_dir): + if filename.endswith(".py"): + f = os.path.join(plg_dir, filename) + try: + module_name = os.path.splitext(os.path.basename(f))[0] + _specs = importlib.util.find_spec(module_name) + _module = importlib.util.module_from_spec(_specs) + _specs.loader.exec_module(_module) + _module.init() + except: + print("Can not load python plugin from {}".format(plg_dir)) -- 2.39.2