#!/usr/bin/env python """ FileList.py A quick, hacky script to contruct a file list from a set of Python files. """ import os, re, sys from glob import glob from types import * class FileList: """Builds a file list for a package of Python modules.""" def __init__(self, name): self._name = name self._files = [] self._verbose = 0 self._filesToIgnore = [] def addFilesToIgnore(self, list): self._filesToIgnore.extend(list) def readFiles(self, filename): filenames = glob(filename) for name in filenames: self.readFile(name) def readFile(self, name): if name in self._filesToIgnore: if self._verbose: print 'Skipping %s...' % name return if self._verbose: print 'Reading %s...' % name self._files.append(name) def printForWeb(self, file=sys.stdout): if type(file) is StringType: file = open(file, 'w') close = 1 else: close = 0 name = self._name title = 'File list of %s' % name other = ('alphabetical class list' ' and class hierarchy' ' of %s' % name) file.write(''' %s

%s

See also the %s.

''' % (title, title, other)) file.write('' '\n') files = self._files files.sort(lambda a, b: cmp(a.lower(), b.lower())) for filename in files: file.write('\n' % self.links(filename)) file.write('''
Source FileSourceDocSummary
%s
''') if close: file.close() def links(self, filename): """In support of printForWeb()""" name = self._name module = os.path.splitext(filename)[0] links = [] # souce file if os.path.exists(filename): links.append('%s' % (filename, filename)) else: links.append(' ') # highlighted source file if os.path.exists('Docs/Source/Files/%s.html' % module): links.append('source' % module) else: links.append(' ') # doc file if os.path.exists('Docs/Source/Docs/%s.%s.html' % (name, module)): links.append('doc' % (name, module)) else: links.append(' ') # summary file if os.path.exists('Docs/Source/Summaries/%s.html' % module): links.append('summary' % module) else: links.append(' ') # finish up return ''.join(links) def main(args): filelist = FileList() for filename in args: filelist.readFiles(filename) filelist.printList() if __name__ == '__main__': main(sys.argv[1:])