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
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'