| VERSION | DOWNLOADS | TESTS | COVERAGE |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Pluginloader is a library to allow an easy way to load plugins. They can be managed by interfaces or just method validators.
- Each plugin can be instanciated several times.
- Customizable filter to select if a class should be loaded as a plugin.
- Sandboxed: plugins cannot access the main program or other plugins by default, because they are loaded in isolated environments.
Two options: to install it in your system/project:
pip install pluginloader
You can load all plugins in a file, just doing:
loader = PluginLoader()
plugins = loader.load_file('plugins.py')With those simple lines you will have in the variable plugins a dictionary with each class inside the plugins.py file as key and a factory as value.
Let's see an example. Using the plugins.py file:
class Foo(object):
passWe can have an object of that class just with:
loader = PluginLoader()
plugins = loader.load_file('plugins.py')
instance1 = plugins['Foo']()
instance2 = plugins['Foo']()Simple and easy.
This is a simple module with a simple API. It just contains one class, PluginLoader, with these public methods:
Loads all plugins in a file.
Parameters:
filename: File name to be loaded.onlyif: Value or function that will be called with each class found. It will skip the plugin if this function returnsFalse.
Loads all plugins in a directory.
Parameters:
path: Path where plugins are in.onlyif: Value or function that will be called with each class found. It will skip the plugin if this function returnsFalse.recursive: Boolean value to allow recursive read of directories.
Links will always be ignored.
Copyright (c) 2014 Miguel Ángel García (@magmax9).
Licensed under the MIT license.



