diff options
author | Daniel M. Pelt <D.M.Pelt@cwi.nl> | 2015-07-20 14:07:21 +0200 |
---|---|---|
committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2015-07-23 11:57:18 +0200 |
commit | d91b51f6d58003de84a9d6dd8189fceba0e81a5a (patch) | |
tree | 215492c645ee57fb1cd65bab1c8f7bd0aabd058e /python/astra/plugin_c.pyx | |
parent | 37abc22cf8d26fa3f7e282a1ee50a2a129d5a295 (diff) | |
download | astra-d91b51f6d58003de84a9d6dd8189fceba0e81a5a.tar.gz astra-d91b51f6d58003de84a9d6dd8189fceba0e81a5a.tar.bz2 astra-d91b51f6d58003de84a9d6dd8189fceba0e81a5a.tar.xz astra-d91b51f6d58003de84a9d6dd8189fceba0e81a5a.zip |
Allow registering plugins without explicit name, and fix exception handling when running in Matlab
Diffstat (limited to 'python/astra/plugin_c.pyx')
-rw-r--r-- | python/astra/plugin_c.pyx | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/python/astra/plugin_c.pyx b/python/astra/plugin_c.pyx index 91b3cd5..8d6816b 100644 --- a/python/astra/plugin_c.pyx +++ b/python/astra/plugin_c.pyx @@ -38,7 +38,9 @@ from . import utils cdef extern from "astra/PluginAlgorithm.h" namespace "astra": cdef cppclass CPluginAlgorithmFactory: + bool registerPlugin(string className) bool registerPlugin(string name, string className) + bool registerPluginClass(object className) bool registerPluginClass(string name, object className) object getRegistered() string getHelp(string name) @@ -46,11 +48,17 @@ cdef extern from "astra/PluginAlgorithm.h" namespace "astra": cdef extern from "astra/PluginAlgorithm.h" namespace "astra::CPluginAlgorithmFactory": cdef CPluginAlgorithmFactory* getSingletonPtr() -def register(name, className): +def register(className, name=None): if inspect.isclass(className): - fact.registerPluginClass(six.b(name), className) + if name==None: + fact.registerPluginClass(className) + else: + fact.registerPluginClass(six.b(name), className) else: - fact.registerPlugin(six.b(name), six.b(className)) + if name==None: + fact.registerPlugin(six.b(className)) + else: + fact.registerPlugin(six.b(name), six.b(className)) def get_registered(): return fact.getRegistered() |