]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Possibility to provide additional Python features as add-ons
authorazv <azv@opencascade.com>
Tue, 2 Feb 2021 15:48:21 +0000 (18:48 +0300)
committerazv <azv@opencascade.com>
Tue, 28 Dec 2021 19:25:00 +0000 (22:25 +0300)
src/PythonAPI/model/__init__.py
src/PythonAPI/model/addons/__init__.py [new file with mode: 0644]

index 6e2d15b704e802e28984f3da075e173c7a7b1b5f..a92957fdfbd380d8a247a24bd414eec71249a047 100644 (file)
@@ -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 (file)
index 0000000..cd91178
--- /dev/null
@@ -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