34d0a54185
The badge hosting at 'pypip.in' has been broken for a while now, it was supposed to be fixed in the following PR(s): - https://github.com/badges/pypipins/issues/39 - https://github.com/badges/pypipins/issues/38 - https://github.com/badges/pypipins/issues/37 That does not appear to have actually happened and/or is not getting addressed, so switch to a more reliable badge hosting site that provides the same badge information. Change-Id: I93c43d6f09bc5240ce21206ddaf61b30227a88f4
30 lines
1.3 KiB
ReStructuredText
30 lines
1.3 KiB
ReStructuredText
===========================================================
|
|
stevedore -- Manage dynamic plugins for Python applications
|
|
===========================================================
|
|
|
|
.. image:: https://img.shields.io/pypi/v/stevedore.svg
|
|
:target: https://pypi.python.org/pypi/stevedore/
|
|
:alt: Latest Version
|
|
|
|
.. image:: https://img.shields.io/pypi/dm/stevedore.svg
|
|
:target: https://pypi.python.org/pypi/stevedore/
|
|
:alt: Downloads
|
|
|
|
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.
|
|
|
|
.. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
|
|
|
|
* Free software: Apache license
|
|
* Documentation: http://docs.openstack.org/developer/stevedore
|
|
* Source: http://git.openstack.org/cgit/openstack/stevedore
|
|
* Bugs: https://bugs.launchpad.net/python-stevedore
|
|
|