Manage dynamic plugins for Python applications
Go to file
Daniel Bengtsson 53838531be Move flake8 as a pre-commit local target.
The goal here is to avoid conflicts between flake8 and hacking version each
2 days.

Inspired from nova's approach[1].

The flake8 version to install will be determined by hacking and
requirements[2] will stay aligned instead of relying on different versions.

[1] https://opendev.org/openstack/nova/src/branch/master/.pre-commit-config.yaml#L26-L35
[2] https://opendev.org/openstack/hacking/src/branch/master/requirements.txt#L1

Change-Id: I9ffd46865477b3fa7d43258d67dd0ec224ee6467
2021-03-23 13:11:54 +01:00
doc Merge "Adding pre-commit" 2020-10-05 16:59:20 +00:00
releasenotes Merge "Fix cache dir flooding when running from /tmp" 2020-11-05 22:10:11 +00:00
stevedore Merge "Fix cache dir flooding when running from /tmp" 2020-11-05 22:10:11 +00: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 Dropping lower constraints testing 2020-12-18 15:15:29 +01: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
bindep.txt Add local bindep.txt 2019-06-27 12:59:31 +02:00
lower-constraints.txt switch to importlib.metadata package 2020-07-06 08:39:52 -04:00
requirements.txt switch to importlib.metadata package 2020-07-06 08:39:52 -04:00
setup.cfg Drop Python 2.7 support 2020-04-21 15:14:10 +01: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 Merge "Use TOX_CONSTRAINTS_FILE" 2021-01-22 11:19:38 +00:00

README.rst

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.