Mercurial > hg > MakeItSo
comparison makeitso/dispatcher.py @ 20:6d1c703c5ffc
use tempita instead of genshi since we have it already (and dont need a really complex templating system)
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 17 Nov 2010 10:57:59 -0800 |
parents | 02498337c747 |
children | 1b9573832f33 |
comparison
equal
deleted
inserted
replaced
19:c46ec69d6253 | 20:6d1c703c5ffc |
---|---|
1 """ | 1 """ |
2 request dispatcher: | 2 request dispatcher: |
3 data persisting across requests should go here | 3 data persisting across requests should go here |
4 """ | 4 """ |
5 | 5 |
6 import os | |
7 | |
8 from handlers import Index | 6 from handlers import Index |
9 | |
10 from genshi.template import TemplateLoader | |
11 from paste.fileapp import FileApp | |
12 from pkg_resources import resource_filename | |
13 from webob import Request, Response, exc | 7 from webob import Request, Response, exc |
14 | 8 |
15 class Dispatcher(object): | 9 class Dispatcher(object): |
16 | 10 |
17 ### class level variables | 11 ### class level variables |
18 defaults = { 'auto_reload': 'False', | 12 defaults = { 'app': None, } |
19 'template_dirs': '', | |
20 'app': None, | |
21 'name': 'anonymous' } | |
22 | 13 |
23 def __init__(self, **kw): | 14 def __init__(self, **kw): |
24 | 15 |
25 # set instance parameters from kw and defaults | 16 # set instance parameters from kw and defaults |
26 for key in self.defaults: | 17 for key in self.defaults: |
27 setattr(self, key, kw.get(key, self.defaults[key])) | 18 setattr(self, key, kw.get(key, self.defaults[key])) |
28 self.auto_reload = self.auto_reload.lower() == 'true' | |
29 | 19 |
30 # request handlers | 20 # request handlers |
31 self.handlers = [ Index ] | 21 self.handlers = [ Index ] |
32 | 22 |
33 # endpoint app if used as middleware | 23 # endpoint app if used as middleware |
34 if self.app: | 24 if self.app: |
35 assert hasattr(self.app, '__call__') | 25 assert hasattr(self.app, '__call__') |
36 | |
37 # template loader | |
38 self.template_dirs = self.template_dirs.split() | |
39 self.template_dirs.append(resource_filename(__name__, 'templates')) | |
40 self.loader = TemplateLoader(self.template_dirs, | |
41 auto_reload=self.auto_reload) | |
42 | 26 |
43 def __call__(self, environ, start_response): | 27 def __call__(self, environ, start_response): |
44 | 28 |
45 # get a request object | 29 # get a request object |
46 request = Request(environ) | 30 request = Request(environ) |