mirror of
https://github.com/python/cpython.git
synced 2025-07-30 06:34:15 +00:00
Add imp.reload(). This to help with transitioning to 3.0 the reload() built-in
has been removed there.
This commit is contained in:
parent
c777a412f1
commit
3aa2a49ec9
3 changed files with 35 additions and 0 deletions
|
@ -37,9 +37,28 @@ class LockTests(unittest.TestCase):
|
||||||
self.fail("release_lock() without lock should raise "
|
self.fail("release_lock() without lock should raise "
|
||||||
"RuntimeError")
|
"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():
|
def test_main():
|
||||||
test_support.run_unittest(
|
test_support.run_unittest(
|
||||||
LockTests,
|
LockTests,
|
||||||
|
ReloadTests,
|
||||||
)
|
)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
@ -41,6 +41,9 @@ Core and Builtins
|
||||||
Library
|
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
|
- Changed code in the following modules/packages to remove warnings raised
|
||||||
while running under the ``-3`` flag: aifc, asyncore, bdb, bsddb,
|
while running under the ``-3`` flag: aifc, asyncore, bdb, bsddb,
|
||||||
ConfigParser, cookielib, DocXMLRPCServer, email, filecmp, fileinput, inspect,
|
ConfigParser, cookielib, DocXMLRPCServer, email, filecmp, fileinput, inspect,
|
||||||
|
|
|
@ -3030,12 +3030,24 @@ imp_new_module(PyObject *self, PyObject *args)
|
||||||
return PyModule_New(name);
|
return PyModule_New(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
imp_reload(PyObject *self, PyObject *v)
|
||||||
|
{
|
||||||
|
return PyImport_ReloadModule(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Doc strings */
|
/* Doc strings */
|
||||||
|
|
||||||
PyDoc_STRVAR(doc_imp,
|
PyDoc_STRVAR(doc_imp,
|
||||||
"This module provides the components needed to build your own\n\
|
"This module provides the components needed to build your own\n\
|
||||||
__import__ function. Undocumented functions are obsolete.");
|
__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,
|
PyDoc_STRVAR(doc_find_module,
|
||||||
"find_module(name, [path]) -> (file, filename, (suffix, mode, type))\n\
|
"find_module(name, [path]) -> (file, filename, (suffix, mode, type))\n\
|
||||||
Search for a module. If path is omitted or None, search for a\n\
|
Search for a module. If path is omitted or None, search for a\n\
|
||||||
|
@ -3080,6 +3092,7 @@ Release the interpreter's import lock.\n\
|
||||||
On platforms without threads, this function does nothing.");
|
On platforms without threads, this function does nothing.");
|
||||||
|
|
||||||
static PyMethodDef imp_methods[] = {
|
static PyMethodDef imp_methods[] = {
|
||||||
|
{"reload", imp_reload, METH_O, doc_reload},
|
||||||
{"find_module", imp_find_module, METH_VARARGS, doc_find_module},
|
{"find_module", imp_find_module, METH_VARARGS, doc_find_module},
|
||||||
{"get_magic", imp_get_magic, METH_NOARGS, doc_get_magic},
|
{"get_magic", imp_get_magic, METH_NOARGS, doc_get_magic},
|
||||||
{"get_suffixes", imp_get_suffixes, METH_NOARGS, doc_get_suffixes},
|
{"get_suffixes", imp_get_suffixes, METH_NOARGS, doc_get_suffixes},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue