#!/usr/bin/env python # # $Id: sysmodules.py,v 1.1 2002/12/27 18:34:36 doughellmann Exp $ # # Copyright 2002 Doug Hellmann. # # # All Rights Reserved # # Permission to use, copy, modify, and distribute this software and # its documentation for any purpose and without fee is hereby # granted, provided that the above copyright notice appear in all # copies and that both that copyright notice and this permission # notice appear in supporting documentation, and that the name of Doug # Hellmann not be used in advertising or publicity pertaining to # distribution of the software without specific, written prior # permission. # # DOUG HELLMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN # NO EVENT SHALL DOUG HELLMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS # OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # """Utilities for working with Python system modules. """ __rcs_info__ = { # # Creation Information # 'module_name' : '$RCSfile: sysmodules.py,v $', 'rcs_id' : '$Id: sysmodules.py,v 1.1 2002/12/27 18:34:36 doughellmann Exp $', 'creator' : 'Doug Hellmann ', 'project' : 'HappyDoc', 'created' : 'Fri, 27-Dec-2002 11:19:36 EST', # # Current Information # 'author' : '$Author: doughellmann $', 'version' : '$Revision: 1.1 $', 'date' : '$Date: 2002/12/27 18:34:36 $', } try: __version__ = __rcs_info__['version'].split(' ')[1] except: __version__ = '0.0' # # Import system modules # import glob import os import string import sys # # Import Local modules # # # Module # # # Find a list of system modules for creating reference # links to them. # _sysdirs = [] version_dir='python%d.%d' % (sys.version_info[0], sys.version_info[1]) for path in sys.path: path_parts = string.split(path, os.sep) if (version_dir in path_parts) and ('site-packages' not in path_parts): # system directory _sysdirs.append(path) _sys_modules = [] for path in _sysdirs: module_list = glob.glob( os.path.join( path, '*.py' ) ) module_file_names = map(os.path.basename, module_list) for name in module_file_names: name = name[:-3] if name: #print 'System module %s/%s.py' % (path, name) _sys_modules.append(name) shared_lib_list = glob.glob( os.path.join( path, '*.so' ) ) shared_lib_file_names = map(os.path.basename, shared_lib_list) for name in shared_lib_file_names: #print 'Shared library %s/%s' % (path, name) name = name[:-3] #print ' name="%s"' % name if name: _sys_modules.append(name) _well_known_names = ( 'regex', 'sys', 'thread', 'threading', 'new' ) for _name in _well_known_names: _sys_modules.append(_name) #print _sys_modules #sys.exit(1) PYTHON_LIB_DOC_ROOT = 'http://www.python.org/doc/current/lib' def getPythonSystemModuleURL(moduleName, root=PYTHON_LIB_DOC_ROOT): """Returns a URL pointing to the documentation for the named module. """ global _sys_modules if moduleName in _sys_modules: href = '%s/module-%s.html' % (root, moduleName) else: href = None return href