Mercurial > hg > contenttransformer
comparison contenttransformer/transformers.py @ 16:6cbe4172b54b
sketch of how to hook up imports for genshi transformer
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 24 Sep 2010 19:15:13 -0700 |
parents | 946176949bba |
children | afd11b758da0 |
comparison
equal
deleted
inserted
replaced
15:946176949bba | 16:6cbe4172b54b |
---|---|
1 import docutils.core | 1 import docutils.core |
2 import subprocess | 2 import subprocess |
3 from utils import import_path | |
3 from webob import Request, Response | 4 from webob import Request, Response |
4 | 5 |
5 class Transformer(object): | 6 class Transformer(object): |
6 """abstract base class for transformer objects""" | 7 """abstract base class for transformer objects""" |
7 def __init__(self, content, content_type): | 8 def __init__(self, content, content_type): |
63 import genshi | 64 import genshi |
64 from genshi.template import MarkupTemplate | 65 from genshi.template import MarkupTemplate |
65 | 66 |
66 class GenshiTransformer(Transformer): | 67 class GenshiTransformer(Transformer): |
67 | 68 |
68 def __init__(self, content, content_type): | 69 def __init__(self, content, content_type, modules=()): |
70 """ | |
71 - modules : strings of modules | |
72 """ | |
73 self.variables = {} | |
74 for path in modules: | |
75 module = import_path(path) | |
76 name = path.rsplit('.')[-1] | |
77 self.variables[name] = module | |
69 Transformer.__init__(self, content, content_type) | 78 Transformer.__init__(self, content, content_type) |
70 | 79 |
71 def transform(self, request): | 80 def transform(self, request): |
72 variables = dict(request=request) | 81 variables = dict(request=request) |
73 template = MarkupTemplate(self.content) | 82 template = MarkupTemplate(self.content) |