mirror of
https://github.com/python/cpython.git
synced 2025-08-27 12:16:04 +00:00
Patch #1006219: let inspect.getsource show '@' decorators and add tests for
this (which are rather ugly, but it'll have to do until test_inspect gets a major overhaul and a conversion to unittest). Thanks Simon Percivall!
This commit is contained in:
parent
318a12eb01
commit
c473c99d16
3 changed files with 47 additions and 2 deletions
|
@ -433,7 +433,7 @@ def findsource(object):
|
|||
if not hasattr(object, 'co_firstlineno'):
|
||||
raise IOError('could not find function definition')
|
||||
lnum = object.co_firstlineno - 1
|
||||
pat = re.compile(r'^(\s*def\s)|(.*\slambda(:|\s))')
|
||||
pat = re.compile(r'^(\s*def\s)|(.*\slambda(:|\s))|^(\s*@)')
|
||||
while lnum > 0:
|
||||
if pat.match(lines[lnum]): break
|
||||
lnum = lnum - 1
|
||||
|
@ -509,7 +509,8 @@ class BlockFinder:
|
|||
|
||||
def tokeneater(self, type, token, (srow, scol), (erow, ecol), line):
|
||||
if not self.started:
|
||||
if type == tokenize.NAME: self.started = 1
|
||||
if '@' in line: pass
|
||||
elif type == tokenize.NAME: self.started = 1
|
||||
elif type == tokenize.NEWLINE:
|
||||
self.last = srow
|
||||
elif type == tokenize.INDENT:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue