#!/usr/bin/env python # # $Id: parsers_structuredtext.py,v 1.1 2003/01/18 20:01:51 doughellmann Exp $ # # Copyright 2003 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. # """Structured text file parser. """ __rcs_info__ = { # # Creation Information # 'module_name' : '$RCSfile: parsers_structuredtext.py,v $', 'rcs_id' : '$Id: parsers_structuredtext.py,v 1.1 2003/01/18 20:01:51 doughellmann Exp $', 'creator' : 'Doug Hellmann ', 'project' : 'HappyDoc', 'created' : 'Sat, 18-Jan-2003 12:07:52 EST', # # Current Information # 'author' : '$Author: doughellmann $', 'version' : '$Revision: 1.1 $', 'date' : '$Date: 2003/01/18 20:01:51 $', } try: __version__ = __rcs_info__['version'].split(' ')[1] except: __version__ = '0.0' # # Import system modules # import re # # Import Local modules # from base import ParserBase import happydoclib from happydoclib.packagetree import PackageTree from happydoclib.status import statusMessage from happydoclib.trace import trace from happydoclib.utils import extractSummary # # Module # TRACE_LEVEL = 2 class StructuredTextFile(PackageTree): """Structured text file node. """ TEXT_FORMAT = 'StructuredText' def __init__(self, parent, name): trace.into('StructuredTextFile', '__init__', outputLevel=TRACE_LEVEL) PackageTree.__init__(self, parent, name) # # Derive the filename for this module. # filename = self.getInputFilename() statusMessage('Importing %s file: %s' % (self.TEXT_FORMAT, filename) ) self.readme_text = open(filename, 'rt').read() self.format = self.TEXT_FORMAT self.summary = extractSummary(self.readme_text) trace.outof(outputLevel=TRACE_LEVEL) return def getDocStringAndFormat(self): """Returns a tuple containing the actual documentation string and the format of that docstring as understood by the docstring converters plugins. """ return (self.readme_text, self.format) def getSummaryAndFormat(self): """Returns a tuple containing a one line summary of the documentation for the node and the format of that string as understood by the docstring converter plugins. """ return (self.summary, self.format) class StructuredTextFileParser(ParserBase): def __call__(self, parent, name): return StructuredTextFile(parent, name) def entryPoint(): return { 'mimetype':'text/x-structured', 'factory':StructuredTextFileParser, }