plugin and hook calling mechanisms for python
Project description
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)
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39c06527c94775911c4a3fc0ad409a1ba48ec509b0054590eb65d967964eec3a
|
|
| MD5 |
48185bd2bc3f439b9de6ad18fe64fe4e
|
|
| BLAKE2b-256 |
07ca597690bff168f08291819c96497d077017f9794d04ae9853dd1f9eda8f73
|
File details
Details for the file pluggy-0.5.1-py2.py3-none-any.whl.
File metadata
- Download URL: pluggy-0.5.1-py2.py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
359f6d0fbcbb27950eb89909910ce909c90b834bfec8c4b1ca0840f6ba398bfb
|
|
| MD5 |
17cb75a831fd2cd24f752abb09d20e8e
|
|
| BLAKE2b-256 |
aa2b11b53318ae1c96f163d0317ddf10f2b1892b9b38ef56ab6aad554c68a4f2
|