From d9237147dbca07c72c51cc51db75e28beb5b80ac Mon Sep 17 00:00:00 2001 From: azv Date: Tue, 2 Feb 2021 18:48:21 +0300 Subject: [PATCH] Possibility to provide additional Python features as add-ons --- src/PythonAPI/model/__init__.py | 11 +++++++++ src/PythonAPI/model/addons/__init__.py | 33 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/PythonAPI/model/addons/__init__.py diff --git a/src/PythonAPI/model/__init__.py b/src/PythonAPI/model/__init__.py index 6e2d15b70..a92957fdf 100644 --- a/src/PythonAPI/model/__init__.py +++ b/src/PythonAPI/model/__init__.py @@ -44,3 +44,14 @@ from .partset import * from .primitives import * from .gdml import * from .tests import * + +# Add-on features + +from .addons import * +# move functions from .addons to top level (model) package +import inspect +for attribute_name in dir(addons): + attribute = getattr(addons, attribute_name) + if inspect.isfunction(attribute): + globals()[attribute_name] = attribute +del inspect diff --git a/src/PythonAPI/model/addons/__init__.py b/src/PythonAPI/model/addons/__init__.py new file mode 100644 index 000000000..cd9117869 --- /dev/null +++ b/src/PythonAPI/model/addons/__init__.py @@ -0,0 +1,33 @@ +# Copyright (C) 2015-2020 CEA/DEN, EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +import pkgutil, inspect + +__all__ = [] +for loader, module_name, is_pkg in pkgutil.walk_packages(__path__): + __all__.append(module_name) + module = loader.find_module(module_name).load_module(module_name) + globals()[module_name] = module + + for attribute_name in dir(module): + attribute = getattr(module, attribute_name) + if inspect.isfunction(attribute): + globals()[attribute_name] = attribute + +del pkgutil, inspect \ No newline at end of file -- 2.39.2