imputil
index
/usr/lib/python1.6/imputil.py

# imputil.py
#
# Written by Greg Stein. Public Domain.
# No Copyright, no Rights Reserved, and no Warranties.
#
# Utilities to help out with custom import mechanisms.
#
# Additional modifications were contribed by Marc-Andre Lemburg and
# Gordon McMillan.
#
# This module is maintained by Greg and is available at:
#    http://www.lyra.org/greg/python/
#
# Since this isn't in the Python distribution yet, we'll use the CVS ID
# for tracking:
#   $Id: imputil.py,v 1.12 2000/02/19 13:36:23 gstein Exp $
#

 
Modules
            
__builtin__
imp
marshal
strop
struct
sys

 
Classes
            
DynLoadSuffixImporter
ImportManager
Importer
BuiltinImporter
_FilesystemImporter

 
class BuiltinImporter(Importer)
      ######################################################################
#
# Emulate the import mechanism for builtin and frozen modules
 
  
_do_import(self, parent, parts, fromlist) from Importer
_finish_import(self, top, parts, fromlist) from Importer
_import_fromlist(self, package, fromlist) from Importer
_import_one(self, parent, modname, fqname) from Importer
_load_tail(self, m, parts) from Importer
_process_result(self, (ispkg, code, values), fqname) from Importer
get_code(self, parent, modname, fqname)
import_top(self, name) from Importer

 
class DynLoadSuffixImporter
       
  
__init__(self, desc)
import_file(self, filename, finfo, fqname)

 
class ImportManager
      Manage the import process.
 
  
__init__(self, fs_imp=None)
_determine_import_context(self, globals)
Returns the context in which a module should be imported.
 
The context could be a loaded (package) module and the imported module
will be looked for within that package. The context could also be None,
meaning there is no context -- the module should be looked for as a
"top-level" module.
_import_hook(self, fqname, globals=None, locals=None, fromlist=None)
Python calls this hook to locate and import a module.
_import_top_module(self, name)
_reload_hook(self, module)
Python calls this hook to reload a module.
add_suffix(self, suffix, importFunc)
install(self, namespace={'ArithmeticError': <class exceptions.ArithmeticError at 818f510>, 'AssertionError': <class exceptions.AssertionError at 818f470>, 'AttributeError': <class exceptions.AttributeError at 818faf8>, 'EOFError': <class exceptions.EOFError at 818f150>, 'Ellipsis': Ellipsis, 'EnvironmentError': <class exceptions.EnvironmentError at 818cb48>, 'Exception': <class exceptions.Exception at 8186140>, 'FloatingPointError': <class exceptions.FloatingPointError at 818f650>, 'IOError': <class exceptions.IOError at 818c800>, 'ImportError': <class exceptions.ImportError at 818f1f0>, ...})
Install this ImportManager into the specified namespace.

 
class Importer
      Base class for replacing standard import functions.
 
  
_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.
_finish_import(self, top, parts, fromlist)
######################################################################
#
# PRIVATE METHODS
_import_fromlist(self, package, fromlist)
Import any sub-modules in the "from" list.
_import_one(self, parent, modname, fqname)
Import a single module.
_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.
_process_result(self, (ispkg, code, values), fqname)
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.
import_top(self, name)
Import a top-level module.

 
class _FilesystemImporter(Importer)
      ######################################################################
#
# Internal importer used for importing from the filesystem
 
  
__init__(self)
_do_import(self, parent, parts, fromlist) from Importer
_finish_import(self, top, parts, fromlist) from Importer
_import_fromlist(self, package, fromlist) from Importer
_import_one(self, parent, modname, fqname) from Importer
_import_pathname(self, pathname, fqname)
_load_tail(self, m, parts) from Importer
_process_result(self, (ispkg, code, values), fqname) from Importer
add_suffix(self, suffix, importFunc)
get_code(self, parent, modname, fqname)
import_from_dir(self, dir, fqname)
import_top(self, name) from Importer

 
Functions
            
_compile(pathname, timestamp)
Compile (and cache) a Python source file.
 
The file specified by <pathname> is compiled to a code object and
returned.
 
Presuming the appropriate privileges exist, the bytecodes will be
saved back to the filesystem for future imports. The source file's
modification timestamp must be provided as a Long value.
_os_bootstrap()
Set up 'os' module replacement functions for use during import bootstrap.
_os_path_isdir(pathname)
Local replacement for os.path.isdir().
_print_importers()
_test_revamp()
_timestamp(pathname)
Return the file modification time as a Long.
py_suffix_importer(filename, finfo, fqname)

 
Data
             _ModuleType = <type 'module'>
_StringType = <type 'string'>
__file__ = '/usr/lib/python1.6/imputil.pyc'
__name__ = 'imputil'
_os_path_join = None
_os_stat = None
_suffix = '.pyc'
_suffix_char = 'c'