[Happydoc-checkins] CVS: HappyDoc3/happydoclib appclass.py,1.3,1.4
Brought to you by:
doughellmann,
krlosaqp
|
From: Doug H. <dou...@us...> - 2002-11-17 16:21:33
|
Update of /cvsroot/happydoc/HappyDoc3/happydoclib
In directory usw-pr-cvs1:/tmp/cvs-serv27019/happydoclib
Modified Files:
appclass.py
Log Message:
Different parsing routines based on the file extension.
Simple, simulated, output writer that really just prints filenames.
Index: appclass.py
===================================================================
RCS file: /cvsroot/happydoc/HappyDoc3/happydoclib/appclass.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** appclass.py 17 Nov 2002 15:15:26 -0000 1.3
--- appclass.py 17 Nov 2002 16:21:31 -0000 1.4
***************
*** 67,70 ****
--- 67,71 ----
import happydoclib
from happydoclib.scanner import Scanner
+ from happydoclib.trace import trace
#
***************
*** 129,133 ****
self.addIgnoreDirectoryPattern('(CVS|dist|build|docs?|.*pyc|.*~)')
- ## self.parser_function = happydoclib.parseinfo.getDocs
return
--- 130,133 ----
***************
*** 313,379 ****
return scanner
! def parseInputs(self, scanner):
! package_trees = scanner.getPackageTrees()
!
! for package_tree in package_trees:
! pass
!
! return
!
! def main(self, *args):
! self.statusMessage('%s version %s' % (self._app_name,
! self._app_version))
#
! # Get the list of modules to input
#
! if not args:
! #
! # No files specified, print a help message and exit.
! #
! self.showHelp('Specify input file(s) to be processed.')
! raise self.HelpRequested, 'No input file(s) specified.'
else:
! input_modules = []
! for input_module_name in args:
! input_modules.append(os.path.normcase(input_module_name))
#
! # Create the scanner, and get the package trees.
#
! scanner = self.scanForInput(input_modules)
! self.showPackageTree(scanner)
return
! def showPackageTree(self, scanner):
package_trees = scanner.getPackageTrees()
for package_tree in package_trees:
! package_tree.walk(self.showPackageTreeCB)
! return
- def showPackageTreeCB(self, packageTreeNode):
- path = packageTreeNode.getPath()
- indent = ' ' * len(path)
- self.statusMessage('%s%s' % (indent, packageTreeNode.getName()))
return
!
! def old_main(self, *args):
! self.statusMessage('%s version %s' % (self._app_name,
! self._app_version))
! #
! # Debug info about where the docsets and formatters come from
! #
! self.statusMessage('Docstring converters from %s' % \
! happydoclib.docstring.__path__[0], 1)
! self.statusMessage('Docsets list from %s' % \
! happydoclib.docset.__path__[0], 1)
! self.statusMessage('Formatters from %s' % \
! happydoclib.formatter.__path__[0], 1)
#
# Set default parser params
--- 313,477 ----
return scanner
! def parsePythonInput(self, packageTreeNode):
! trace.into('HappyDoc', 'parsePythonInput',
! packageTreeNode=packageTreeNode,
! )
! #
! # Derive the filename for this module.
! #
! node_path = packageTreeNode.getPath(1)
! filename = apply(os.path.join, node_path)
! trace.writeVar(filename=filename)
! self.statusMessage('Parsing: %s' % filename)
#
! # Figure out if there is a parent node for the
! # documentation suite.
#
! package_parent = packageTreeNode.getParent()
! if package_parent and hasattr(package_parent, 'docs'):
! docs_parent = package_parent.docs
else:
! docs_parent = None
+ trace.writeVar(docs_parent=docs_parent)
+
+ docs = happydoclib.parseinfo.getDocs(
+ parent=docs_parent,
+ fileName=filename,
+ includeComments=self.include_comments,
+ defaultConfigValues=self.parser_params,
+ )
+
+ packageTreeNode.docs = docs
+
+ trace.outof()
+ return
+
+ def parsePlainTextInput(self, packageTreeNode):
+ trace.into('HappyDoc', 'parsePlainTextInput',
+ packageTreeNode=packageTreeNode,
+ )
#
! # Derive the filename for this module.
#
! node_path = packageTreeNode.getPath(1)
! filename = apply(os.path.join, node_path)
! trace.writeVar(filename=filename)
+ self.statusMessage('Importing preformatted file: %s' % filename)
+
+ f = open(filename, 'rt')
+ body = f.read()
+ f.close()
+
+ packageTreeNode.preformatted_text = body
+
+ trace.outof()
return
! def parseInputCB(self, packageTreeNode):
! trace.into('HappyDoc', 'parseInputCB',
! packageTreeNode=packageTreeNode,
! )
!
! node_name = packageTreeNode.getName()
!
! extension = os.path.splitext(node_name)[1]
!
! if extension == '.py':
! #
! # Filename ends in .py, so it is a Python file.
! #
! self.parsePythonInput(packageTreeNode)
!
! elif extension in ('.txt', '.stx'):
! #
! # Filename ends in .txt or .stx so it is
! # a text file.
! #
! self.parsePlainTextInput(packageTreeNode)
!
! elif packageTreeNode.values():
! #
! # Directory node.
! #
! pass
!
! elif not packageTreeNode.values():
! #
! # Leaf node we are skipping.
! #
! node_path = packageTreeNode.getPath()
! filename = apply(os.path.join, node_path)
! self.statusMessage('Skipping: %s' % filename)
!
! trace.outof()
! return
!
! def parseInputs(self, scanner):
package_trees = scanner.getPackageTrees()
for package_tree in package_trees:
! package_tree.walk(self.parseInputCB)
return
!
! def writeOutputsCB(self, packageTreeNode):
! trace.into('HappyDoc', 'writeOutputsCB',
! packageTreeNode=packageTreeNode,
! )
! node_name = packageTreeNode.getName()
! node_path = packageTreeNode.getPath()
! canonical_path = packageTreeNode.getPath(1)
! filename = apply(os.path.join, node_path)
! canonical_filename = apply(os.path.join, canonical_path)
!
! extension = os.path.splitext(node_name)[1]
! if extension == '.py':
! #
! # Filename ends in .py, so it is a Python file.
! #
! self.statusMessage('Documenting: "%s"\n to: "%s"' % (
! canonical_filename,
! 'unknown',
! ))
!
! elif extension in ('.txt', '.stx'):
! #
! # Filename ends in .txt or .stx so it is
! # a text file.
! #
! self.statusMessage('Translating: "%s"\n to: "%s"' % (
! canonical_filename,
! 'unknown',
! ))
!
! elif packageTreeNode.values():
! #
! # Directory node.
! #
! pass
!
! elif not packageTreeNode.values():
! #
! # Leaf node we are skipping.
! #
! pass
! trace.outof()
! return
+ def writeOutputs(self, scanner):
+ package_trees = scanner.getPackageTrees()
+
+ for package_tree in package_trees:
+ package_tree.walk(self.writeOutputsCB)
+
+ return
+
+ def getParameterGroupsFromArguments(self, args):
#
# Set default parser params
***************
*** 410,413 ****
--- 508,575 ----
for p, v in formatter_params.items():
self.statusMessage('DEBUG: \t%s:%s' % (p,v), 4)
+
+ return (args, parser_params, docset_params, formatter_params)
+
+ def main(self, *args):
+
+ self.statusMessage('%s version %s' % (self._app_name,
+ self._app_version))
+
+ parsed_args = self.getParameterGroupsFromArguments(args)
+ (args, parser_params, docset_params, formatter_params) = parsed_args
+
+ self.parser_params = parser_params
+
+ #
+ # Get the list of modules to input
+ #
+ if not args:
+ #
+ # No files specified, print a help message and exit.
+ #
+ self.showHelp('Specify input file(s) to be processed.')
+ raise self.HelpRequested, 'No input file(s) specified.'
+ else:
+ input_modules = []
+ for input_module_name in args:
+ normcase = os.path.normcase(input_module_name)
+ if not normcase:
+ continue
+ while normcase[-1] == os.sep:
+ normcase = normcase[:-1]
+ input_modules.append(normcase)
+
+
+ #
+ # Create the scanner, and get the package trees.
+ #
+ scanner = self.scanForInput(input_modules)
+
+ #
+ # Parse the input files
+ #
+ self.parseInputs(scanner)
+
+ #
+ # Generate some output
+ #
+ self.writeOutputs(scanner)
+
+ return
+
+ def old_main(self, *args):
+
+ self.statusMessage('%s version %s' % (self._app_name,
+ self._app_version))
+
+ #
+ # Debug info about where the docsets and formatters come from
+ #
+ self.statusMessage('Docstring converters from %s' % \
+ happydoclib.docstring.__path__[0], 1)
+ self.statusMessage('Docsets list from %s' % \
+ happydoclib.docset.__path__[0], 1)
+ self.statusMessage('Formatters from %s' % \
+ happydoclib.formatter.__path__[0], 1)
#
|