123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- Metadata-Version: 2.1
- Name: pluggy
- Version: 1.0.0
- Summary: plugin and hook calling mechanisms for python
- Home-page: https://github.com/pytest-dev/pluggy
- Author: Holger Krekel
- Author-email: holger@merlinux.eu
- License: MIT
- Platform: unix
- Platform: linux
- Platform: osx
- Platform: win32
- Classifier: Development Status :: 6 - Mature
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: MIT License
- Classifier: Operating System :: POSIX
- Classifier: Operating System :: Microsoft :: Windows
- Classifier: Operating System :: MacOS :: MacOS X
- Classifier: Topic :: Software Development :: Testing
- Classifier: Topic :: Software Development :: Libraries
- Classifier: Topic :: Utilities
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3 :: Only
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: 3.8
- Classifier: Programming Language :: Python :: 3.9
- Requires-Python: >=3.6
- Description-Content-Type: text/x-rst
- License-File: LICENSE
- Requires-Dist: importlib-metadata (>=0.12) ; python_version < "3.8"
- Provides-Extra: dev
- Requires-Dist: pre-commit ; extra == 'dev'
- Requires-Dist: tox ; extra == 'dev'
- Provides-Extra: testing
- Requires-Dist: pytest ; extra == 'testing'
- Requires-Dist: pytest-benchmark ; extra == 'testing'
- ====================================================
- pluggy - A minimalist production ready plugin system
- ====================================================
- |pypi| |conda-forge| |versions| |github-actions| |gitter| |black| |codecov|
- This is the core framework used by the `pytest`_, `tox`_, and `devpi`_ projects.
- Please `read the docs`_ to learn more!
- A definitive example
- ====================
- .. code-block:: python
- import pluggy
- hookspec = pluggy.HookspecMarker("myproject")
- hookimpl = pluggy.HookimplMarker("myproject")
- class MySpec:
- """A hook specification namespace."""
- @hookspec
- def myhook(self, arg1, arg2):
- """My special little hook that you can customize."""
- class Plugin_1:
- """A hook implementation namespace."""
- @hookimpl
- def myhook(self, arg1, arg2):
- print("inside Plugin_1.myhook()")
- return arg1 + arg2
- class Plugin_2:
- """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)
- Running this directly gets us::
- $ python docs/examples/toy-example.py
- inside Plugin_2.myhook()
- inside Plugin_1.myhook()
- [-1, 3]
- .. badges
- .. |pypi| image:: https://img.shields.io/pypi/v/pluggy.svg
- :target: https://pypi.org/pypi/pluggy
- .. |versions| image:: https://img.shields.io/pypi/pyversions/pluggy.svg
- :target: https://pypi.org/pypi/pluggy
- .. |github-actions| image:: https://github.com/pytest-dev/pluggy/workflows/main/badge.svg
- :target: https://github.com/pytest-dev/pluggy/actions
- .. |conda-forge| image:: https://img.shields.io/conda/vn/conda-forge/pluggy.svg
- :target: https://anaconda.org/conda-forge/pytest
- .. |gitter| image:: https://badges.gitter.im/pytest-dev/pluggy.svg
- :alt: Join the chat at https://gitter.im/pytest-dev/pluggy
- :target: https://gitter.im/pytest-dev/pluggy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
- .. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
- :target: https://github.com/ambv/black
- .. |codecov| image:: https://codecov.io/gh/pytest-dev/pluggy/branch/master/graph/badge.svg
- :target: https://codecov.io/gh/pytest-dev/pluggy
- :alt: Code coverage Status
- .. links
- .. _pytest:
- http://pytest.org
- .. _tox:
- https://tox.readthedocs.org
- .. _devpi:
- http://doc.devpi.net
- .. _read the docs:
- https://pluggy.readthedocs.io/en/latest/
|