]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Give up trying to keep dynamically loaded extensions up to date:
authorKa-Ping Yee <ping@zesty.ca>
Thu, 12 Apr 2001 13:37:39 +0000 (13:37 +0000)
committerKa-Ping Yee <ping@zesty.ca>
Thu, 12 Apr 2001 13:37:39 +0000 (13:37 +0000)
    the import.c machinery has soundly defeated my every attempt.

Lib/pydoc.py

index cc0f27b0afb19d0ec689aa4acde720e4311046ec..4a21bc3eefb283008f33e598cb3a648d7a63cba9 100755 (executable)
@@ -1017,7 +1017,13 @@ def freshimport(path, cache={}):
         # isn't good enough (e.g. what if the module contains a class that
         # inherits from another module that has changed?).
         if path not in sys.builtin_module_names:
-            del sys.modules[path]
+            # Python never loads a dynamic extension a second time from the
+            # same path, even if the file is changed or missing.  Deleting
+            # the entry in sys.modules doesn't help for dynamic extensions,
+            # so we're not even going to try to keep them up to date.
+            info = inspect.getmoduleinfo(sys.modules[path].__file__)
+            if info[3] != imp.C_EXTENSION:
+                del sys.modules[path]
     try:
         module = __import__(path)
     except: