"""Middleware classes to process messages on their way in and out of workers.
"""

from vumi.middleware.base import (
    TransportMiddleware, ApplicationMiddleware, MiddlewareStack,
    create_middlewares_from_config, setup_middlewares_from_config)

__all__ = [
    'TransportMiddleware', 'ApplicationMiddleware', 'MiddlewareStack',
    'create_middlewares_from_config', 'setup_middlewares_from_config']

@@ -114,16 +114,32 @@
 rt (%0A   
+ BaseMiddleware,
  Transpo
@@ -174,16 +174,20 @@
 dleware,
+%0A   
  Middlew
@@ -195,20 +195,16 @@
 reStack,
-%0A   
  create_
@@ -227,16 +227,20 @@
 _config,
+%0A   
  setup_m
@@ -279,16 +279,34 @@
  = %5B%0A   
+ 'BaseMiddleware',
  'Transp
@@ -345,16 +345,20 @@
 leware',
+%0A   
  'Middle
@@ -368,20 +368,16 @@
 eStack',
-%0A   
  'create
@@ -402,16 +402,20 @@
 config',
+%0A   
  'setup_

Add BaseMiddleware to vumi.middleware API for 3rd-party middleware that wants to support both transports and applications.