Update of /cvsroot/happydoc/HappyDoc3/happydoclib/docset/docset_TAL
In directory sc8-pr-cvs1:/tmp/cvs-serv15255/happydoclib/docset/docset_TAL
Modified Files:
__init__.py
Log Message:
Add a getImportData() wrapper that returns links instead of just
names, when we can compute a link. This is much more useful to the
template.
Index: __init__.py
===================================================================
RCS file: /cvsroot/happydoc/HappyDoc3/happydoclib/docset/docset_TAL/__init__.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** __init__.py 16 Mar 2003 20:28:10 -0000 1.3
--- __init__.py 16 Mar 2003 23:43:23 -0000 1.4
***************
*** 62,68 ****
#
import happydoclib
- from happydoclib.docset import base
- from happydoclib.trace import trace
from happydoclib.docset.docset_TAL.templateset import TemplateSet
--- 62,67 ----
#
import happydoclib
+ from happydoclib.docset import base
from happydoclib.docset.docset_TAL.templateset import TemplateSet
***************
*** 70,73 ****
--- 69,76 ----
getConverterFactory
+ from happydoclib.sysmodules import getPythonSystemModuleURL
+
+ from happydoclib.trace import trace
+
#
# Module
***************
*** 245,249 ****
"""
self.statusMessage('processPythonFile needs work')
! raise NotImplementedError('processPythonFile')
return
--- 248,252 ----
"""
self.statusMessage('processPythonFile needs work')
! #raise NotImplementedError('processPythonFile')
return
***************
*** 315,319 ****
"""
self.statusMessage('processPythonClass needs work')
! raise NotImplementedError('processPythonClass')
return
--- 318,322 ----
"""
self.statusMessage('processPythonClass needs work')
! #raise NotImplementedError('processPythonClass')
return
***************
*** 337,340 ****
--- 340,424 ----
)
return subnodes
+
+ def getImportData(self, packageTreeNode):
+ """Retrieves the import data for the node, and converts
+ the data structure to something that is easier to work
+ with in the template.
+ """
+ trace.into('TALDocset', 'getImportData',
+ packageTreeNode=packageTreeNode,
+ outputLevel=TRACE_LEVEL)
+
+ import_data = packageTreeNode.getImportData()
+ sortable_import_data = [ (m.lower(), m, s)
+ for (m, s) in import_data ]
+ sortable_import_data.sort()
+ import_data = [ (m, s)
+ for (ignore, m, s) in sortable_import_data ]
+
+ response = []
+
+ for module_name, symbol_names in import_data:
+ trace.writeVar(module_name=module_name,
+ symbol_names=symbol_names,
+ outputLevel=TRACE_LEVEL)
+
+ url = getPythonSystemModuleURL(module_name)
+ if url:
+ trace.write('Python module', outputLevel=TRACE_LEVEL)
+ link = '<a href="%s">%s</a>' % (url, module_name)
+ response.append( (link, symbol_names) )
+ continue
+
+ referenced_module = packageTreeNode.findNodeFromDottedName(module_name)
+ if referenced_module is not None:
+ trace.write('Reference to another scanned module',
+ outputLevel=TRACE_LEVEL)
+ #
+ # Get the link to the module
+ #
+ module_url = self.getHREFToNode(packageTreeNode,
+ referenced_module,
+ )
+ module_link = '<a href="%s">%s</a>' % (module_url,
+ module_name)
+
+ if not symbol_names:
+ trace.write('No symbol names',
+ outputLevel=TRACE_LEVEL)
+ response.append( (module_link, symbol_names) )
+ continue
+
+ #
+ # Get links to the symbols, if we can.
+ #
+ name_urls = []
+ for symbol_name in symbol_names:
+ symbol_node = referenced_module.findNodeFromDottedName(symbol_name)
+ if symbol_node is None:
+ name_urls.append(symbol_name)
+ continue
+
+ symbol_url = self.getHREFToNode(packageTreeNode,
+ symbol_node,
+ )
+ symbol_link = '<a href="%s">%s</a>' % (symbol_url,
+ symbol_name,
+ )
+ name_urls.append(symbol_link)
+
+ response.append( (module_link, name_urls) )
+
+ else:
+ trace.write('Unknown module',
+ outputLevel=TRACE_LEVEL)
+ #
+ # We do not know the module, so just take
+ # the names as they were given.
+ #
+ response.append( (module_name, symbol_names) )
+
+ trace.outof(outputLevel=TRACE_LEVEL)
+ return response
|