If an extension can't be loaded, print warning and skip it instead of
erroring out.
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 4015c9e..5e0a571 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -744,7 +744,11 @@
return idleConf.GetExtensions(editor_only=True)
def load_extension(self, name):
- mod = __import__(name, globals(), locals(), [])
+ try:
+ mod = __import__(name, globals(), locals(), [])
+ except ImportError:
+ print "\nFailed to import extension: ", name
+ return
cls = getattr(mod, name)
keydefs = idleConf.GetExtensionBindings(name)
if hasattr(cls, "menudefs"):
@@ -762,7 +766,6 @@
methodname = methodname + "_event"
if hasattr(ins, methodname):
self.text.bind(vevent, getattr(ins, methodname))
- return ins
def apply_bindings(self, keydefs=None):
if keydefs is None:
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 4bd5786..5eca893 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,9 @@
*Release date: XX-XXX-2005*
+- If an extension can't be loaded, print warning and skip it instead of
+ erroring out.
+
- The GUI was hanging if the shell window was closed while a raw_input()
was pending. Restored the quit() of the readline() mainloop().
http://mail.python.org/pipermail/idle-dev/2004-December/002307.html
@@ -142,7 +145,7 @@
*Release date: 29-Jul-2003*
-- Added a banner to the shell discussimg warnings possibly raised by personal
+- Added a banner to the shell discussing warnings possibly raised by personal
firewall software. Added same comment to README.txt.