self.fail("release_lock() without lock should raise "
"RuntimeError")
+class ReloadTests(unittest.TestCase):
+
+ """Very basic tests to make sure that imp.reload() operates just like
+ reload()."""
+
+ def test_source(self):
+ import os
+ imp.reload(os)
+
+ def test_extension(self):
+ import time
+ imp.reload(time)
+
+ def test_builtin(self):
+ import marshal
+ imp.reload(marshal)
+
+
def test_main():
test_support.run_unittest(
LockTests,
+ ReloadTests,
)
if __name__ == "__main__":
Library
-------
+- Issue #2338: Create imp.reload() to help with transitioning to Python 3.0 as
+ the reload() built-in has been removed.
+
- Changed code in the following modules/packages to remove warnings raised
while running under the ``-3`` flag: aifc, asyncore, bdb, bsddb,
ConfigParser, cookielib, DocXMLRPCServer, email, filecmp, fileinput, inspect,
return PyModule_New(name);
}
+static PyObject *
+imp_reload(PyObject *self, PyObject *v)
+{
+ return PyImport_ReloadModule(v);
+}
+
+
/* Doc strings */
PyDoc_STRVAR(doc_imp,
"This module provides the components needed to build your own\n\
__import__ function. Undocumented functions are obsolete.");
+PyDoc_STRVAR(doc_reload,
+"reload(module) -> module\n\
+\n\
+Reload the module. The module must have been successfully imported before.");
+
PyDoc_STRVAR(doc_find_module,
"find_module(name, [path]) -> (file, filename, (suffix, mode, type))\n\
Search for a module. If path is omitted or None, search for a\n\
On platforms without threads, this function does nothing.");
static PyMethodDef imp_methods[] = {
+ {"reload", imp_reload, METH_O, doc_reload},
{"find_module", imp_find_module, METH_VARARGS, doc_find_module},
{"get_magic", imp_get_magic, METH_NOARGS, doc_get_magic},
{"get_suffixes", imp_get_suffixes, METH_NOARGS, doc_get_suffixes},