]> granicus.if.org Git - python/commitdiff
Merged revisions 85429 via svnmerge from
authorBenjamin Peterson <benjamin@python.org>
Wed, 13 Oct 2010 22:02:44 +0000 (22:02 +0000)
committerBenjamin Peterson <benjamin@python.org>
Wed, 13 Oct 2010 22:02:44 +0000 (22:02 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85429 | benjamin.peterson | 2010-10-13 16:59:36 -0500 (Wed, 13 Oct 2010) | 1 line

  remove obselete import implementation #7287
........

Demo/imputil/knee.py [deleted file]
Misc/NEWS

diff --git a/Demo/imputil/knee.py b/Demo/imputil/knee.py
deleted file mode 100644 (file)
index 435b51c..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-"""An Python re-implementation of hierarchical module import.
-
-This code is intended to be read, not executed.  However, it does work
--- all you need to do to enable it is "import knee".
-
-(The name is a pun on the klunkier predecessor of this module, "ni".)
-
-"""
-
-import sys, imp, builtins
-
-
-# Replacement for __import__()
-def import_hook(name, globals=None, locals=None, fromlist=None):
-    parent = determine_parent(globals)
-    q, tail = find_head_package(parent, name)
-    m = load_tail(q, tail)
-    if not fromlist:
-        return q
-    if hasattr(m, "__path__"):
-        ensure_fromlist(m, fromlist)
-    return m
-
-def determine_parent(globals):
-    if not globals or  "__name__" not in globals:
-        return None
-    pname = globals['__name__']
-    if "__path__" in globals:
-        parent = sys.modules[pname]
-        assert globals is parent.__dict__
-        return parent
-    if '.' in pname:
-        i = pname.rfind('.')
-        pname = pname[:i]
-        parent = sys.modules[pname]
-        assert parent.__name__ == pname
-        return parent
-    return None
-
-def find_head_package(parent, name):
-    if '.' in name:
-        i = name.find('.')
-        head = name[:i]
-        tail = name[i+1:]
-    else:
-        head = name
-        tail = ""
-    if parent:
-        qname = "%s.%s" % (parent.__name__, head)
-    else:
-        qname = head
-    q = import_module(head, qname, parent)
-    if q: return q, tail
-    if parent:
-        qname = head
-        parent = None
-        q = import_module(head, qname, parent)
-        if q: return q, tail
-    raise ImportError("No module named " + qname)
-
-def load_tail(q, tail):
-    m = q
-    while tail:
-        i = tail.find('.')
-        if i < 0: i = len(tail)
-        head, tail = tail[:i], tail[i+1:]
-        mname = "%s.%s" % (m.__name__, head)
-        m = import_module(head, mname, m)
-        if not m:
-            raise ImportError("No module named " + mname)
-    return m
-
-def ensure_fromlist(m, fromlist, recursive=0):
-    for sub in fromlist:
-        if sub == "*":
-            if not recursive:
-                try:
-                    all = m.__all__
-                except AttributeError:
-                    pass
-                else:
-                    ensure_fromlist(m, all, 1)
-            continue
-        if sub != "*" and not hasattr(m, sub):
-            subname = "%s.%s" % (m.__name__, sub)
-            submod = import_module(sub, subname, m)
-            if not submod:
-                raise ImportError("No module named " + subname)
-
-def import_module(partname, fqname, parent):
-    try:
-        return sys.modules[fqname]
-    except KeyError:
-        pass
-    try:
-        fp, pathname, stuff = imp.find_module(partname,
-                                              parent and parent.__path__)
-    except ImportError:
-        return None
-    try:
-        m = imp.load_module(fqname, fp, pathname, stuff)
-    finally:
-        if fp: fp.close()
-    if parent:
-        setattr(parent, partname, m)
-    return m
-
-
-def reload(module):
-    name = module.__name__
-    if '.' not in name:
-        return import_module(name, name, None)
-    i = name.rfind('.')
-    pname = name[:i]
-    parent = sys.modules[pname]
-    return import_module(name[i+1:], name, parent)
-
-
-# Save the original hooks
-original_import = builtins.__import__
-
-# Now install our hooks
-builtins.__import__ = import_hook
index e3e7080ecdd7853f65af9b597c9647ae95ef5adf..bd9822b0ecce0a60aa8ff64a9dde221fec115c61 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -703,6 +703,12 @@ Documentation
 
 - Issue #7829: Document in dis that bytecode is an implementation detail.
 
+Tools/Demos
+-----------
+
+- Issue #7287: Demo/imputil/knee.py was removed.
+
+
 
 What's New in Python 3.1.2?
 ===========================