mirror of
https://github.com/python/cpython.git
synced 2026-03-06 04:50:58 +00:00
Fix infinite regress when inspecting <string> or <stdin> frames.
This commit is contained in:
parent
de9b624fb9
commit
72ae6c80d4
1 changed files with 7 additions and 1 deletions
|
|
@ -353,7 +353,13 @@ def getsourcefile(object):
|
|||
if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix:
|
||||
# Looks like a binary file. We want to only return a text file.
|
||||
return None
|
||||
if os.path.exists(filename) or hasattr(getmodule(object), '__loader__'):
|
||||
if os.path.exists(filename):
|
||||
return filename
|
||||
# Ugly but necessary - '<stdin>' and '<string>' mean that getmodule()
|
||||
# would infinitely recurse, because they're not real files nor loadable
|
||||
# Note that this means that writing a PEP 302 loader that uses '<'
|
||||
# at the start of a filename is now not a good idea. :(
|
||||
if filename[:1]!='<' and hasattr(getmodule(object), '__loader__'):
|
||||
return filename
|
||||
|
||||
def getabsfile(object):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue