[Python-checkins] CVS: python/dist/src/Lib inspect.py,1.7,1.8
Ka-Ping Yee
ping@usw-pr-cvs1.sourceforge.net
2001年3月10日 01:31:57 -0800
Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv8232
Modified Files:
inspect.py
Log Message:
Fix findsource() to work for derived classes.
Index: inspect.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/inspect.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** inspect.py 2001年03月02日 05:50:34 1.7
--- inspect.py 2001年03月10日 09:31:55 1.8
***************
*** 28,32 ****
__date__ = '1 Jan 2001'
! import sys, os, types, string, dis, imp, tokenize
# ----------------------------------------------------------- type-checking
--- 28,32 ----
__date__ = '1 Jan 2001'
! import sys, os, types, string, re, dis, imp, tokenize
# ----------------------------------------------------------- type-checking
***************
*** 260,267 ****
if isclass(object):
name = object.__name__
! matches = (['class', name], ['class', name + ':'])
for i in range(len(lines)):
! if string.split(lines[i])[:2] in matches:
! return lines, i
else: raise IOError, 'could not find class definition'
--- 260,266 ----
if isclass(object):
name = object.__name__
! pat = re.compile(r'^\s*class\s*' + name + r'\b')
for i in range(len(lines)):
! if pat.match(lines[i]): return lines, i
else: raise IOError, 'could not find class definition'
***************
*** 278,283 ****
raise IOError, 'could not find function definition'
lnum = object.co_firstlineno - 1
while lnum > 0:
! if string.split(lines[lnum])[:1] == ['def']: break
lnum = lnum - 1
return lines, lnum
--- 277,283 ----
raise IOError, 'could not find function definition'
lnum = object.co_firstlineno - 1
+ pat = re.compile(r'^\s*def\s')
while lnum > 0:
! if pat.match(lines[lnum]): break
lnum = lnum - 1
return lines, lnum