From acc9d13c5824b71b23b9411d945beb648b1a316a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 20 Jun 2010 14:23:59 +0200 Subject: [PATCH] #452: fix encoding handling in ModuleAnalyzer. --- sphinx/pycode/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py index b7473bf22..392a55750 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."""