Mercurial > public > src > rhodecode
annotate pylons_app/config/middleware.py @ 17:436bee78d81a
Litle code cleanups, This version handles repos correctly.
author | Marcin Kuzminski |
---|---|
date | Sat, 27 Feb 2010 17:28:25 +0100 |
parents | 923f0e6ab010 |
children | fac1f62a1d71 |
rev | line source |
---|---|
0 | 1 """Pylons middleware initialization""" |
2 from beaker.middleware import CacheMiddleware, 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 import config | |
8 from pylons.middleware import ErrorHandler, StatusCodeRedirect | |
9 from pylons.wsgiapp import PylonsApp | |
10 from routes.middleware import RoutesMiddleware | |
17
436bee78d81a
Litle code cleanups, This version handles repos correctly.
Marcin Kuzminski
parents:
14
diff
changeset
|
11 |
0 | 12 from pylons_app.config.environment import load_environment |
13 | |
12 | 14 |
15 def make_app(global_conf, full_stack = True, **app_conf): | |
0 | 16 """Create a Pylons WSGI application and return it |
17 | |
18 ``global_conf`` | |
19 The inherited configuration for this application. Normally from | |
20 the [DEFAULT] section of the Paste ini file. | |
21 | |
22 ``full_stack`` | |
12 | 23 Whether or not this application provides a full WSGI stack (by |
24 default, meaning it handles its own exceptions and errors). | |
25 Disable full_stack when this application is "managed" by | |
26 another WSGI middleware. | |
0 | 27 |
28 ``app_conf`` | |
29 The application's local configuration. Normally specified in | |
30 the [app:<name>] section of the Paste ini file (where <name> | |
31 defaults to main). | |
32 | |
33 """ | |
34 # Configure the Pylons environment | |
35 load_environment(global_conf, app_conf) | |
36 | |
37 # The Pylons WSGI app | |
38 app = PylonsApp() | |
39 | |
12 | 40 # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) |
41 | |
0 | 42 # Routing/Session/Cache Middleware |
43 app = RoutesMiddleware(app, config['routes.map']) | |
44 | |
45 if asbool(full_stack): | |
46 # Handle Python exceptions | |
47 app = ErrorHandler(app, global_conf, **config['pylons.errorware']) | |
48 | |
49 # Display error documents for 401, 403, 404 status codes (and | |
50 # 500 when debug is disabled) | |
51 if asbool(config['debug']): | |
14 | 52 #don't handle 404, since mercurial does it for us. |
53 app = StatusCodeRedirect(app, [400, 401, 403, 500]) | |
0 | 54 else: |
14 | 55 app = StatusCodeRedirect(app, [400, 401, 403, 500]) |
0 | 56 |
57 # Establish the Registry for this application | |
58 app = RegistryManager(app) | |
59 | |
12 | 60 # Static files (If running in production, and Apache or another web |
61 # server is handling this static content, remove the following 3 lines) | |
62 static_app = StaticURLParser(config['pylons.paths']['static_files']) | |
63 app = Cascade([static_app, app]) | |
64 return app | |
0 | 65 |