Manage dynamic plugins for Python applications
Go to file
Stephen Finucane 7eca3f5661 Remove Extension.extras
The behavior of the 'EntryPoint.extras` attribute that this exposes has
changed in recent versions of 'importlib_metadata'/'importlib.metadata'.
In change Iff536d4f4267efbebc4be1e7e5da8a9fde39f79b we applied a
temporary fix to preserve the legacy behavior on these newer versions,
however, given that this is actually a deprecated attribute [1], the
best long-term option seems to be not exposing things. Do just that.

[1] https://packaging.python.org/en/latest/specifications/entry-points/#data-model

Change-Id: Id772d9f002e6945666685138bdef8f8ca32b5229
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-10-04 17:26:32 +01:00
doc Merge "Adding pre-commit" 2020-10-05 16:59:20 +00:00
releasenotes Remove Extension.extras 2022-10-04 17:26:32 +01:00
stevedore Remove Extension.extras 2022-10-04 17:26:32 +01:00
.gitignore Drop Python 2.7 support 2020-04-21 15:14:10 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:31:04 +00:00
.pre-commit-config.yaml Move flake8 as a pre-commit local target. 2021-03-23 13:11:54 +01:00
.stestr.conf Switch to stestr 2018-07-05 18:04:48 +07:00
.zuul.yaml Add Python3 zed unit tests 2022-03-04 17:20:49 +00:00
bindep.txt Add local bindep.txt 2019-06-27 12:59:31 +02:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:40 +00:00
LICENSE add license 2012-06-19 14:33:24 -04:00
README.rst update git.openstack.org to opendev 2019-04-25 01:07:11 +00:00
requirements.txt Fix remaining logic to support Python 3.6/7 2022-06-21 21:54:06 +09:00
setup.cfg Drop python3.6/3.7 support in testing runtime 2022-05-05 16:02:13 +02:00
setup.py Drop Python 2.7 support 2020-04-21 15:14:10 +01:00
test-requirements.txt Adding pre-commit 2020-09-15 13:40:37 +02:00
tox.ini Remove lower-constraints remnants 2021-04-16 11:03:09 +00:00

stevedore -- Manage dynamic plugins for Python applications

Latest Version

image

Python makes loading code dynamically easy, allowing you to configure and extend your application by discovering and loading extensions ("plugins") at runtime. Many applications implement their own library for doing this, using __import__ or importlib. stevedore avoids creating yet another extension mechanism by building on top of setuptools entry points. The code for managing entry points tends to be repetitive, though, so stevedore provides manager classes for implementing common patterns for using dynamically loaded extensions.