python/dist/src/Lib linecache.py, 1.12, 1.13 traceback.py, 1.30, 1.31
Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19767/Lib Modified Files: linecache.py traceback.py Log Message: SF #737473: Show up-to-date source code in tracebacks always. And add an optional argument 'filename' to linecache.checkcache() to enable checking caches per-file. Index: linecache.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/linecache.py,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- linecache.py 29 Jun 2003 16:59:43 -0000 1.12 +++ linecache.py 26 Oct 2004 09:16:41 -0000 1.13 @@ -40,11 +40,19 @@ return updatecache(filename) -def checkcache(): +def checkcache(filename=None): """Discard cache entries that are out of date. (This is not checked upon each call!)""" - for filename in cache.keys(): + if filename is None: + filenames = cache.keys() + else: + if filename in cache: + filenames = [filename] + else: + return + + for filename in filenames: size, mtime, lines, fullname = cache[filename] try: stat = os.stat(fullname) Index: traceback.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/traceback.py,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- traceback.py 18 Jan 2004 20:29:54 -0000 1.30 +++ traceback.py 26 Oct 2004 09:16:41 -0000 1.31 @@ -65,6 +65,7 @@ name = co.co_name _print(file, ' File "%s", line %d, in %s' % (filename,lineno,name)) + linecache.checkcache(filename) line = linecache.getline(filename, lineno) if line: _print(file, ' ' + line.strip()) tb = tb.tb_next @@ -96,6 +97,7 @@ co = f.f_code filename = co.co_filename name = co.co_name + linecache.checkcache(filename) line = linecache.getline(filename, lineno) if line: line = line.strip() else: line = None @@ -277,6 +279,7 @@ co = f.f_code filename = co.co_filename name = co.co_name + linecache.checkcache(filename) line = linecache.getline(filename, lineno) if line: line = line.strip() else: line = None
participants (1)
-
perky@users.sourceforge.net