org.python.modules.zipimport

## Class zipimporter

- java.lang.Object
- - org.python.core.PyObject
  - - org.python.core.util.importer<PyObject>
    - - org.python.modules.zipimport.zipimporter

All Implemented Interfaces:
  Serializable, Traverseproc

Direct Known Subclasses:
  zipimporterDerived

    public class zipimporter
    extends importer<PyObject>
    implements Traverseproc

Import Python modules and packages from ZIP-format archives.

Author:
  Philip Jenvey
See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class org.python.core.PyObject

`PyObject.ConversionException`

### Field Summary

Fields
`static PyString` `__doc__`
`String` `archive` Pathname of the Zip archive
`PyObject` `files` Dict with file info {path: tocEntry}
`String` `prefix` File prefix: "a/sub/directory/"
`static PyType` `TYPE`

### Fields inherited from class org.python.core.PyObject

`gcMonitorGlobal`

### Constructor Summary

Constructors
Constructor and Description
`zipimporter()`
`zipimporter(PyType subType)`
`zipimporter(String path)`

### Method Summary

Methods
`PyObject` `find_module(String fullname)`
`PyObject` `find_module(String fullname, String path)` Find the module for the fully qualified name.
`PyObject` `get_code(String fullname)` Return the code object associated with the module.
`String` `get_data(String path)` Return the uncompressed data for the file at the specified path as a String.
`PyObject` `get_filename(String fullname)`
`String` `get_source(String fullname)` Return the source code for the module as a string (using newline characters for line endings)
`boolean` `is_package(String fullname)` Return a boolean signifying whether the module is a package or not.
`PyObject` `load_module(String fullname)` Load a module for the fully qualified name.
`org.python.modules.zipimport.zipimporter.ZipBundle` `makeBundle(String datapath, PyObject entry)` Given a path to a compressed file in the archive, return the file's (uncompressed) data stream in a ZipBundle.
`boolean` `refersDirectlyTo(PyObject ob)` Optional operation.
`String` `toString()`
`int` `traverse(Visitproc visit, Object arg)` Traverses all directly contained `PyObject`s.

### Methods inherited from class org.python.core.PyObject

`__abs__, __add__, __and__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delattr__, __delete__, __delitem__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __format__, __ge__, __get__, __getattr__, __getattr__, __getitem__, __getitem__, __getnewargs__, __getslice__, __getslice__, __gt__, __hash__, __hex__, __iadd__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iter__, __iternext__, __itruediv__, __ixor__, __le__, __len__, __long__, __lshift__, __lt__, __mod__, __mul__, __ne__, __neg__, __nonzero__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setattr__, __setitem__, __setitem__, __setitem__, __setslice__, __setslice__, __str__, __sub__, __tojava__, __truediv__, __trunc__, __unicode__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _doget, _doget, _doset, _eq, _floordiv, _ge, _gt, _iadd, _iand, _idiv, _idivmod, _ifloordiv, _ilshift, _imod, _imul, _in, _ior, _ipow, _irshift, _is, _isnot, _isub, _itruediv, _ixor, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _truediv, _xor, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, fastGetDict, getDict, getType, hashCode, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, isMappingType, isNumberType, isSequenceType, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### TYPE

    public static final PyType TYPE

#### __doc__

    public static final PyString __doc__

#### archive

    public String archive

Pathname of the Zip archive

#### prefix

    public String prefix

File prefix: "a/sub/directory/"

#### files

    public PyObject files

Dict with file info {path: tocEntry}

### Constructor Detail

#### zipimporter

    public zipimporter()

#### zipimporter

    public zipimporter(PyType subType)

#### zipimporter

    public zipimporter(String path)

### Method Detail

#### find_module

    public PyObject find_module(String fullname)

#### find_module

    public PyObject find_module(String fullname,
                       String path)

Find the module for the fully qualified name.

Parameters:
  `fullname` - the fully qualified name of the module
  `path` - if not installed on the meta-path None or a module path
Returns:
  a loader instance if this importer can load the module, None otherwise

#### load_module

    public PyObject load_module(String fullname)

Load a module for the fully qualified name.

Parameters:
  `fullname` - the fully qualified name of the module
Returns:
  a loaded PyModule

#### get_data

    public String get_data(String path)

Return the uncompressed data for the file at the specified path as a String.

Parameters:
  `path` - a String path name within the archive
Returns:
  a String of data in binary mode (no CRLF)

#### is_package

    public boolean is_package(String fullname)

Return a boolean signifying whether the module is a package or not.

Parameters:
  `fullname` - the fully qualified name of the module
Returns:
  a boolean describing if the module is a package

#### get_code

    public PyObject get_code(String fullname)

Return the code object associated with the module.

Parameters:
  `fullname` - the fully qualified name of the module
Returns:
  the module's PyCode object or None

#### get_filename

    public PyObject get_filename(String fullname)

#### get_source

    public String get_source(String fullname)

Return the source code for the module as a string (using newline characters for line endings)

Parameters:
  `fullname` - the fully qualified name of the module
Returns:
  a String of the module's source code or null

#### makeBundle

    public org.python.modules.zipimport.zipimporter.ZipBundle makeBundle(String datapath,
                                                                PyObject entry)

Given a path to a compressed file in the archive, return the file's (uncompressed) data stream in a ZipBundle.

Parameters:
  `datapath` - file's filename inside of the archive
Returns:
  a ZipBundle with an InputStream to the file's uncompressed data

#### toString

    public String toString()

Overrides:
  `toString` in class `PyObject`

#### traverse

    public int traverse(Visitproc visit,
               Object arg)

Description copied from interface: `Traverseproc`
Traverses all directly contained `PyObject`s. Like in CPython, `arg` must be passed unmodified to `visit` as its second parameter. If `Visitproc.visit(PyObject, Object)` returns nonzero, this return value must be returned immediately by traverse. `Visitproc.visit(PyObject, Object)` must not be called with a `null` PyObject-argument.

Specified by:
  `traverse` in interface `Traverseproc`

#### refersDirectlyTo

    public boolean refersDirectlyTo(PyObject ob)

Description copied from interface: `Traverseproc`
Optional operation. Should only be implemented if it is more efficient than calling `Traverseproc.traverse(Visitproc, Object)` with a visitproc that just watches out for `ob`. Must return `false` if `ob` is `null`.

Specified by:
  `refersDirectlyTo` in interface `Traverseproc`