Guest User

Untitled

a guest
Jun 6th, 2025
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.41 KB | Source Code | 0 0
  1. """Pylons middleware initialization"""
  2. from beaker.middleware import SessionMiddleware
  3. from paste.cascade import Cascade
  4. from paste.registry import RegistryManager
  5. from paste.urlparser import StaticURLParser
  6. from paste.deploy.converters import asbool
  7. from pylons.middleware import ErrorHandler, StatusCodeRedirect
  8. from pylons.wsgiapp import PylonsApp
  9. from routes.middleware import RoutesMiddleware
  10.  
  11. from pylonscoll6.config.environment import load_environment
  12.  
  13. def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
  14.     """Create a Pylons WSGI application and return it
  15.  
  16.    ``global_conf``
  17.        The inherited configuration for this application. Normally from
  18.        the [DEFAULT] section of the Paste ini file.
  19.  
  20.    ``full_stack``
  21.        Whether this application provides a full WSGI stack (by default,
  22.        meaning it handles its own exceptions and errors). Disable
  23.        full_stack when this application is "managed" by another WSGI
  24.        middleware.
  25.  
  26.    ``static_files``
  27.        Whether this application serves its own static files; disable
  28.        when another web server is responsible for serving them.
  29.  
  30.    ``app_conf``
  31.        The application's local configuration. Normally specified in
  32.        the [app:<name>] section of the Paste ini file (where <name>
  33.        defaults to main).
  34.  
  35.    """
  36.     # Configure the Pylons environment
  37.     config = load_environment(global_conf, app_conf)
  38.  
  39.     # The Pylons WSGI app
  40.     app = PylonsApp(config=config)
  41.  
  42.     # Routing/Session/Cache Middleware
  43.     app = RoutesMiddleware(app, config['routes.map'])
  44.     app = SessionMiddleware(app, config)
  45.  
  46.     # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
  47.  
  48.     if asbool(full_stack):
  49.         # Handle Python exceptions
  50.         app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
  51.  
  52.         # Display error documents for 401, 403, 404 status codes (and
  53.         # 500 when debug is disabled)
  54.         if asbool(config['debug']):
  55.             app = StatusCodeRedirect(app)
  56.         else:
  57.             app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
  58.  
  59.     # Establish the Registry for this application
  60.     app = RegistryManager(app)
  61.  
  62.     if asbool(static_files):
  63.         # Serve static files
  64.         static_app = StaticURLParser(config['pylons.paths']['static_files'])
  65.         app = Cascade([static_app, app])
  66.     app.config = config
  67.     return app
  68.  
Advertisement
Add Comment
Please, Sign In to add comment