stevedore – Manage Dynamic Plugins for Python Applications — stevedore 0.11.a6.gf4c43cc documentation

### Navigation

- index
- next |
- stevedore 0.11.a6.gf4c43cc documentation »

# stevedore – Manage Dynamic Plugins for Python Applications

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.

Contents:

- Patterns for Loading
  - Drivers – Single Name, Single Entry Point
  - Hooks – Single Name, Many Entry Points
  - Extensions – Many Names, Many Entry Points
- Patterns for Enabling
  - Enabled Through Installation
  - Enabled Explicitly
  - Self-Enabled
- Using Stevedore in Your Application
  - Guidelines for Naming Plugins
    - Names and Namespaces
  - Creating Plugins
    - Example Plugin Set
    - A Plugin Base Class
    - Concrete Plugins
    - Registering the Plugins
    - setuptools Metadata
  - Loading the Plugins
    - Loading Drivers
    - Loading Extensions
    - Why Not Call Plugins Directly?
  - Testing
- Extension Manager Classes
  - DriverManager
  - HookManager
  - NamedExtensionManager
  - EnabledExtensionManager
  - DispatchExtensionManager
  - NameDispatchExtensionManager
  - ExtensionManager
  - Extension
  - TestExtensionManager
- Installation
  - Python Versions
  - Basic Installation
  - Download
  - Source Code
  - Reporting Bugs
- Dynamic Code Patterns: Extending Your Applications with Plugins
  - Why Use Plugins?
  - Requirements for Ceilometer
  - Other Plugin-based Applications
  - Discovery
  - Enabling
  - Importing
  - Application/Plugin Integration
  - API Enforcement
  - Invocation
  - Ceilometer Design
    - Discovery and Import
    - Enabling
    - Integration
    - API Enforcement
    - Invocation
  - Conclusions
- History

## Indices and tables

- Index
- Module Index
- Search Page

### Navigation

- index
- next |
- stevedore 0.11.a6.gf4c43cc documentation »