stevedore 1.0.0.0a1

What is stevedore?

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.

What’s New?

  • use six.add_metaclass for better python 3 compatibility
  • raise by default on import failure in the DriverManager

Installing

Visit the stevedore project page for download links and installation
instructions.

stevedore 0.15

What is stevedore?

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.

What’s New?

  • Only log errors from loading plugins if no error handler callback is
    provided.

Installing

Visit the stevedore project page for download links and installation
instructions.

stevedore 0.14

What is stevedore?

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.

What’s New?

  • Provide an option to control requirements checking when loading
    plugins, and disable it by default. This removes protection against
    loading the wrong version of a plugin, or that plugin’s
    dependencies.

Installing

Visit the stevedore project page for download links and
installation instructions.

stevedore 0.13

What is stevedore?

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.

What’s New?

  • Deprecate TestExtensionManager and replace with
    make_test_instance() class method to provide test classes that
    behave more like the production class, while still allowing the
    extensions to be injected for testing. (contributed by drocco-007)
  • Include a work-around to avoid a cpython bug with atexit
    (#15881). (contributed by philiptzou)
  • Update documentation to refer to setuptools instead of
    distribute. (contributed by westurner)
  • Add pypy to the list of default test configurations.

Installing

Visit the stevedore project page for download links and
installation instructions.

stevedore 0.12

What is stevedore?

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.

What’s New?

  • Fixes an exception when reporting on an error where multiple drivers
    have the same name (bug 25, solution provided by clayg).
  • Switch packaging to use pbr.
  • Add map_method() API to controllers.

Installing

Visit the stevedore project page for download links and
installation instructions.

stevedore 0.11

What is stevedore?

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.

What’s New?

  • Fixes logging configuration under Python 2.6 with a NullHandler.

Installing

Visit the stevedore project page for download links and
installation instructions.

stevedore 0.10

What is stevedore?

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.

What’s New?

  • Adds propagate_map_exceptions parameter to all of the extension
    managers which specifies whether exceptions are propagated up
    through the map call or logged and then ignored. The default is to
    preserve the current behavior of logging and ignoring exceptions.
    Christopher Yeoh <cyeoh@au1.ibm.com>

Installing

Visit the stevedore project page for download links and
installation instructions.

Dynamic Code Patterns: Extending Your Applications with Plugins

My second presentation from PyCon 2013 is available online:

Python makes loading code dynamically easy, allowing you to
configure and extend your application by discovering and loading
extensions at runtime. This presentation will discuss the techniques
for dynamic code loading used in several well-known applications and
weigh the pros and cons of each approach.