(original) (raw)
http://hg.python.org/cpython/rev/8939c0196990
changeset: 86603:8939c0196990
user: Antoine Pitrou <solipsis@pitrou.net>
date: Thu Oct 24 22:23:42 2013 +0200
summary:
Close #19379: Lazily import linecache in the warnings module, to make startup with warnings faster until a warning gets printed.
files:
Lib/warnings.py | 6 ++----
Misc/NEWS | 3 +++
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/Lib/warnings.py b/Lib/warnings.py
--- a/Lib/warnings.py
+++ b/Lib/warnings.py
@@ -1,9 +1,5 @@
"""Python part of the warnings subsystem."""
-# Note: function level imports should *not* be used
-# in this module as it may cause import lock deadlock.
-# See bug 683658.
-import linecache
import sys
__all__ = ["warn", "showwarning", "formatwarning", "filterwarnings",
@@ -21,6 +17,7 @@
def formatwarning(message, category, filename, lineno, line=None):
"""Function to format a warning the standard way."""
+ import linecache
s = "%s:%s: %s: %s\n" % (filename, lineno, category.__name__, message)
line = linecache.getline(filename, lineno) if line is None else line
if line:
@@ -233,6 +230,7 @@
# Prime the linecache for formatting, in case the
# "file" is actually in a zipfile or something.
+ import linecache
linecache.getlines(filename, module_globals)
if action == "error":
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -21,6 +21,9 @@
Library
-------
+- Issue #19379: Lazily import linecache in the warnings module, to make
+ startup with warnings faster until a warning gets printed.
+
- Issue #19327: Fixed the working of regular expressions with too big charset.
- Issue #17400: New 'is_global' attribute for ipaddress to tell if an address
--
Repository URL: http://hg.python.org/cpython
_______________________________________________
Python-checkins mailing list
Python-checkins@python.org
https://mail.python.org/mailman/listinfo/python-checkins