summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Xicluna <florent.xicluna@gmail.com>2014-03-29 19:04:45 +0100
committerFlorent Xicluna <florent.xicluna@gmail.com>2014-03-29 19:04:45 +0100
commitf9a826f146c5b68af7ecb1a5f86da6f7e2510f4f (patch)
tree4d7bef184c77dfa2b8b83bb85c18922bf21d7a26
parentffe926c282bf78737f8c34dff111ccbdab6c837b (diff)
downloadpyflakes-f9a826f146c5b68af7ecb1a5f86da6f7e2510f4f.tar.gz
Refactor method handleDoctests
-rw-r--r--pyflakes/checker.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/pyflakes/checker.py b/pyflakes/checker.py
index 91661d4..932c125 100644
--- a/pyflakes/checker.py
+++ b/pyflakes/checker.py
@@ -559,16 +559,19 @@ class Checker(object):
def handleDoctests(self, node):
try:
- docstring, node_lineno = self.getDocstring(node.body[0])
- if not docstring:
- return
- examples = self._getDoctestExamples(docstring)
+ (docstring, node_lineno) = self.getDocstring(node.body[0])
+ examples = docstring and self._getDoctestExamples(docstring)
except (ValueError, IndexError):
# e.g. line 6 of the docstring for <string> has inconsistent
# leading whitespace: ...
return
+ if not examples:
+ return
node_offset = self.offset or (0, 0)
self.pushScope()
+ underscore_in_builtins = '_' in self.builtIns
+ if not underscore_in_builtins:
+ self.builtIns.add('_')
for example in examples:
try:
tree = compile(example.source, "<doctest>", "exec", ast.PyCF_ONLY_AST)
@@ -580,13 +583,10 @@ class Checker(object):
else:
self.offset = (node_offset[0] + node_lineno + example.lineno,
node_offset[1] + example.indent + 4)
- underscore_in_builtins = '_' in self.builtIns
- if not underscore_in_builtins:
- self.builtIns.add('_')
self.handleChildren(tree)
- if not underscore_in_builtins:
- self.builtIns.remove('_')
self.offset = node_offset
+ if not underscore_in_builtins:
+ self.builtIns.remove('_')
self.popScope()
def ignore(self, node):