==================================================== pluggy - 一个极简的生产就绪插件系统
|pypi| |conda-forge| |versions| |github-actions| |gitter| |black| |codecov|
这是 pytest
、tox
和 devpi
_ 项目使用的核心框架。
请阅读文档以了解更多信息!
一个明确的示例
.. code-block:: python
import pluggy
hookspec = pluggy.HookspecMarker("myproject")
hookimpl = pluggy.HookimplMarker("myproject")
class MySpec:
"""钩子规范命名空间。"""
@hookspec
def myhook(self, arg1, arg2):
"""我的特殊小钩子,你可以自定义。"""
class Plugin_1:
"""钩子实现命名空间。"""
@hookimpl
def myhook(self, arg1, arg2):
print("在 Plugin_1.myhook() 内部")
return arg1 + arg2
class Plugin_2:
"""第二个钩子实现命名空间。"""
@hookimpl
def myhook(self, arg1, arg2):
print("在 Plugin_2.myhook() 内部")
return arg1 - arg2
# 创建一个管理器并添加规范
pm = pluggy.PluginManager("myproject")
pm.add_hookspecs(MySpec)
# 注册插件
pm.register(Plugin_1())
pm.register(Plugin_2())
# 调用我们的 ``myhook`` 钩子
results = pm.hook.myhook(arg1=1, arg2=2)
print(results)
直接运行得到以下结果::
$ python docs/examples/toy-example.py
在 Plugin_2.myhook() 内部
在 Plugin_1.myhook() 内部
[-1, 3]
.. 徽章
.. |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: 加入 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: 代码覆盖率状态
.. 链接 .. _pytest: http://pytest.org .. _tox: https://tox.readthedocs.org .. _devpi: http://doc.devpi.net .. _read the docs: https://pluggy.readthedocs.io/en/latest/
支持 pluggy
Open Collective
_ 是一个用于开放和透明社区的在线筹资平台。
它提供了筹集资金并完全透明地分享财务状况的工具。
对于想要直接向项目进行一次性或每月捐赠的个人和公司来说,这是首选平台。
pluggy
是 pytest-dev
项目的一部分,更多详情请参见 pytest collective
_。
.. _Open Collective: https://opencollective.com .. _pytest collective: https://opencollective.com/pytest