[EDF31137] : Modularize smesh python plugin

This commit is contained in:
DUC ANH HOANG 2024-10-29 14:58:06 +01:00
parent 2cfe9de73e
commit a45f3b0347

View File

@ -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))