Skip to content

Commit ce2d3df

Browse files
committed
Add end coordinates for column and line number
1 parent 4cf2189 commit ce2d3df

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

pyflakes/checker.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1389,9 +1389,13 @@ def getDocstring(self, node):
13891389
def handleNode(self, node, parent):
13901390
if node is None:
13911391
return
1392-
if self.offset and getattr(node, 'lineno', None) is not None:
1393-
node.lineno += self.offset[0]
1394-
node.col_offset += self.offset[1]
1392+
if self.offset:
1393+
if getattr(node, 'lineno', None) is not None:
1394+
node.lineno += self.offset[0]
1395+
node.col_offset += self.offset[1]
1396+
if getattr(node, 'end_lineno', None) is not None:
1397+
node.end_lineno += self.offset[0]
1398+
node.end_col_offset += self.offset[1]
13951399
if self.futuresAllowed and not (isinstance(node, ast.ImportFrom) or
13961400
self.isDocstring(node)):
13971401
self.futuresAllowed = False

pyflakes/messages.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ def __init__(self, filename, loc):
1111
self.filename = filename
1212
self.lineno = loc.lineno
1313
self.col = getattr(loc, 'col_offset', 0)
14+
self.end_col = getattr(loc, 'end_col_offset', None)
15+
self.end_lineno = getattr(loc, 'end_lineno', None)
1416

1517
def __str__(self):
1618
return '%s:%s:%s %s' % (self.filename, self.lineno, self.col+1,

pyflakes/test/test_doctests.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,11 @@ def doctest_stuff():
298298
''', m.UndefinedName).messages[0]
299299
self.assertEqual(exc.lineno, 5)
300300
self.assertEqual(exc.col, 20)
301+
# end_col_offset and end_lineno are new in Python 3.8
302+
if sys.version_info >= (3, 8):
303+
# check that offsets are also added to end_col and end_lineno
304+
self.assertEqual(exc.end_lineno, 5)
305+
self.assertEqual(exc.end_col, 21)
301306

302307
def test_offsetAfterDoctests(self):
303308
exc = self.flakes('''

0 commit comments

Comments
 (0)