ploogz: A simple python plugin framework.

Ploog it in and go.

To get the source, visit the github repository.

Indices and tables

Quickstart

ploogz is a pretty simple plugin framework, so there isn’t a whole lot to know to get started. Step one is to extend the ploogz.ploogins.Ploogin class and override the important methods to create an object that can do some useful work. (In the code blocks below, we don’t include docstrings to focus on the code itself… but you should always document your code!)

from ploogz.ploogins import Ploogin, upon_setup, upon_activate, upon_teardown


class MyUsefulThing(Ploogin):

    def __init__(self):
        super().__init__(name='My Useful Thing')

    @upon_setup
    def get_ready(self):
        print("Getting ready!")

    @upon_activate
    def get_busy(self):
        print("Here we go!!")

    @upon_teardown
    def wrap_it_up(self):
        print("Good night.")

You can place this class in a python file (with a .py extension) in a directory along with other files containing other ploogins.

When it comes time to load these useful classes into an application, you’ll need a ploogz.ploogins.PlooginHost.

from ploogz.ploogins import PlooginHost

host = PlooginHost(search_path=['/path/to/ploogins/directory', '/another/path/to/more/ploogins'])
host.load()
for ploogin in host.ploogins:
    ploogin.setup()
for ploogin in host.ploogins:
    ploogin.activate()
# When you're all done, you can call teardown() on the host which will tear down all the ploogins.
host.teardown()

In the simplest terms, that’s all there is to it. This library is in the early stages of its development and there will likely be some additions, but these examples demonstrate the simple approach we seek.