mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Merged revisions 81438 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r81438 | benjamin.peterson | 2010-05-21 16:45:06 -0500 (Fri, 21 May 2010) | 25 lines Merged revisions 81428-81429,81432-81433,81437 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r81428 | benjamin.peterson | 2010-05-21 16:16:12 -0500 (Fri, 21 May 2010) | 1 line use addCleanup ........ r81429 | benjamin.peterson | 2010-05-21 16:17:22 -0500 (Fri, 21 May 2010) | 1 line fix name ........ r81432 | benjamin.peterson | 2010-05-21 16:31:24 -0500 (Fri, 21 May 2010) | 1 line ensure the last line has a trailing newline #8782 ........ r81433 | benjamin.peterson | 2010-05-21 16:32:49 -0500 (Fri, 21 May 2010) | 1 line remove debugging rubish ........ r81437 | benjamin.peterson | 2010-05-21 16:35:44 -0500 (Fri, 21 May 2010) | 1 line simplify and modernize updatecache() ........ ................
This commit is contained in:
parent
c7afb62cb8
commit
92e97a7166
3 changed files with 56 additions and 44 deletions
|
@ -73,13 +73,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 as msg:
|
||||
except OSError:
|
||||
basename = filename
|
||||
|
||||
# Try for a __loader__, if available
|
||||
|
@ -114,20 +114,23 @@ 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:
|
||||
# No luck
|
||||
return []
|
||||
with open(fullname, 'rb') as fp:
|
||||
coding, line = tokenize.detect_encoding(fp.readline)
|
||||
with open(fullname, 'r', encoding=coding) as fp:
|
||||
lines = fp.readlines()
|
||||
try:
|
||||
with open(fullname, 'rb') as fp:
|
||||
coding, line = tokenize.detect_encoding(fp.readline)
|
||||
with open(fullname, 'r', encoding=coding) as fp:
|
||||
lines = fp.readlines()
|
||||
except IOError:
|
||||
pass
|
||||
if lines and not lines[-1].endswith('\n'):
|
||||
lines[-1] += '\n'
|
||||
size, mtime = stat.st_size, stat.st_mtime
|
||||
cache[filename] = size, mtime, lines, fullname
|
||||
return lines
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue