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
HookResultobject and hook call loop, with ability to retrieve theHookImplementationresponsible 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_metadatabackport withimportlib.metadatafrom 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_resourcestoimportlib-metadatafor entrypoint detection for improved performance and import time. This time with.eggsupport.
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.egginstalls.
pluggy 0.10.0 (2019-05-07)
Features
#199 <https://github.com/pytest-dev/pluggy/issues/199>_: Switch frompkg_resourcestoimportlib-metadatafor 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_entrypointsnow accepts anameparameter that when given will load only entry points with that name.PluginManager.load_setuptools_entrypointsalso 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 internalvarnamesfunction for PyPy3.
pluggy 0.8.1 (2018-11-09)
Trivial/Internal Changes
#166 <https://github.com/pytest-dev/pluggy/issues/166>_: Addstacklevel=2to 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 theimplprefixkwarg toPluginManagerand instead expect users to start using explicitHookimplMarkereverywhere.
Features
-
#122 <https://github.com/pytest-dev/pluggy/issues/122>_: Add.pluginmember toPluginValidationErrorto 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 theprocarg even when the default isNoneresulting in aTypeError. -
#160 <https://github.com/pytest-dev/pluggy/issues/160>_: Fix problem when handlingVersionConflicterrors 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>_: Automatesetuptoolswheels 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 usingtowncrierand a customtoxenvironment 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
_Resultobjects 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
_Multicallto 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
inspectbased 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
firstresultwrappers 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
getattrofDeprecationWarningfrom thewarningsmodule. Thanks to@nicoddemus_ for the PR#77_. -
hide
pytesttracebacks 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
firstresulthooks returnNoneresults. 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@tgoodletalso modernized the varnames implementation. -
resolve
#32: split up the test set into multiple modules. Thanks to@RonnyPfannschmidtfor the PR and@tgoodlet_ for the initial request. -
resolve
#14: add full sphinx docs. Thanks to@tgoodletfor PR#39_. -
add hook call mismatch warnings. Thanks to
@tgoodlet_ for the PR#42_. -
resolve
#44: move to new-style classes. Thanks to@MichalTHEDUDEfor PR#46_. -
add baseline benchmarking/speed tests using
pytest-benchmarkin 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
hookimplis called with positional args. Thanks to@RonnyPfannschmidt_ for the issue and@tgoodlet_ for PR#60_. -
fix the
firstresulttest 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_: specificHookCallErrorexception 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
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 napari-plugin-engine-0.1.6.tar.gz.
File metadata
- Download URL: napari-plugin-engine-0.1.6.tar.gz
- Upload date:
- Size: 59.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a447d16c9e011ace2d8a4e0384b79c2cc4759cb2a94cc309f8000785d7fdba9
|
|
| MD5 |
e46eed742d655c87604c9de2462bf7f2
|
|
| BLAKE2b-256 |
d0c4303ef73d2e8cca7d66b68bce91c8bba40ff98895e8570e4e7cf3d564de07
|
File details
Details for the file napari_plugin_engine-0.1.6-py2.py3-none-any.whl.
File metadata
- Download URL: napari_plugin_engine-0.1.6-py2.py3-none-any.whl
- Upload date:
- Size: 35.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
952975958d222a4ca453a37ac30c93de31021a9498ae09864016fe19e6e7e00e
|
|
| MD5 |
dc822f0a1b9c165429b808ca824aa04f
|
|
| BLAKE2b-256 |
430a63a0738b98430d728875838354b0b7c46b3992b1e0c7d74db290bdeb4acf
|