mirror of https://github.com/python/cpython.git
#1325: Add docs and tests for zipimporter.archive and zipimporter.prefix.
This commit is contained in:
parent
516787dd98
commit
e260ba2d33
|
@ -33,21 +33,6 @@ Using the built-in :func:`reload` function will fail if called on a module
|
||||||
loaded from a ZIP archive; it is unlikely that :func:`reload` would be needed,
|
loaded from a ZIP archive; it is unlikely that :func:`reload` would be needed,
|
||||||
since this would imply that the ZIP has been altered during runtime.
|
since this would imply that the ZIP has been altered during runtime.
|
||||||
|
|
||||||
The available attributes of this module are:
|
|
||||||
|
|
||||||
|
|
||||||
.. exception:: ZipImportError
|
|
||||||
|
|
||||||
Exception raised by zipimporter objects. It's a subclass of :exc:`ImportError`,
|
|
||||||
so it can be caught as :exc:`ImportError`, too.
|
|
||||||
|
|
||||||
|
|
||||||
.. class:: zipimporter
|
|
||||||
|
|
||||||
The class for importing ZIP files. See section :ref:`zipimporter-objects`
|
|
||||||
for constructor details.
|
|
||||||
|
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
`PKZIP Application Note <http://www.pkware.com/business_and_developers/developer/appnote/>`_
|
`PKZIP Application Note <http://www.pkware.com/business_and_developers/developer/appnote/>`_
|
||||||
|
@ -63,18 +48,33 @@ The available attributes of this module are:
|
||||||
The PEP to add the import hooks that help this module work.
|
The PEP to add the import hooks that help this module work.
|
||||||
|
|
||||||
|
|
||||||
|
This module defines an exception:
|
||||||
|
|
||||||
|
.. exception:: ZipImportError
|
||||||
|
|
||||||
|
Exception raised by zipimporter objects. It's a subclass of :exc:`ImportError`,
|
||||||
|
so it can be caught as :exc:`ImportError`, too.
|
||||||
|
|
||||||
|
|
||||||
.. _zipimporter-objects:
|
.. _zipimporter-objects:
|
||||||
|
|
||||||
zipimporter Objects
|
zipimporter Objects
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
:class:`zipimporter` is the class for importing ZIP files.
|
||||||
|
|
||||||
.. class:: zipimporter(archivepath)
|
.. class:: zipimporter(archivepath)
|
||||||
|
|
||||||
Create a new zipimporter instance. *archivepath* must be a path to a zipfile.
|
Create a new zipimporter instance. *archivepath* must be a path to a ZIP file.
|
||||||
:exc:`ZipImportError` is raised if *archivepath* doesn't point to a valid ZIP
|
:exc:`ZipImportError` is raised if *archivepath* doesn't point to a valid ZIP
|
||||||
archive.
|
archive.
|
||||||
|
|
||||||
|
*archivepath* can also contain a path within the ZIP file -- the importer
|
||||||
|
object will then look under that path instead of the ZIP file root. For
|
||||||
|
example, an *archivepath* of :file:`foo/bar.zip/lib` will look for modules
|
||||||
|
in the :file:`lib` directory inside the ZIP file :file:`foo/bar.zip`
|
||||||
|
(provided that it exists).
|
||||||
|
|
||||||
|
|
||||||
.. method:: zipimporter.find_module(fullname[, path])
|
.. method:: zipimporter.find_module(fullname[, path])
|
||||||
|
|
||||||
|
@ -116,11 +116,22 @@ zipimporter Objects
|
||||||
:exc:`ZipImportError` if it wasn't found.
|
:exc:`ZipImportError` if it wasn't found.
|
||||||
|
|
||||||
|
|
||||||
Examples
|
.. attribute:: zipimporter.archive
|
||||||
--------
|
|
||||||
|
The file name of the importer's associated ZIP file.
|
||||||
|
|
||||||
|
|
||||||
|
.. attribute:: zipimporter.prefix
|
||||||
|
|
||||||
|
The path within the ZIP file where modules are searched; see
|
||||||
|
:class:`zipimporter` for details.
|
||||||
|
|
||||||
|
|
||||||
.. _zipimport-examples:
|
.. _zipimport-examples:
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
|
||||||
Here is an example that imports a module from a ZIP archive - note that the
|
Here is an example that imports a module from a ZIP archive - note that the
|
||||||
:mod:`zipimport` module is not explicitly used. ::
|
:mod:`zipimport` module is not explicitly used. ::
|
||||||
|
|
||||||
|
|
|
@ -223,6 +223,11 @@ def testZipImporterMethods(self):
|
||||||
mod = __import__(module_path_to_dotted_name(mod_name))
|
mod = __import__(module_path_to_dotted_name(mod_name))
|
||||||
self.assertEquals(zi.get_source(TESTPACK), None)
|
self.assertEquals(zi.get_source(TESTPACK), None)
|
||||||
self.assertEquals(zi.get_source(mod_name), None)
|
self.assertEquals(zi.get_source(mod_name), None)
|
||||||
|
|
||||||
|
# test prefix and archivepath members
|
||||||
|
zi2 = zipimport.zipimporter(TEMP_ZIP + os.sep + TESTPACK)
|
||||||
|
self.assertEquals(zi2.archive, TEMP_ZIP)
|
||||||
|
self.assertEquals(zi2.prefix, TESTPACK + os.sep)
|
||||||
finally:
|
finally:
|
||||||
z.close()
|
z.close()
|
||||||
os.remove(TEMP_ZIP)
|
os.remove(TEMP_ZIP)
|
||||||
|
|
Loading…
Reference in New Issue