Module imputil :: Class Importer
[hide private]
[frames] | no frames]

_ClassType Importer

Known Subclasses:

Base class for replacing standard import functions.

Instance Methods [hide private]
 
import_top(self, name)
Import a top-level module.
 
_finish_import(self, top, parts, fromlist)
 
_import_one(self, parent, modname, fqname)
Import a single module.
 
_process_result(self, (ispkg, code, values), fqname)
 
_load_tail(self, m, parts)
Import the rest of the modules, down from the top-level module.
 
_import_fromlist(self, package, fromlist)
Import any sub-modules in the "from" list.
 
_do_import(self, parent, parts, fromlist)
Attempt to import the module relative to parent.
 
get_code(self, parent, modname, fqname)
Find and retrieve the code for the given module.
Method Details [hide private]

_load_tail(self, m, parts)

 

Import the rest of the modules, down from the top-level module.

Returns the last module in the dotted list of modules.

_do_import(self, parent, parts, fromlist)

 

Attempt to import the module relative to parent.

This method is used when the import context specifies that <self> imported the parent module.

get_code(self, parent, modname, fqname)

 
Find and retrieve the code for the given module.

parent specifies a parent module to define a context for importing. It
may be None, indicating no particular context for the search.

modname specifies a single module (not dotted) within the parent.

fqname specifies the fully-qualified module name. This is a
(potentially) dotted name from the "root" of the module namespace
down to the modname.
If there is no parent, then modname==fqname.

This method should return None, or a 3-tuple.

* If the module was not found, then None should be returned.

* The first item of the 2- or 3-tuple should be the integer 0 or 1,
    specifying whether the module that was found is a package or not.

* The second item is the code object for the module (it will be
    executed within the new module's namespace). This item can also
    be a fully-loaded module object (e.g. loaded from a shared lib).

* The third item is a dictionary of name/value pairs that will be
    inserted into new module before the code object is executed. This
    is provided in case the module's code expects certain values (such
    as where the module was found). When the second item is a module
    object, then these names/values will be inserted *after* the module
    has been loaded/initialized.