[Python-checkins] python/dist/src/Lib linecache.py, 1.12,
1.13 traceback.py, 1.30, 1.31
perky at users.sourceforge.net
perky at users.sourceforge.net
Tue Oct 26 11:16:44 CEST 2004
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
More information about the Python-checkins
mailing list