# HG changeset patch # User k0s # Date 1263775744 18000 # Node ID f306089d6def5bf9d751f07e74654ec1b22971de # Parent d5775f3667a2ec6c83b34025207e470b50be5e50 now use contenttransformer to serve files if /transformer in directory configuration; TODO: cache on a per-directory basis diff -r d5775f3667a2 -r f306089d6def decoupage/web.py --- a/decoupage/web.py Sat Jan 09 12:13:04 2010 -0500 +++ b/decoupage/web.py Sun Jan 17 19:49:04 2010 -0500 @@ -4,6 +4,7 @@ import os +from contenttransformer.app import FileTypeTransformer from formatters import formatters from genshi.builder import Markup @@ -60,6 +61,8 @@ self.loader = TemplateLoader(self.template_directories, auto_reload=self.auto_reload) + + ### methods dealing with HTTP def __call__(self, environ, start_response): request = Request(environ) @@ -74,7 +77,14 @@ res = self.get(request) return res(environ, start_response) else: - fileserver = self.fileserver(path) + conf = self.conf(request.path_info.rsplit('/',1)[0]) + if '/transformer' in conf: + args = [i.split('=', 1) for i in conf['/transformer'].split(',') if '=' in i] + fileserver = FileTypeTransformer(*args) + else: + fileserver = FileApp + + fileserver = fileserver(path) return fileserver(environ, start_response) else: raise exc.HTTPNotFound() @@ -197,7 +207,7 @@ parent_configuration = self.conf(inherit_directory) for key, value in parent_configuration.items(): if key.startswith('/') and key not in conf: - conf[key] = value + conf[key] = value # cache configuration if not self.auto_reload: diff -r d5775f3667a2 -r f306089d6def setup.py --- a/setup.py Sat Jan 09 12:13:04 2010 -0500 +++ b/setup.py Sun Jan 17 19:49:04 2010 -0500 @@ -6,7 +6,7 @@ except IOError: description = '' -version = '0.4.2' +version = '0.5' setup(name='decoupage', version=version, @@ -27,6 +27,7 @@ 'PasteScript', 'genshi', 'martINI', + 'contenttransformer', ], entry_points=""" # -*- Entry points: -*-