diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2009-02-08 03:37:27 (GMT) |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2009-02-08 03:37:27 (GMT) |
commit | 9a1d6e3022c8eb3cc3b05a30ea975da971bd5938 (patch) | |
tree | 14c1d51e518f7ea189700355f1b2a004baf1e871 | |
parent | 3f48ae35c710c5e5101d5de6721b1e2ccb56df68 (diff) | |
download | cpython-9a1d6e3022c8eb3cc3b05a30ea975da971bd5938.zip cpython-9a1d6e3022c8eb3cc3b05a30ea975da971bd5938.tar.gz cpython-9a1d6e3022c8eb3cc3b05a30ea975da971bd5938.tar.bz2 |
Merged revisions 69425 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r69425 | nick.coghlan | 2009-02-08 13:17:00 +1000 (Sun, 08 Feb 2009) | 1 line
Issue #4512 closeout: Make ZipImport.get_filename() a public method
........
-rw-r--r-- | Doc/library/zipimport.rst | 9 | ||||
-rw-r--r-- | Lib/test/test_zipimport.py | 12 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/zipimport.c | 6 |
4 files changed, 21 insertions, 9 deletions
diff --git a/Doc/library/zipimport.rst b/Doc/library/zipimport.rst index 912378e..3fd0595 100644 --- a/Doc/library/zipimport.rst +++ b/Doc/library/zipimport.rst @@ -88,6 +88,15 @@ zipimporter Objects file wasn't found. + .. method:: get_filename(fullname) + + Return the value ``__file__`` would be set to if the specified module + was imported. Raise :exc:`ZipImportError` if the module couldn't be + found. + + .. versionadded:: 3.1 + + .. method:: get_source(fullname) Return the source code for the specified module. Raise diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 5637467..f41deaf 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -212,7 +212,7 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase): self.assertEquals(zi.archive, TEMP_ZIP) self.assertEquals(zi.is_package(TESTPACK), True) mod = zi.load_module(TESTPACK) - self.assertEquals(zi._get_filename(TESTPACK), mod.__file__) + self.assertEquals(zi.get_filename(TESTPACK), mod.__file__) self.assertEquals(zi.is_package(packdir + '__init__'), False) self.assertEquals(zi.is_package(packdir + TESTPACK2), True) @@ -224,11 +224,11 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase): mod = sys.modules[mod_name] self.assertEquals(zi.get_source(TESTPACK), None) self.assertEquals(zi.get_source(mod_path), None) - self.assertEquals(zi._get_filename(mod_path), mod.__file__) + self.assertEquals(zi.get_filename(mod_path), mod.__file__) # To pass in the module name instead of the path, we must use the right importer loader = mod.__loader__ self.assertEquals(loader.get_source(mod_name), None) - self.assertEquals(loader._get_filename(mod_name), mod.__file__) + self.assertEquals(loader.get_filename(mod_name), mod.__file__) # test prefix and archivepath members zi2 = zipimport.zipimporter(TEMP_ZIP + os.sep + TESTPACK) @@ -257,7 +257,7 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase): self.assertEquals(zi.prefix, packdir) self.assertEquals(zi.is_package(TESTPACK2), True) mod = zi.load_module(TESTPACK2) - self.assertEquals(zi._get_filename(TESTPACK2), mod.__file__) + self.assertEquals(zi.get_filename(TESTPACK2), mod.__file__) self.assertEquals(zi.is_package(TESTPACK2 + os.sep + '__init__'), False) self.assertEquals(zi.is_package(TESTPACK2 + os.sep + TESTMOD), False) @@ -268,11 +268,11 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase): mod = sys.modules[mod_name] self.assertEquals(zi.get_source(TESTPACK2), None) self.assertEquals(zi.get_source(mod_path), None) - self.assertEquals(zi._get_filename(mod_path), mod.__file__) + self.assertEquals(zi.get_filename(mod_path), mod.__file__) # To pass in the module name instead of the path, we must use the right importer loader = mod.__loader__ self.assertEquals(loader.get_source(mod_name), None) - self.assertEquals(loader._get_filename(mod_name), mod.__file__) + self.assertEquals(loader.get_filename(mod_name), mod.__file__) finally: z.close() os.remove(TEMP_ZIP) @@ -155,6 +155,9 @@ Core and Builtins Library ------- +- Issue #4512 (part 2): Promote ``ZipImporter._get_filename()`` to be a + public documented method ``ZipImporter.get_filename()``. + - Issue #4195: The ``runpy`` module (and the ``-m`` switch) now support the execution of packages by looking for and executing a ``__main__`` submodule when a package name is supplied. Initial patch by Andi diff --git a/Modules/zipimport.c b/Modules/zipimport.c index ba37f8b..53bc799 100644 --- a/Modules/zipimport.c +++ b/Modules/zipimport.c @@ -363,7 +363,7 @@ zipimporter_get_filename(PyObject *obj, PyObject *args) char *fullname, *modpath; int ispackage; - if (!PyArg_ParseTuple(args, "s:zipimporter._get_filename", + if (!PyArg_ParseTuple(args, "s:zipimporter.get_filename", &fullname)) return NULL; @@ -543,7 +543,7 @@ contain the module, but has no source for it."); PyDoc_STRVAR(doc_get_filename, -"_get_filename(fullname) -> filename string.\n\ +"get_filename(fullname) -> filename string.\n\ \n\ Return the filename for the specified module."); @@ -558,7 +558,7 @@ static PyMethodDef zipimporter_methods[] = { doc_get_code}, {"get_source", zipimporter_get_source, METH_VARARGS, doc_get_source}, - {"_get_filename", zipimporter_get_filename, METH_VARARGS, + {"get_filename", zipimporter_get_filename, METH_VARARGS, doc_get_filename}, {"is_package", zipimporter_is_package, METH_VARARGS, doc_is_package}, |