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.
diff --git a/Lib/linecache.py b/Lib/linecache.py
index 1b70c7c..2ccc6c6 100644
--- a/Lib/linecache.py
+++ b/Lib/linecache.py
@@ -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)