root/trunk/twisted/lore/default.py

Revision 26929, 1.8 KB (checked in by exarkun, 16 months ago)

Merge lore-microdom-imports-3619

Author: exarkun
Reviewer: glyph
Fixes: #3619

Change the minidom as microdom imports in Twisted Lore to be
minidom as dom instead, and adjust all affected code.

Line 
1# Copyright (c) 2001-2009 Twisted Matrix Laboratories.
2# See LICENSE for details.
3
4"""
5Default processing factory plugin.
6"""
7
8from xml.dom import minidom as dom
9
10from twisted.lore import tree, latex, lint, process
11from twisted.web import sux
12
13htmlDefault = {'template': 'template.tpl', 'baseurl': '%s', 'ext': '.html'}
14
15class ProcessingFunctionFactory:
16
17    def getDoFile(self):
18        return tree.doFile
19
20    def generate_html(self, options, filenameGenerator=tree.getOutputFileName):
21        n = htmlDefault.copy()
22        n.update(options)
23        options = n
24        try:
25            fp = open(options['template'])
26            templ = dom.parse(fp)
27        except IOError, e:
28            raise process.NoProcessorError(e.filename+": "+e.strerror)
29        except sux.ParseError, e:
30            raise process.NoProcessorError(str(e))
31        df = lambda file, linkrel: self.getDoFile()(file, linkrel, options['ext'],
32                                                    options['baseurl'], templ, options, filenameGenerator)
33        return df
34
35    latexSpitters = {None: latex.LatexSpitter,
36                     'section': latex.SectionLatexSpitter,
37                     'chapter': latex.ChapterLatexSpitter,
38                     'book': latex.BookLatexSpitter,
39                     }
40
41    def generate_latex(self, options, filenameGenerator=None):
42        spitter = self.latexSpitters[None]
43        for (key, value) in self.latexSpitters.items():
44            if key and options.get(key):
45               spitter = value
46        df = lambda file, linkrel: latex.convertFile(file, spitter)
47        return df
48
49    def getLintChecker(self):
50        return lint.getDefaultChecker()
51
52    def generate_lint(self, options, filenameGenerator=None):
53        checker = self.getLintChecker()
54        return lambda file, linkrel: lint.doFile(file, checker)
55
56factory = ProcessingFunctionFactory()
Note: See TracBrowser for help on using the browser.