Mercurial > cpython-lru_cache-weakref
diff Lib/inspect.py @ 70799:6cc4579dca02 3.2
allow "fake" filenames in findsource (closes #9284)
This allows findsource() to work in doctests.
A patch from Dirkjan Ochtman.
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 11 Jun 2011 15:53:11 -0500 |
| parents | 57e99f5f5e8f |
| children | 2ef359d7a2e9 f05affb0bb2a |
line wrap: on
line diff
--- a/Lib/inspect.py Sat Jun 11 10:34:19 2011 +0200 +++ b/Lib/inspect.py Sat Jun 11 15:53:11 2011 -0500 @@ -518,9 +518,13 @@ or code object. The source code is returned as a list of all the lines in the file and the line number indexes a line in that list. An IOError is raised if the source code cannot be retrieved.""" - file = getsourcefile(object) - if not file: + + file = getfile(object) + sourcefile = getsourcefile(object) + if not sourcefile and file[0] + file[-1] != '<>': raise IOError('source code not available') + file = sourcefile if sourcefile else file + module = getmodule(object, file) if module: lines = linecache.getlines(file, module.__dict__)
