Skip to content

getslash/gossip

Repository files navigation

Build Status Build Status
Supported Versions Supported Versions
Latest Version Latest Version

Overview

gossip is a library implementing a basic hook mechanism for implementing callbacks. It provides flexible configuration, hook namespaces and error handling strategies.

Installation

$ pip install gossip

Usage

The simplest use case when we want to register a callback to be called later. We start by registering a callback through gossip.register:

>>> from __future__ import print_function
>>> import gossip
>>> @gossip.register('hook_name')
... def func():
...     print('Called')

Now we can call the hook:

>>> gossip.trigger('hook_name')
Called

And There's A Lot More!

Plain publish/subscribe is just the tip of the iceberg. Gossip is geared towards implementing complex plugin systems, and supports many more advanced features, such as:

  1. Token (bulk) unregistration of hooks
  2. Hook dependencies - control the order of hook callbacks, either implicitly or explicitly
  3. Non-reentrant hooks
  4. Custom exception handling strategies

And much more. For more information, please refer to the documentation

Licence

BSD3