skip to navigation
skip to content

Not Logged In

pluginloader 0.1.0

Library to manage plugins/extensions in your applications.

Latest Version: 0.1.3

VERSION DOWNLOADS TESTS COVERAGE

Goal and Philosophy

Pluginloader is a library to allow an easy way to load plugins. They can be managed by interfaces or just method validators.

Features

  • 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.

Documentation

Installation

Two options: to install it in your system/project:

pip install pluginloader

Usage

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):
    pass

We 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.

API

This is a simple module with a simple API. It just contains one class, PluginLoader, with these public methods:

load_file(filename, onlyif=None)

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 returns False.

load_directory(path, onlyif=None, recursive=False))

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 returns False.
  • recursive: Boolean value to allow recursive read of directories.

Links will always be ignored.

License

Copyright (c) 2014 Miguel Ángel García (@magmax9).

Licensed under the MIT license.

 
File Type Py Version Uploaded on Size
pluginloader-0.1.0.tar.gz (md5) Source 2014-05-22 3KB
  • Downloads (All Versions):
  • 0 downloads in the last day
  • 41 downloads in the last week
  • 244 downloads in the last month