napari plugin engine, fork of pluggy
Project description
napari plugin engine
napari-plugin-engine
is a fork of pluggy,
modified by the napari team.
There are some API and feature changes, including:
- discovery via naming convention as well as entry_points
- support for reordering of hook calls after registration.
- enhanced API for retrieving plugin package metadata.
- modified plugin call and registration exception handling
- modified
HookResult
object and hook call loop, with ability to retrieve theHookImplementation
responsible for the result. - lazy plugin discovery
- some changes to variable and attribute naming
- removed all deprecated code
- type annotations on everything
- pytest fixtures for testing
- a couple napari-specific convenience imports
For usage overview and a reference for the napari-plugin-engine
API, see our
Documentation
(see also: the pluggy documentation)
install
pip install napari-plugin-engine
Usage
see documentation
========= Changelog
forked into napari-plugin-engine (2020-04-20) ===============================-
.. towncrier release notes start
pluggy 0.13.1 (2019-11-21)
Trivial/Internal Changes
#236 <https://github.com/pytest-dev/pluggy/pull/236>
_: Improved documentation, especially with regard to references.
pluggy 0.13.0 (2019-09-10)
Trivial/Internal Changes
#222 <https://github.com/pytest-dev/pluggy/issues/222>
_: Replaceimportlib_metadata
backport withimportlib.metadata
from the standard library on Python 3.8+.
pluggy 0.12.0 (2019-05-27)
Features
#215 <https://github.com/pytest-dev/pluggy/issues/215>
_: Switch frompkg_resources
toimportlib-metadata
for entrypoint detection for improved performance and import time. This time with.egg
support.
pluggy 0.11.0 (2019-05-07)
Bug Fixes
#205 <https://github.com/pytest-dev/pluggy/issues/205>
_: Revert changes made in 0.10.0 release breaking.egg
installs.
pluggy 0.10.0 (2019-05-07)
Features
#199 <https://github.com/pytest-dev/pluggy/issues/199>
_: Switch frompkg_resources
toimportlib-metadata
for entrypoint detection for improved performance and import time.
pluggy 0.9.0 (2019-02-21)
Features
-
#189 <https://github.com/pytest-dev/pluggy/issues/189>
_:PluginManager.load_setuptools_entrypoints
now accepts aname
parameter that when given will load only entry points with that name.PluginManager.load_setuptools_entrypoints
also now returns the number of plugins loaded by the call, as opposed to the number of all plugins loaded by all calls to this method.
Bug Fixes
#187 <https://github.com/pytest-dev/pluggy/issues/187>
_: Fix internalvarnames
function for PyPy3.
pluggy 0.8.1 (2018-11-09)
Trivial/Internal Changes
#166 <https://github.com/pytest-dev/pluggy/issues/166>
_: Addstacklevel=2
to implprefix warning so that the reported location of warning is the caller of PluginManager.
pluggy 0.8.0 (2018-10-15)
Features
#177 <https://github.com/pytest-dev/pluggy/issues/177>
_: Addget_hookimpls()
method to hook callers.
Trivial/Internal Changes
-
#165 <https://github.com/pytest-dev/pluggy/issues/165>
_: Add changelog in long package description and documentation. -
#172 <https://github.com/pytest-dev/pluggy/issues/172>
_: Add a test exemplifying the opt-in nature of spec defined args. -
#57 <https://github.com/pytest-dev/pluggy/issues/57>
_: Encapsulate hook specifications in a type for easier introspection.
pluggy 0.7.1 (2018-07-28)
Deprecations and Removals
#116 <https://github.com/pytest-dev/pluggy/issues/116>
_: Deprecate theimplprefix
kwarg toPluginManager
and instead expect users to start using explicitHookimplMarker
everywhere.
Features
-
#122 <https://github.com/pytest-dev/pluggy/issues/122>
_: Add.plugin
member toPluginValidationError
to access failing plugin during post-mortem. -
#138 <https://github.com/pytest-dev/pluggy/issues/138>
_: Add per implementation warnings support for hookspecs allowing for both deprecation and future warnings of legacy and (future) experimental hooks respectively.
Bug Fixes
-
#110 <https://github.com/pytest-dev/pluggy/issues/110>
_: Fix a bug where_HookCaller.call_historic()
would call theproc
arg even when the default isNone
resulting in aTypeError
. -
#160 <https://github.com/pytest-dev/pluggy/issues/160>
_: Fix problem when handlingVersionConflict
errors when loading setuptools plugins.
Improved Documentation
-
#123 <https://github.com/pytest-dev/pluggy/issues/123>
_: Document how exceptions are handled and how the hook call loop terminates immediately on the first error which is then delivered to any surrounding wrappers. -
#136 <https://github.com/pytest-dev/pluggy/issues/136>
_: Docs rework including a much better introduction and comprehensive example set for new users. A big thanks goes out to @obestwalter for the great work!
Trivial/Internal Changes
-
#117 <https://github.com/pytest-dev/pluggy/issues/117>
_: Break up the main monolithic package modules into separate modules by concern -
#131 <https://github.com/pytest-dev/pluggy/issues/131>
_: Automatesetuptools
wheels building and PyPi upload using TravisCI. -
#153 <https://github.com/pytest-dev/pluggy/issues/153>
_: Reorganize tests more appropriately by modules relating to each internal component/feature. This is in an effort to avoid (future) duplication and better separation of concerns in the test set. -
#156 <https://github.com/pytest-dev/pluggy/issues/156>
_: AddHookImpl.__repr__()
for better debugging. -
#66 <https://github.com/pytest-dev/pluggy/issues/66>
_: Start usingtowncrier
and a customtox
environment to prepare releases!
pluggy 0.7.0 (Unreleased)
#160 <https://github.com/pytest-dev/pluggy/issues/160>
_: We discovered a deployment issue so this version was never released to PyPI, only the tag exists.
pluggy 0.6.0 (2017-11-24)
- Add CI testing for the features, release, and master
branches of
pytest
(PR#79
_). - Document public API for
_Result
objects passed to wrappers (PR#85
_). - Document and test hook LIFO ordering (PR
#85
_). - Turn warnings into errors in test suite (PR
#89
_). - Deprecate
_Result.result
(PR#88
_). - Convert
_Multicall
to a simple function distinguishing it from the legacy version (PR#90
_). - Resolve E741 errors (PR
#96
_). - Test and bug fix for unmarked hook collection (PRs
#97
_ and#102
_). - Drop support for EOL Python 2.6 and 3.3 (PR
#103
_). - Fix
inspect
based arg introspection on py3.6 (PR#94
_).
.. _#79: https://github.com/pytest-dev/pluggy/pull/79 .. _#85: https://github.com/pytest-dev/pluggy/pull/85 .. _#88: https://github.com/pytest-dev/pluggy/pull/88 .. _#89: https://github.com/pytest-dev/pluggy/pull/89 .. _#90: https://github.com/pytest-dev/pluggy/pull/90 .. _#94: https://github.com/pytest-dev/pluggy/pull/94 .. _#96: https://github.com/pytest-dev/pluggy/pull/96 .. _#97: https://github.com/pytest-dev/pluggy/pull/97 .. _#102: https://github.com/pytest-dev/pluggy/pull/102 .. _#103: https://github.com/pytest-dev/pluggy/pull/103
pluggy 0.5.2 (2017-09-06)
-
fix bug where
firstresult
wrappers were being sent an incorrectly configured_Result
(a list was set instead of a single value). Add tests to check for this as well as_Result.force_result()
behaviour. Thanks to@tgoodlet
_ for the PR#72
_. -
fix incorrect
getattr
ofDeprecationWarning
from thewarnings
module. Thanks to@nicoddemus
_ for the PR#77
_. -
hide
pytest
tracebacks in certain core routines. Thanks to@nicoddemus
_ for the PR#80
_.
.. _#72: https://github.com/pytest-dev/pluggy/pull/72 .. _#77: https://github.com/pytest-dev/pluggy/pull/77 .. _#80: https://github.com/pytest-dev/pluggy/pull/80
pluggy 0.5.1 (2017-08-29)
- fix a bug and add tests for case where
firstresult
hooks returnNone
results. Thanks to@RonnyPfannschmidt
_ and@tgoodlet
_ for the issue (#68
) and PR (#69
) respectively.
.. _#69: https://github.com/pytest-dev/pluggy/pull/69 .. _#68: https://github.com/pytest-dev/pluggy/issues/68
pluggy 0.5.0 (2017-08-28)
-
fix bug where callbacks for historic hooks would not be called for already registered plugins. Thanks
@vodik
_ for the PR and@hpk42
_ for further fixes. -
fix
#17
_ by considering only actual functions for hooks this removes the ability to register arbitrary callable objects which at first glance is a reasonable simplification, thanks@RonnyPfannschmidt
_ for report and pr. -
fix
#19
: allow registering hookspecs from instances. The PR from@tgoodlet
also modernized the varnames implementation. -
resolve
#32
: split up the test set into multiple modules. Thanks to@RonnyPfannschmidt
for the PR and@tgoodlet
_ for the initial request. -
resolve
#14
: add full sphinx docs. Thanks to@tgoodlet
for PR#39
_. -
add hook call mismatch warnings. Thanks to
@tgoodlet
_ for the PR#42
_. -
resolve
#44
: move to new-style classes. Thanks to@MichalTHEDUDE
for PR#46
_. -
add baseline benchmarking/speed tests using
pytest-benchmark
in PR#54
. Thanks to@tgoodlet
. -
update the README to showcase the API. Thanks to
@tgoodlet
_ for the issue and PR#55
_. -
deprecate
__multicall__
and add a faster call loop implementation. Thanks to@tgoodlet
_ for PR#58
_. -
raise a comprehensible error when a
hookimpl
is called with positional args. Thanks to@RonnyPfannschmidt
_ for the issue and@tgoodlet
_ for PR#60
_. -
fix the
firstresult
test making it more complete and remove a duplicate of that test. Thanks to@tgoodlet
_ for PR#62
_.
.. _#62: https://github.com/pytest-dev/pluggy/pull/62 .. _#60: https://github.com/pytest-dev/pluggy/pull/60 .. _#58: https://github.com/pytest-dev/pluggy/pull/58 .. _#55: https://github.com/pytest-dev/pluggy/pull/55 .. _#54: https://github.com/pytest-dev/pluggy/pull/54 .. _#46: https://github.com/pytest-dev/pluggy/pull/46 .. _#44: https://github.com/pytest-dev/pluggy/issues/44 .. _#42: https://github.com/pytest-dev/pluggy/pull/42 .. _#39: https://github.com/pytest-dev/pluggy/pull/39 .. _#32: https://github.com/pytest-dev/pluggy/pull/32 .. _#19: https://github.com/pytest-dev/pluggy/issues/19 .. _#17: https://github.com/pytest-dev/pluggy/issues/17 .. _#14: https://github.com/pytest-dev/pluggy/issues/14
pluggy 0.4.0 (2016-09-25)
-
add
has_plugin(name)
method to pluginmanager. thanks@nicoddemus
_. -
fix
#11
: make plugin parsing more resilient against exceptions from__getattr__
functions. Thanks@nicoddemus
. -
fix issue
#4
_: specificHookCallError
exception for when a hook call provides not enough arguments. -
better error message when loading setuptools entrypoints fails due to a
VersionConflict
. Thanks@blueyed
_.
.. _#11: https://github.com/pytest-dev/pluggy/issues/11 .. _#4: https://github.com/pytest-dev/pluggy/issues/4
pluggy 0.3.1 (2015-09-17)
- avoid using deprecated-in-python3.5 getargspec method. Thanks
@mdboom
_.
pluggy 0.3.0 (2015-05-07)
initial release
.. contributors .. _@hpk42: https://github.com/hpk42 .. _@tgoodlet: https://github.com/goodboy .. _@MichalTHEDUDE: https://github.com/MichalTHEDUDE .. _@vodik: https://github.com/vodik .. _@RonnyPfannschmidt: https://github.com/RonnyPfannschmidt .. _@blueyed: https://github.com/blueyed .. _@nicoddemus: https://github.com/nicoddemus .. _@mdboom: https://github.com/mdboom
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
Built Distribution
Hashes for napari-plugin-engine-0.1.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60da74d55be0c115c689d37f2ac4143bc1529e0810362e0f22149f3aeb39dba2 |
|
MD5 | a798083d30d86e0b38b6decf284b8dff |
|
BLAKE2b-256 | 330d8befd3e0704b02156666a96ec780a8eaf60378370bd28f28d0143799e4fb |
Hashes for napari_plugin_engine-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c5b0460d7043072cad3c79910d2054a0a916245b4fb2d641d1c391a9cd88040 |
|
MD5 | 8cbe7d751d3354284b6985f9ea7b360c |
|
BLAKE2b-256 | faec347f7b2d4307b1513f76c10ea20665cb677f02ddec88c39d8da21a80b337 |