Skip to main content

plugin and hook calling mechanisms for python

Project description

pypi anaconda versions travis appveyor

This is the core framework used by the pytest, tox, and devpi projects.

Please read the docs to learn more!

A definitive example

import pluggy

hookspec = pluggy.HookspecMarker("myproject")
hookimpl = pluggy.HookimplMarker("myproject")


class MySpec(object):
    """A hook specification namespace.
    """
    @hookspec
    def myhook(self, arg1, arg2):
        """My special little hook that you can customize.
        """


class Plugin_1(object):
    """A hook implementation namespace.
    """
    @hookimpl
    def myhook(self, arg1, arg2):
        print("inside Plugin_1.myhook()")
        return arg1 + arg2


class Plugin_2(object):
    """A 2nd hook implementation namespace.
    """
    @hookimpl
    def myhook(self, arg1, arg2):
        print("inside Plugin_2.myhook()")
        return arg1 - arg2


# create a manager and add the spec
pm = pluggy.PluginManager("myproject")
pm.add_hookspecs(MySpec)

# register plugins
pm.register(Plugin_1())
pm.register(Plugin_2())

# call our `myhook` hook
results = pm.hook.myhook(arg1=1, arg2=2)
print(results)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pluggy-0.5.1.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pluggy-0.5.1-py2.py3-none-any.whl (13.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pluggy-0.5.1.tar.gz.

File metadata

  • Download URL: pluggy-0.5.1.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pluggy-0.5.1.tar.gz
Algorithm Hash digest
SHA256 39c06527c94775911c4a3fc0ad409a1ba48ec509b0054590eb65d967964eec3a
MD5 48185bd2bc3f439b9de6ad18fe64fe4e
BLAKE2b-256 07ca597690bff168f08291819c96497d077017f9794d04ae9853dd1f9eda8f73

See more details on using hashes here.

File details

Details for the file pluggy-0.5.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pluggy-0.5.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 359f6d0fbcbb27950eb89909910ce909c90b834bfec8c4b1ca0840f6ba398bfb
MD5 17cb75a831fd2cd24f752abb09d20e8e
BLAKE2b-256 aa2b11b53318ae1c96f163d0317ddf10f2b1892b9b38ef56ab6aad554c68a4f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page