Steven Myint added the comment:
I think what you guys have brought up makes sense.
Now that you mention it, I see that pyflakes gives the wrong line number if an
escaped newline appears after the doctests. Though, it works fine if the
escaped newline appears before it.
https://github.com/PyCQ
Serhiy Storchaka added the comment:
Even if the line number of a docstring is known, it is not easy to determine
the line number corresponding to the particular line in a docstring if it
contains backslashes following by newline.
'''foo
bar
'''
and
'''\
foo
bar
'''
are equal strings, but th
STINNER Victor added the comment:
> We use this feature in pyflakes (https://github.com/PyCQA/pyflakes/issues/271)
AST is not designed to be 1-to-1 .py source to AST mapping. If you need the
exact line number, you might use your own parser. I don't know what is using
pylint for example? There
Serhiy Storchaka added the comment:
It is not possible anymore. Why you need the line number of a docstring?
The closest approximation is between node.lineno and node.body[0].lineno (if
node.body is not empty).
--
nosy: +haypo, inada.naoki, serhiy.storchaka
___
New submission from Steven Myint:
Since #29463, it is no longer obvious how to get the line number of a docstring
in the AST:
import ast
x = ast.parse('''\
def foo():
"""This is a docstring."""
''')
# In Python 3.6, the docstring and line number would be:
print