comparison decoupage/decoupage.py @ 2:041958c8c8f2

use paste.fileapp as the fileserver
author k0s <k0scist@gmail.com>
date Tue, 27 Oct 2009 15:37:00 -0400
parents fa2005f769eb
children
comparison
equal deleted inserted replaced
1:93ab6d1968bd 2:041958c8c8f2
5 import os 5 import os
6 6
7 from genshi.builder import Markup 7 from genshi.builder import Markup
8 from genshi.template import TemplateLoader 8 from genshi.template import TemplateLoader
9 from martini.config import ConfigMunger 9 from martini.config import ConfigMunger
10 from paste.urlparser import StaticURLParser 10 from paste.fileapp import FileApp
11 from pkg_resources import resource_filename 11 from pkg_resources import resource_filename
12 from pkg_resources import iter_entry_points 12 from pkg_resources import iter_entry_points
13 from webob import Request, Response, exc 13 from webob import Request, Response, exc
14 14
15 class Decoupage(object): 15 class Decoupage(object):
37 assert os.path.isdir(self.directory) 37 assert os.path.isdir(self.directory)
38 self.template_directories = self.template_directories.split() # no spaces in directory names, for now 38 self.template_directories = self.template_directories.split() # no spaces in directory names, for now
39 assert sum([os.path.isdir(directory) for directory in self.template_directories]) == len(self.template_directories) 39 assert sum([os.path.isdir(directory) for directory in self.template_directories]) == len(self.template_directories)
40 40
41 # static file server 41 # static file server
42 self.fileserver = StaticURLParser(self.directory) 42 self.fileserver = FileApp
43 43
44 # pluggable index data formatters 44 # pluggable index data formatters
45 self.formatters = {} 45 self.formatters = {}
46 for formatter in iter_entry_points('decoupage.formatters'): 46 for formatter in iter_entry_points('decoupage.formatters'):
47 try: 47 try:
69 raise exc.HTTPMovedPermanently(add_slash=True) 69 raise exc.HTTPMovedPermanently(add_slash=True)
70 70
71 res = self.get(request) 71 res = self.get(request)
72 return res(environ, start_response) 72 return res(environ, start_response)
73 else: 73 else:
74 return self.fileserver(environ, start_response) 74 fileserver = self.fileserver(path)
75 return fileserver(environ, start_response)
75 else: 76 else:
76 raise exc.HTTPNotFound() 77 raise exc.HTTPNotFound()
77 78
78 def get_response(self, text, content_type='text/html'): 79 def get_response(self, text, content_type='text/html'):
79 """construct a response to a GET request""" 80 """construct a response to a GET request"""