merge with 0.6

This commit is contained in:
Georg Brandl 2010-06-20 14:24:32 +02:00
commit 4c0f91f2ca

View File

@ -195,6 +195,8 @@ class ModuleAnalyzer(object):
self.srcname = srcname self.srcname = srcname
# file-like object yielding source lines # file-like object yielding source lines
self.source = source self.source = source
# will be changed when found by parse()
self.encoding = sys.getdefaultencoding()
# cache the source code as well # cache the source code as well
pos = self.source.tell() pos = self.source.tell()
@ -227,15 +229,13 @@ class ModuleAnalyzer(object):
self.parsetree = pydriver.parse_tokens(self.tokens) self.parsetree = pydriver.parse_tokens(self.tokens)
except parse.ParseError, err: except parse.ParseError, err:
raise PycodeError('parsing failed', err) raise PycodeError('parsing failed', err)
# find the source code encoding # find the source code encoding, if present
encoding = sys.getdefaultencoding()
comments = self.parsetree.get_prefix() comments = self.parsetree.get_prefix()
for line in comments.splitlines()[:2]: for line in comments.splitlines()[:2]:
match = _coding_re.search(line) match = _coding_re.search(line)
if match is not None: if match is not None:
encoding = match.group(1) self.encoding = match.group(1)
break break
self.encoding = encoding
def find_attr_docs(self, scope=''): def find_attr_docs(self, scope=''):
"""Find class and module-level attributes and their documentation.""" """Find class and module-level attributes and their documentation."""