"""Pylons middleware initialization"""frombeaker.middlewareimportSessionMiddlewarefrompaste.cascadeimportCascadefrompaste.registryimportRegistryManagerfrompaste.urlparserimportStaticURLParserfrompaste.deploy.convertersimportasboolfrompylons.middlewareimportErrorHandler,StatusCodeRedirectfrompylons.wsgiappimportPylonsAppfromroutes.middlewareimportRoutesMiddlewarefromrhodecode.lib.middleware.simplehgimportSimpleHgfromrhodecode.lib.middleware.simplegitimportSimpleGitfromrhodecode.lib.middleware.https_fixupimportHttpsFixupfromrhodecode.config.environmentimportload_environmentdefmake_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 environmentconfig=load_environment(global_conf,app_conf)# The Pylons WSGI appapp=PylonsApp(config=config)# Routing/Session/Cache Middlewareapp=RoutesMiddleware(app,config['routes.map'])app=SessionMiddleware(app,config)# CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)app=SimpleHg(app,config)app=SimpleGit(app,config)ifasbool(full_stack):# Handle Python exceptionsapp=ErrorHandler(app,global_conf,**config['pylons.errorware'])# Display error documents for 401, 403, 404 status codes (and# 500 when debug is disabled)ifasbool(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 proxyapp=HttpsFixup(app)# Establish the Registry for this applicationapp=RegistryManager(app)ifasbool(static_files):# Serve static filesstatic_app=StaticURLParser(config['pylons.paths']['static_files'])app=Cascade([static_app,app])app.config=configreturnapp