summaryrefslogtreecommitdiff
path: root/sphinx/pycode
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-06-20 14:23:59 +0200
committerGeorg Brandl <georg@python.org>2010-06-20 14:23:59 +0200
commit4823106e957b4152a071d46a8927171e3237b688 (patch)
tree813baa9a88101334e6ccc449185dd14c3a865646 /sphinx/pycode
parent94b6f591a3c91cc7a240a10032ad97291cab2bdd (diff)
downloadsphinx-4823106e957b4152a071d46a8927171e3237b688.tar.gz
#452: fix encoding handling in ModuleAnalyzer.
Diffstat (limited to 'sphinx/pycode')
-rw-r--r--sphinx/pycode/__init__.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py
index b7473bf2..392a5575 100644
--- a/sphinx/pycode/__init__.py
+++ b/sphinx/pycode/__init__.py
@@ -190,6 +190,8 @@ class ModuleAnalyzer(object):
self.srcname = srcname
# file-like object yielding source lines
self.source = source
+ # will be changed when found by parse()
+ self.encoding = sys.getdefaultencoding()
# will be filled by tokenize()
self.tokens = None
@@ -216,15 +218,13 @@ class ModuleAnalyzer(object):
self.parsetree = pydriver.parse_tokens(self.tokens)
except parse.ParseError, err:
raise PycodeError('parsing failed', err)
- # find the source code encoding
- encoding = sys.getdefaultencoding()
+ # find the source code encoding, if present
comments = self.parsetree.get_prefix()
for line in comments.splitlines()[:2]:
match = _coding_re.search(line)
if match is not None:
- encoding = match.group(1)
+ self.encoding = match.group(1)
break
- self.encoding = encoding
def find_attr_docs(self, scope=''):
"""Find class and module-level attributes and their documentation."""