diff options
-rw-r--r-- | .travis.yml | 3 | ||||
-rw-r--r-- | pyflakes/checker.py | 14 |
2 files changed, 13 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml index 1ea3e20..2d614cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,9 +11,6 @@ python: - pypy-5.3 - pypy3 - pypy3.3-5.2-alpha1 -matrix: - allow_failures: - - python: nightly install: - pip install flake8==2.1.0 pep8==1.5.6 - python setup.py install diff --git a/pyflakes/checker.py b/pyflakes/checker.py index 382574e..75abdc0 100644 --- a/pyflakes/checker.py +++ b/pyflakes/checker.py @@ -870,7 +870,19 @@ class Checker(object): def handleDoctests(self, node): try: - (docstring, node_lineno) = self.getDocstring(node.body[0]) + if hasattr(node, 'docstring'): + docstring = node.docstring + + # This is just a reasonable guess. In Python 3.7, docstrings no + # longer have line numbers associated with them. This will be + # incorrect if there are empty lines between the beginning + # of the function and the docstring. + node_lineno = node.lineno + if hasattr(node, 'args'): + node_lineno = max([node_lineno] + + [arg.lineno for arg in node.args.args]) + else: + (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 |