Mercurial > kallithea
view rhodecode/config/middleware.py @ 3651:659bd922520e beta
config: rename options to show_revision_number and show_sha_length
'sha_show_numeric_rev' had nothing to do with the sha value.
The revision numbers are kind of native to Mercurial and there they are known
as 'revision numbers'.
'sha_len' was very short and didn't clarify that it only controlled what was shown.
These settings are currently only used in the changelog, but they should be used everywhere.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 03 Apr 2013 15:56:12 +0200 |
parents | e1568c0bac1f |
children | 3563bb7b4b82 |
line wrap: on
line source
"""Pylons middleware initialization""" from beaker.middleware import SessionMiddleware from routes.middleware import RoutesMiddleware from paste.cascade import Cascade from paste.registry import RegistryManager from paste.urlparser import StaticURLParser from paste.deploy.converters import asbool from paste.gzipper import make_gzip_middleware from pylons.middleware import ErrorHandler, StatusCodeRedirect from pylons.wsgiapp import PylonsApp from rhodecode.lib.middleware.simplehg import SimpleHg from rhodecode.lib.middleware.simplegit import SimpleGit from rhodecode.lib.middleware.https_fixup import HttpsFixup from rhodecode.config.environment import load_environment from rhodecode.lib.middleware.wrapper import RequestWrapper def make_app(global_conf, full_stack=True, static_files=True, **app_conf): """Create a Pylons WSGI application and return it ``global_conf`` The inherited configuration for this application. Normally from the [DEFAULT] section of the Paste ini file. ``full_stack`` Whether or not this application provides a full WSGI stack (by default, meaning it handles its own exceptions and errors). Disable full_stack when this application is "managed" by another WSGI middleware. ``app_conf`` The application's local configuration. Normally specified in the [app:<name>] section of the Paste ini file (where <name> defaults to main). """ # Configure the Pylons environment config = load_environment(global_conf, app_conf) # The Pylons WSGI app app = PylonsApp(config=config) # Routing/Session/Cache Middleware app = RoutesMiddleware(app, config['routes.map']) app = SessionMiddleware(app, config) # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) if asbool(config['pdebug']): from rhodecode.lib.profiler import ProfilingMiddleware app = ProfilingMiddleware(app) if asbool(full_stack): from rhodecode.lib.middleware.sentry import Sentry from rhodecode.lib.middleware.errormator import Errormator if Errormator and asbool(config['app_conf'].get('errormator')): app = Errormator(app, config) elif Sentry: app = Sentry(app, config) # Handle Python exceptions app = ErrorHandler(app, global_conf, **config['pylons.errorware']) # we want our low level middleware to get to the request ASAP. We don't # need any pylons stack middleware in them app = SimpleHg(app, config) app = SimpleGit(app, config) app = RequestWrapper(app, config) # Display error documents for 401, 403, 404 status codes (and # 500 when debug is disabled) if asbool(config['debug']): app = StatusCodeRedirect(app) else: app = StatusCodeRedirect(app, [400, 401, 403, 404, 500]) #enable https redirets based on HTTP_X_URL_SCHEME set by proxy app = HttpsFixup(app, config) # Establish the Registry for this application app = RegistryManager(app) if asbool(static_files): # Serve static files static_app = StaticURLParser(config['pylons.paths']['static_files']) app = Cascade([static_app, app]) app = make_gzip_middleware(app, global_conf, compress_level=1) app.config = config return app