From a25745aa06d3cdad97988e8795fb2492133a55c8 Mon Sep 17 00:00:00 2001 From: DasIch Date: Sat, 1 May 2010 19:17:52 +0200 Subject: Fixed issue #1 --- sphinx/pycode/pgen2/tokenize.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'sphinx/pycode') diff --git a/sphinx/pycode/pgen2/tokenize.py b/sphinx/pycode/pgen2/tokenize.py index 4489db89..7ad9f012 100644 --- a/sphinx/pycode/pgen2/tokenize.py +++ b/sphinx/pycode/pgen2/tokenize.py @@ -143,7 +143,9 @@ class TokenError(Exception): pass class StopTokenizing(Exception): pass -def printtoken(type, token, (srow, scol), (erow, ecol), line): # for testing +def printtoken(type, token, scell, ecell, line): # for testing + srow, scol = scell + erow, ecol = ecell print "%d,%d-%d,%d:\t%s\t%s" % \ (srow, scol, erow, ecol, tok_name[type], repr(token)) -- cgit v1.2.1 From d82fcd12dbf85af674b7f1ae96f83e8f8c5134ff Mon Sep 17 00:00:00 2001 From: DasIch Date: Sat, 1 May 2010 19:18:31 +0200 Subject: Make sphinx.pycode.nodes.BaseNode unhashable --- sphinx/pycode/nodes.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sphinx/pycode') diff --git a/sphinx/pycode/nodes.py b/sphinx/pycode/nodes.py index e7184677..fc6eb93a 100644 --- a/sphinx/pycode/nodes.py +++ b/sphinx/pycode/nodes.py @@ -29,6 +29,8 @@ class BaseNode(object): return NotImplemented return not self._eq(other) + __hash__ = None + def get_prev_sibling(self): """Return previous child in parent's children, or None.""" if self.parent is None: -- cgit v1.2.1 From 3f3b30f45d6b4c31cfe5695f6874ea2a856e010d Mon Sep 17 00:00:00 2001 From: DasIch Date: Mon, 24 May 2010 18:25:20 +0200 Subject: don't assume strings to be byte strings --- sphinx/pycode/__init__.py | 3 ++- sphinx/pycode/pgen2/literals.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'sphinx/pycode') diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py index b8e2fded..cb9c0887 100644 --- a/sphinx/pycode/__init__.py +++ b/sphinx/pycode/__init__.py @@ -98,7 +98,8 @@ class AttrDocVisitor(nodes.NodeVisitor): if not pnode or pnode.type not in (token.INDENT, token.DEDENT): break prefix = pnode.get_prefix() - prefix = prefix.decode(self.encoding) + if not isinstance(prefix, unicode): + prefix = prefix.decode(self.encoding) docstring = prepare_commentdoc(prefix) self.add_docstring(node, docstring) diff --git a/sphinx/pycode/pgen2/literals.py b/sphinx/pycode/pgen2/literals.py index 31900291..d4893702 100644 --- a/sphinx/pycode/pgen2/literals.py +++ b/sphinx/pycode/pgen2/literals.py @@ -66,7 +66,7 @@ uni_escape_re = re.compile(r"\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3}|" def evalString(s, encoding=None): regex = escape_re repl = escape - if encoding: + if encoding and not isinstance(s, unicode): s = s.decode(encoding) if s.startswith('u') or s.startswith('U'): regex = uni_escape_re -- cgit v1.2.1 From e6c4415f20e27c7b8bfa20189df0afd052156202 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 28 Jul 2010 18:51:57 +0200 Subject: Use next() function instead of iter.next(). --- sphinx/pycode/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sphinx/pycode') diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py index cb9c0887..ef92297c 100644 --- a/sphinx/pycode/__init__.py +++ b/sphinx/pycode/__init__.py @@ -18,6 +18,7 @@ from sphinx.errors import PycodeError from sphinx.pycode import nodes from sphinx.pycode.pgen2 import driver, token, tokenize, parse, literals from sphinx.util import get_module_source +from sphinx.util.pycompat import next from sphinx.util.docstrings import prepare_docstring, prepare_commentdoc @@ -279,7 +280,7 @@ class ModuleAnalyzer(object): result[fullname] = (dtype, startline, endline) expect_indent = False if tok in ('def', 'class'): - name = tokeniter.next()[1] + name = next(tokeniter)[1] namespace.append(name) fullname = '.'.join(namespace) stack.append((tok, fullname, spos[0], indent)) -- cgit v1.2.1