Plugins

Plugin system for Stone Soup.

Stone Soup is able to import plugins using package metadata. Packages can register themselves for discovery by providing the entry_points argument to setup() in setup.py.

For example if you have a package named my_package and its setup.py file includes:

setup(
    ...
    entry_points={'stonesoup.plugins': 'my_plugin = my_package'}
    ...
)

Then Stone Soup will discover your plugin and load all of the registered entry points. It is possible to name your plugin the same name as your package name in setup(). Your plugin can be loaded using:

from stonesoup.plugins.my_plugin import MyClass

Note

When developing plugins for Stone Soup, entry_points must be associated with the stonesoup.plugins key in the entry_points dictionary.