From 597e59978a98e2d5aec88e68e8d315d0ef863de6 Mon Sep 17 00:00:00 2001 From: ianb Date: Mon, 16 May 2005 04:48:52 +0000 Subject: Renamed error_middleware to errormiddleware; added middleware configuration value; created makeapp with helper functions; refactored server.py to be a bit simpler; consolidated some pyconfig methods --- paste/makeapp.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 paste/makeapp.py (limited to 'paste/makeapp.py') diff --git a/paste/makeapp.py b/paste/makeapp.py new file mode 100644 index 0000000..34d1e1c --- /dev/null +++ b/paste/makeapp.py @@ -0,0 +1,37 @@ +""" +Helper functions for framework build_application functions. +""" + +from paste.util import import_string +from paste import lint +from paste import errormiddleware +from paste import configmiddleware + +def apply_conf_middleware(app, conf, first_middleware=()): + """ + Applies any middleware that the configuration specifies, + returning the wrapped configuration. + + If first_middleware is given, this middleware is applied most + closely to the application (before configuration middleware). + """ + all_middleware = list(first_middleware) + all_middleware.extend(conf.get('middleware', [])) + for middleware in all_middleware: + # @@: Should this use plugins too? + if isinstance(middleware, (str, unicode)): + middleware = import_string.eval_import(middleware) + app = middleware(app) + if conf.get('lint', False): + app = lint.middleware(app) + return app + +def apply_default_middleware(app, conf): + """ + Applies middleware that is generally always used. + """ + app = errormiddleware.ErrorMiddleware(app) + if conf.get('lint', False): + app = lint.middleware(app) + app = configmiddleware.config_middleware(app, conf) + return app -- cgit v1.2.1