Issue 11718: Teach IDLE's open module dialog to find packages.
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 935a39f..77dcd50 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -48,6 +48,21 @@
path = module.__path__
except AttributeError:
raise ImportError, 'No source for module ' + module.__name__
+ if descr[2] != imp.PY_SOURCE:
+ # If all of the above fails and didn't raise an exception,fallback
+ # to a straight import which can find __init__.py in a package.
+ m = __import__(fullname)
+ try:
+ filename = m.__file__
+ except AttributeError:
+ pass
+ else:
+ file = None
+ base, ext = os.path.splitext(filename)
+ if ext == '.pyc':
+ ext = '.py'
+ filename = base + ext
+ descr = filename, None, imp.PY_SOURCE
return file, filename, descr
class EditorWindow(object):
diff --git a/Misc/NEWS b/Misc/NEWS
index a3d5761..4d43f55 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -336,6 +336,12 @@
- Issue #1099: Fix the build on MacOSX when building a framework with pydebug
using GCC 4.0.
+IDLE
+----
+
+- Issue #11718: IDLE's open module dialog couldn't find the __init__.py
+ file in a package.
+
Tests
-----