Changelogs » Pluggy

PyUp Safety actively tracks 373,221 Python packages for vulnerabilities and notifies you when to upgrade.

Pluggy

1.0.0

=========================
  
  Deprecations and Removals
  -------------------------
  
  - `116 <https://github.com/pytest-dev/pluggy/issues/116>`_: Remove deprecated ``implprefix`` support.
  Decorate hook implementations using an instance of HookimplMarker instead.
  The deprecation was announced in release ``0.7.0``.
  
  
  - `120 <https://github.com/pytest-dev/pluggy/issues/120>`_: Remove the deprecated ``proc`` argument to ``call_historic``.
  Use ``result_callback`` instead, which has the same behavior.
  The deprecation was announced in release ``0.7.0``.
  
  
  - `265 <https://github.com/pytest-dev/pluggy/issues/265>`_: Remove the ``_Result.result`` property. Use ``_Result.get_result()`` instead.
  Note that unlike ``result``, ``get_result()`` raises the exception if the hook raised.
  The deprecation was announced in release ``0.6.0``.
  
  
  - `267 <https://github.com/pytest-dev/pluggy/issues/267>`_: Remove official support for Python 3.4.
  
  
  - `272 <https://github.com/pytest-dev/pluggy/issues/272>`_: Dropped support for Python 2.
  Continue to use pluggy 0.13.x for Python 2 support.
  
  
  - `308 <https://github.com/pytest-dev/pluggy/issues/308>`_: Remove official support for Python 3.5.
  
  
  - `313 <https://github.com/pytest-dev/pluggy/issues/313>`_: The internal ``pluggy.callers``, ``pluggy.manager`` and ``pluggy.hooks`` are now explicitly marked private by a ``_`` prefix (e.g. ``pluggy._callers``).
  Only API exported by the top-level ``pluggy`` module is considered public.
  
  
  - `59 <https://github.com/pytest-dev/pluggy/issues/59>`_: Remove legacy ``__multicall__`` recursive hook calling system.
  The deprecation was announced in release ``0.5.0``.
  
  
  
  Features
  --------
  
  - `282 <https://github.com/pytest-dev/pluggy/issues/282>`_: When registering a hookimpl which is declared as ``hookwrapper=True`` but whose
  function is not a generator function, a ``PluggyValidationError`` exception is
  now raised.
  
  Previously this problem would cause an error only later, when calling the hook.
  
  In the unlikely case that you have a hookwrapper that *returns* a generator
  instead of yielding directly, for example:
  
  .. code-block:: python
  
  def my_hook_real_implementation(arg):
  print("before")
  yield
  print("after")
  
  
  hookimpl(hookwrapper=True)
  def my_hook(arg):
  return my_hook_implementation(arg)
  
  change it to use ``yield from`` instead:
  
  .. code-block:: python
  
  hookimpl(hookwrapper=True)
  def my_hook(arg):
  yield from my_hook_implementation(arg)
  
  
  - `309 <https://github.com/pytest-dev/pluggy/issues/309>`_: Add official support for Python 3.9.

0.13.1

==========================
  
  Trivial/Internal Changes
  ------------------------
  
  - `236 <https://github.com/pytest-dev/pluggy/pull/236>`_: Improved documentation, especially with regard to references.

0.13.0

==========================
  
  Trivial/Internal Changes
  ------------------------
  
  - `222 <https://github.com/pytest-dev/pluggy/issues/222>`_: Replace ``importlib_metadata`` backport with ``importlib.metadata`` from the
  standard library on Python 3.8+.

0.12.0

==========================
  
  Features
  --------
  
  - `215 <https://github.com/pytest-dev/pluggy/issues/215>`_: Switch from ``pkg_resources`` to ``importlib-metadata`` for entrypoint detection for improved performance and import time.  This time with ``.egg`` support.

0.11.0

==========================
  
  Bug Fixes
  ---------
  
  - `205 <https://github.com/pytest-dev/pluggy/issues/205>`_: Revert changes made in 0.10.0 release breaking ``.egg`` installs.

0.10.0

==========================
  
  Features
  --------
  
  - `199 <https://github.com/pytest-dev/pluggy/issues/199>`_: Switch from ``pkg_resources`` to ``importlib-metadata`` for entrypoint detection for improved performance and import time.

0.9.0

=========================
  
  Features
  --------
  
  - `189 <https://github.com/pytest-dev/pluggy/issues/189>`_: ``PluginManager.load_setuptools_entrypoints`` now accepts a ``name`` 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 internal ``varnames`` function for PyPy3.

0.8.1

=========================
  
  Trivial/Internal Changes
  ------------------------
  
  - `166 <https://github.com/pytest-dev/pluggy/issues/166>`_: Add ``stacklevel=2`` to implprefix warning so that the reported location of warning is the caller of PluginManager.

0.8.0

=========================
  
  Features
  --------
  
  - `177 <https://github.com/pytest-dev/pluggy/issues/177>`_: Add ``get_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.

0.7.1

=========================
  
  Deprecations and Removals
  -------------------------
  
  - `116 <https://github.com/pytest-dev/pluggy/issues/116>`_: Deprecate the ``implprefix`` kwarg to ``PluginManager`` and instead
  expect users to start using explicit ``HookimplMarker`` everywhere.
  
  
  
  Features
  --------
  
  - `122 <https://github.com/pytest-dev/pluggy/issues/122>`_: Add ``.plugin`` member to ``PluginValidationError`` 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 the ``proc``
  arg even when the default is ``None`` resulting in a ``TypeError``.
  
  - `160 <https://github.com/pytest-dev/pluggy/issues/160>`_: Fix problem when handling ``VersionConflict`` 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>`_: Automate ``setuptools`` 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>`_: Add ``HookImpl.__repr__()`` for better debugging.
  
  
  - `66 <https://github.com/pytest-dev/pluggy/issues/66>`_: Start using ``towncrier`` and a custom ``tox`` environment to prepare releases!

0.7.0

=========================
  
  * `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.

0.6.0

=========================
  
  - 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

0.5.2

=========================
  
  - 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``  of ``DeprecationWarning`` from the ``warnings``
  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

0.5.1

=========================
  
  - fix a bug and add tests for case where ``firstresult`` hooks return
  ``None`` 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

0.5.0

=========================
  
  - 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

0.4.0

=========================
  
  - 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`_: specific ``HookCallError`` 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

0.3.1

=========================
  
  - avoid using deprecated-in-python3.5 getargspec method. Thanks
  `mdboom`_.

0.3.0

=========================
  
  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