mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Merged revisions 74446-74449 via svnmerge from
svn+ssh://pythondev/python/trunk ........ r74446 | guilherme.polo | 2009-08-14 10:53:41 -0300 (Fri, 14 Aug 2009) | 1 line Issue #3344: Replace itertools.count by enumerate. ........ r74447 | guilherme.polo | 2009-08-14 11:03:07 -0300 (Fri, 14 Aug 2009) | 1 line Issue #3926: Fix the usage of the new showwarnings and formatwarning. ........ r74448 | guilherme.polo | 2009-08-14 11:36:45 -0300 (Fri, 14 Aug 2009) | 3 lines Issue #1135: Add the XView and YView mix-ins to avoid duplicating the xview* and yview* methods. ........ r74449 | guilherme.polo | 2009-08-14 11:43:43 -0300 (Fri, 14 Aug 2009) | 1 line Clarifying Entry.selection_present's docstring. ........
This commit is contained in:
parent
6837083582
commit
1fff008326
7 changed files with 74 additions and 150 deletions
|
@ -55,20 +55,21 @@ except ImportError:
|
|||
else:
|
||||
def idle_showwarning(message, category, filename, lineno,
|
||||
file=None, line=None):
|
||||
file = warning_stream
|
||||
if file is None:
|
||||
file = warning_stream
|
||||
try:
|
||||
file.write(warnings.formatwarning(message, category, filename,\
|
||||
file.write(warnings.formatwarning(message, category, filename,
|
||||
lineno, file=file, line=line))
|
||||
except IOError:
|
||||
pass ## file (probably __stderr__) is invalid, warning dropped.
|
||||
warnings.showwarning = idle_showwarning
|
||||
def idle_formatwarning(message, category, filename, lineno,
|
||||
file=None, line=None):
|
||||
def idle_formatwarning(message, category, filename, lineno, line=None):
|
||||
"""Format warnings the IDLE way"""
|
||||
s = "\nWarning (from warnings module):\n"
|
||||
s += ' File \"%s\", line %s\n' % (filename, lineno)
|
||||
line = linecache.getline(filename, lineno).strip() \
|
||||
if line is None else line
|
||||
if line is None:
|
||||
line = linecache.getline(filename, lineno)
|
||||
line = line.strip()
|
||||
if line:
|
||||
s += " %s\n" % line
|
||||
s += "%s: %s\n>>> " % (category.__name__, message)
|
||||
|
@ -81,18 +82,17 @@ def extended_linecache_checkcache(filename=None,
|
|||
|
||||
Rather than repeating the linecache code, patch it to save the
|
||||
<pyshell#...> entries, call the original linecache.checkcache()
|
||||
(which destroys them), and then restore the saved entries.
|
||||
(skipping them), and then restore the saved entries.
|
||||
|
||||
orig_checkcache is bound at definition time to the original
|
||||
method, allowing it to be patched.
|
||||
|
||||
"""
|
||||
cache = linecache.cache
|
||||
save = {}
|
||||
for filename in cache:
|
||||
if filename[:1] + filename[-1:] == '<>':
|
||||
save[filename] = cache[filename]
|
||||
orig_checkcache()
|
||||
for key in list(cache):
|
||||
if key[:1] + key[-1:] == '<>':
|
||||
save[key] = cache.pop(key)
|
||||
orig_checkcache(filename)
|
||||
cache.update(save)
|
||||
|
||||
# Patch linecache.checkcache():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue