Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9a1d6e3

Browse files
committed
Merged revisions 69425 via svnmerge from
svn+ssh://[email protected]/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 ........
1 parent 3f48ae3 commit 9a1d6e3

4 files changed

Lines changed: 21 additions & 9 deletions

File tree

Doc/library/zipimport.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ zipimporter Objects
8888
file wasn't found.
8989

9090

91+
.. method:: get_filename(fullname)
92+
93+
Return the value ``__file__`` would be set to if the specified module
94+
was imported. Raise :exc:`ZipImportError` if the module couldn't be
95+
found.
96+
97+
.. versionadded:: 3.1
98+
99+
91100
.. method:: get_source(fullname)
92101

93102
Return the source code for the specified module. Raise

Lib/test/test_zipimport.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ def testZipImporterMethods(self):
212212
self.assertEquals(zi.archive, TEMP_ZIP)
213213
self.assertEquals(zi.is_package(TESTPACK), True)
214214
mod = zi.load_module(TESTPACK)
215-
self.assertEquals(zi._get_filename(TESTPACK), mod.__file__)
215+
self.assertEquals(zi.get_filename(TESTPACK), mod.__file__)
216216

217217
self.assertEquals(zi.is_package(packdir + '__init__'), False)
218218
self.assertEquals(zi.is_package(packdir + TESTPACK2), True)
@@ -224,11 +224,11 @@ def testZipImporterMethods(self):
224224
mod = sys.modules[mod_name]
225225
self.assertEquals(zi.get_source(TESTPACK), None)
226226
self.assertEquals(zi.get_source(mod_path), None)
227-
self.assertEquals(zi._get_filename(mod_path), mod.__file__)
227+
self.assertEquals(zi.get_filename(mod_path), mod.__file__)
228228
# To pass in the module name instead of the path, we must use the right importer
229229
loader = mod.__loader__
230230
self.assertEquals(loader.get_source(mod_name), None)
231-
self.assertEquals(loader._get_filename(mod_name), mod.__file__)
231+
self.assertEquals(loader.get_filename(mod_name), mod.__file__)
232232

233233
# test prefix and archivepath members
234234
zi2 = zipimport.zipimporter(TEMP_ZIP + os.sep + TESTPACK)
@@ -257,7 +257,7 @@ def testZipImporterMethodsInSubDirectory(self):
257257
self.assertEquals(zi.prefix, packdir)
258258
self.assertEquals(zi.is_package(TESTPACK2), True)
259259
mod = zi.load_module(TESTPACK2)
260-
self.assertEquals(zi._get_filename(TESTPACK2), mod.__file__)
260+
self.assertEquals(zi.get_filename(TESTPACK2), mod.__file__)
261261

262262
self.assertEquals(zi.is_package(TESTPACK2 + os.sep + '__init__'), False)
263263
self.assertEquals(zi.is_package(TESTPACK2 + os.sep + TESTMOD), False)
@@ -268,11 +268,11 @@ def testZipImporterMethodsInSubDirectory(self):
268268
mod = sys.modules[mod_name]
269269
self.assertEquals(zi.get_source(TESTPACK2), None)
270270
self.assertEquals(zi.get_source(mod_path), None)
271-
self.assertEquals(zi._get_filename(mod_path), mod.__file__)
271+
self.assertEquals(zi.get_filename(mod_path), mod.__file__)
272272
# To pass in the module name instead of the path, we must use the right importer
273273
loader = mod.__loader__
274274
self.assertEquals(loader.get_source(mod_name), None)
275-
self.assertEquals(loader._get_filename(mod_name), mod.__file__)
275+
self.assertEquals(loader.get_filename(mod_name), mod.__file__)
276276
finally:
277277
z.close()
278278
os.remove(TEMP_ZIP)

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ Core and Builtins
155155
Library
156156
-------
157157

158+
- Issue #4512 (part 2): Promote ``ZipImporter._get_filename()`` to be a
159+
public documented method ``ZipImporter.get_filename()``.
160+
158161
- Issue #4195: The ``runpy`` module (and the ``-m`` switch) now support
159162
the execution of packages by looking for and executing a ``__main__``
160163
submodule when a package name is supplied. Initial patch by Andi

Modules/zipimport.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ zipimporter_get_filename(PyObject *obj, PyObject *args)
363363
char *fullname, *modpath;
364364
int ispackage;
365365

366-
if (!PyArg_ParseTuple(args, "s:zipimporter._get_filename",
366+
if (!PyArg_ParseTuple(args, "s:zipimporter.get_filename",
367367
&fullname))
368368
return NULL;
369369

@@ -543,7 +543,7 @@ contain the module, but has no source for it.");
543543

544544

545545
PyDoc_STRVAR(doc_get_filename,
546-
"_get_filename(fullname) -> filename string.\n\
546+
"get_filename(fullname) -> filename string.\n\
547547
\n\
548548
Return the filename for the specified module.");
549549

@@ -558,7 +558,7 @@ static PyMethodDef zipimporter_methods[] = {
558558
doc_get_code},
559559
{"get_source", zipimporter_get_source, METH_VARARGS,
560560
doc_get_source},
561-
{"_get_filename", zipimporter_get_filename, METH_VARARGS,
561+
{"get_filename", zipimporter_get_filename, METH_VARARGS,
562562
doc_get_filename},
563563
{"is_package", zipimporter_is_package, METH_VARARGS,
564564
doc_is_package},

0 commit comments

Comments
 (0)