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