summaryrefslogtreecommitdiff
path: root/dev-python/epydoc/files
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/epydoc/files')
-rw-r--r--dev-python/epydoc/files/epydoc-docutils-0.6.patch27
-rw-r--r--dev-python/epydoc/files/epydoc-python-2.6.patch60
2 files changed, 87 insertions, 0 deletions
diff --git a/dev-python/epydoc/files/epydoc-docutils-0.6.patch b/dev-python/epydoc/files/epydoc-docutils-0.6.patch
new file mode 100644
index 000000000000..35f44108a1ed
--- /dev/null
+++ b/dev-python/epydoc/files/epydoc-docutils-0.6.patch
@@ -0,0 +1,27 @@
+Make epydoc work with docutils-0.6.
+
+Patch created by Engelbert Gruber (grubert) and adjusted by Martin von Gagern.
+
+References:
+http://sourceforge.net/tracker/?func=detail&aid=2895197&group_id=32455&atid=405618
+http://thread.gmane.org/gmane.text.docutils.devel/4888/focus=4924
+http://bugs.gentoo.org/287546
+
+Index: epydoc-3.0.1/epydoc/markup/restructuredtext.py
+===================================================================
+--- epydoc-3.0.1.orig/epydoc/markup/restructuredtext.py
++++ epydoc-3.0.1/epydoc/markup/restructuredtext.py
+@@ -304,10 +304,11 @@ class _SummaryExtractor(NodeVisitor):
+ # Extract the first sentence.
+ for child in node:
+ if isinstance(child, docutils.nodes.Text):
+- m = self._SUMMARY_RE.match(child.data)
++ data = child.astext()
++ m = self._SUMMARY_RE.match(data)
+ if m:
+ summary_pieces.append(docutils.nodes.Text(m.group(1)))
+- other = child.data[m.end():]
++ other = data[m.end():]
+ if other and not other.isspace():
+ self.other_docs = True
+ break
diff --git a/dev-python/epydoc/files/epydoc-python-2.6.patch b/dev-python/epydoc/files/epydoc-python-2.6.patch
new file mode 100644
index 000000000000..84bb22d879c5
--- /dev/null
+++ b/dev-python/epydoc/files/epydoc-python-2.6.patch
@@ -0,0 +1,60 @@
+diff -Nur epydoc-3.0.1/epydoc/docparser.py epydoc-3.0.1/epydoc/docparser.py
+--- epydoc-3.0.1/epydoc/docparser.py
++++ epydoc-3.0.1/epydoc/docparser.py
+@@ -72,6 +72,26 @@
+ from epydoc.compat import *
+
+ ######################################################################
++## Tokenizer change in 2.6
++######################################################################
++
++def comment_includes_nl():
++ """ Determine whether comments are parsed as one or two tokens... """
++ readline = iter(u'\n#\n\n'.splitlines(True)).next
++ tokens = [
++ token.tok_name[tup[0]] for tup in tokenize.generate_tokens(readline)
++ ]
++ if tokens == ['NL', 'COMMENT', 'NL', 'ENDMARKER']:
++ return True
++ elif tokens == ['NL', 'COMMENT', 'NL', 'NL', 'ENDMARKER']:
++ return False
++ raise AssertionError(
++ "Tokenizer returns unexexpected tokens: %r" % tokens
++ )
++
++comment_includes_nl = comment_includes_nl()
++
++######################################################################
+ ## Doc Parser
+ ######################################################################
+
+@@ -520,6 +540,10 @@
+ # inside that block, not outside it.
+ start_group = None
+
++ # If the comment tokens do not include the NL, every comment token
++ # sets this to True in order to swallow the next NL token unprocessed.
++ comment_nl_waiting = False
++
+ # Check if the source file declares an encoding.
+ encoding = get_module_encoding(module_doc.filename)
+
+@@ -570,7 +594,9 @@
+ # then discard them: blank lines are not allowed between a
+ # comment block and the thing it describes.
+ elif toktype == tokenize.NL:
+- if comments and not line_toks:
++ if comment_nl_waiting:
++ comment_nl_waiting = False
++ elif comments and not line_toks:
+ log.warning('Ignoring docstring comment block followed by '
+ 'a blank line in %r on line %r' %
+ (module_doc.filename, srow-1))
+@@ -578,6 +604,7 @@
+
+ # Comment token: add to comments if appropriate.
+ elif toktype == tokenize.COMMENT:
++ comment_nl_waiting = not comment_includes_nl
+ if toktext.startswith(COMMENT_DOCSTRING_MARKER):
+ comment_line = toktext[len(COMMENT_DOCSTRING_MARKER):].rstrip()
+ if comment_line.startswith(" "):