diff options
author | Benjamin Peterson <benjamin@python.org> | 2010-05-21 21:35:44 +0000 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2010-05-21 21:35:44 +0000 |
commit | 26da187193978ba497f8380fa3b1ad3fc67e94ad (patch) | |
tree | 8a9c4b657e06b97dc96db32e987d28380c0d9b54 /Lib/linecache.py | |
parent | b9e7c012942f0cfb827686636e4fa718aba173f5 (diff) | |
download | cpython-git-26da187193978ba497f8380fa3b1ad3fc67e94ad.tar.gz |
simplify and modernize updatecache()
Diffstat (limited to 'Lib/linecache.py')
-rw-r--r-- | Lib/linecache.py | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/Lib/linecache.py b/Lib/linecache.py index da62f0d175..811f27fe36 100644 --- a/Lib/linecache.py +++ b/Lib/linecache.py @@ -72,13 +72,13 @@ def updatecache(filename, module_globals=None): if filename in cache: del cache[filename] - if not filename or filename[0] + filename[-1] == '<>': + if not filename or (filename.startswith('<') and filename.endswith('>')): return [] fullname = filename try: stat = os.stat(fullname) - except os.error, msg: + except OSError: basename = filename # Try for a __loader__, if available @@ -115,20 +115,18 @@ def updatecache(filename, module_globals=None): fullname = os.path.join(dirname, basename) except (TypeError, AttributeError): # Not sufficiently string-like to do anything useful with. + continue + try: + stat = os.stat(fullname) + break + except os.error: pass - else: - try: - stat = os.stat(fullname) - break - except os.error: - pass else: return [] try: - fp = open(fullname, 'rU') - lines = fp.readlines() - fp.close() - except IOError, msg: + with open(fullname, 'rU') as fp: + lines = fp.readlines() + except IOError: return [] if lines and not lines[-1].endswith('\n'): lines[-1] += '\n' |