Mercurial > hg > contenttransformer
comparison contenttransformer/app.py @ 13:9d51954e2e68
allow transformers to take kwargs
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 30 Jun 2010 22:09:13 -0700 |
parents | a9ddcfc7c4e8 |
children | 7dae51af8db6 |
comparison
equal
deleted
inserted
replaced
12:59496de89997 | 13:9d51954e2e68 |
---|---|
10 | 10 |
11 def __init__(self, *types, **kwargs): | 11 def __init__(self, *types, **kwargs): |
12 """types is a list of two-tuples: glob pattern (string), transformer name (string, name of entry point)""" | 12 """types is a list of two-tuples: glob pattern (string), transformer name (string, name of entry point)""" |
13 self.types = types | 13 self.types = types |
14 | 14 |
15 # intended to be arguments to the xformers | 15 # arguments to the xformers |
16 # XXX unused | |
17 self.kwargs = kwargs | 16 self.kwargs = kwargs |
18 | 17 |
19 self.transformers = transformers() | 18 self.transformers = transformers() |
20 for pattern, transformer_name in self.types: | 19 for pattern, transformer_name in self.types: |
21 if '/' in transformer_name: | 20 if '/' in transformer_name: |
32 | 31 |
33 # transform content type | 32 # transform content type |
34 # XXX hack: -> refactor | 33 # XXX hack: -> refactor |
35 if '/' in transformer_name: | 34 if '/' in transformer_name: |
36 return ContentTypeChanger(content, content_type, transformer_name) | 35 return ContentTypeChanger(content, content_type, transformer_name) |
37 | 36 |
38 return self.transformers[transformer_name](content, content_type) | 37 return self.transformers[transformer_name](content, content_type, **self.kwargs.get(transformer_name, {})) |
39 return FileApp(path) | 38 return FileApp(path) |
40 | 39 |
41 | 40 |
42 def transformers(): | 41 def transformers(): |
43 transformers = {} # XXX could cache | 42 transformers = {} # XXX could cache |