[Epydoc-commits] SF.net SVN: epydoc: [1343] trunk/epydoc/src/epydoc/markup/restructuredtext. py
Brought to you by:
edloper
|
From: <ed...@us...> - 2006-09-02 01:23:25
|
Revision: 1343
http://svn.sourceforge.net/epydoc/?rev=1343&view=rev
Author: edloper
Date: 2006-09-01 18:23:23 -0700 (Fri, 01 Sep 2006)
Log Message:
-----------
- Optimizations to make parsing rst a little faster:
- Reuse docutils 'settings' objects, rather than re-creating
them every time we translate a docstring to html or latex
- Replace the reporter with one that ignores all debug
statements. (Docutils isn't very fast about processing its
own debug statements.)
Modified Paths:
--------------
trunk/epydoc/src/epydoc/markup/restructuredtext.py
Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py
===================================================================
--- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-09-02 00:54:33 UTC (rev 1342)
+++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-09-02 01:23:23 UTC (rev 1343)
@@ -132,6 +132,12 @@
'warning_stream':None})
return ParsedRstDocstring(writer.document)
+class OptimizedReporter(docutils.utils.Reporter):
+ """A reporter that ignores all debug messages. This is used to
+ shave a couple seconds off of epydoc's run time, since docutils
+ isn't very fast about processing its own debug messages."""
+ def debug(self, *args, **kwargs): pass
+
class ParsedRstDocstring(ParsedDocstring):
"""
An encoded version of a ReStructuredText docstring. The contents
@@ -150,7 +156,7 @@
# The default document reporter and transformer are not
# pickle-able; so replace them with stubs that are.
- document.reporter = docutils.utils.Reporter(
+ document.reporter = OptimizedReporter(
document.reporter.source, 'SEVERE', 'SEVERE', '')
document.transformer = docutils.transforms.Transformer(document)
@@ -460,10 +466,13 @@
return translator.head_prefix
class _EpydocLaTeXTranslator(LaTeXTranslator):
+ settings = None
def __init__(self, document, docstring_linker):
# Set the document's settings.
- settings = OptionParser([LaTeXWriter()]).get_default_values()
- document.settings = settings
+ if self.settings is None:
+ settings = OptionParser([LaTeXWriter()]).get_default_values()
+ self.__class__.settings = settings
+ document.settings = self.settings
LaTeXTranslator.__init__(self, document)
self._linker = docstring_linker
@@ -495,6 +504,7 @@
raise SkipNode()
class _EpydocHTMLTranslator(HTMLTranslator):
+ settings = None
def __init__(self, document, docstring_linker, directory,
docindex, context):
self._linker = docstring_linker
@@ -503,8 +513,10 @@
self._context = context
# Set the document's settings.
- settings = OptionParser([HTMLWriter()]).get_default_values()
- document.settings = settings
+ if self.settings is None:
+ settings = OptionParser([HTMLWriter()]).get_default_values()
+ self.__class__.settings = settings
+ document.settings = self.settings
# Call the parent constructor.
HTMLTranslator.__init__(self, document)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|