Thread: [Epydoc-commits] SF.net SVN: epydoc: [1170] trunk/epydoc/src/epydoc/markup/restructuredtext.py
Brought to you by:
edloper
From: <ed...@us...> - 2006-04-05 17:11:42
|
Revision: 1170 Author: edloper Date: 2006-04-05 10:11:38 -0700 (Wed, 05 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1170&view=rev Log Message: ----------- - Added a callgraph directive to restructuredtext markup parser Modified Paths: -------------- trunk/epydoc/src/epydoc/markup/restructuredtext.py Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py =================================================================== --- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-04-05 16:58:42 UTC (rev 1169) +++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-04-05 17:11:38 UTC (rev 1170) @@ -539,6 +539,7 @@ ###################################################################### #{ Graph Generation Directives ###################################################################### +# See http://docutils.sourceforge.net/docs/howto/rst-directives.html class dotgraph(docutils.nodes.image): """ @@ -593,7 +594,7 @@ else: title = '' return dotgraph(_construct_digraph, title, options.get('caption'), '\n'.join(content)) -digraph_directive.arguments = (0, 1, 1) +digraph_directive.arguments = (0, 1, True) digraph_directive.options = {'caption': directives.unchanged} digraph_directive.content = True directives.register_directive('digraph', digraph_directive) @@ -689,3 +690,24 @@ """Graph generator for L{importgraph_directive}""" modules = [d for d in docindex.root if isinstance(d, ModuleDoc)] return import_graph(modules, docindex, linker, context, **options) + +def callgraph_directive(name, arguments, options, content, lineno, + content_offset, block_text, state, state_machine): + return dotgraph(_construct_callgraph, arguments, options) +callgraph_directive.arguments = (0, 1, True) +callgraph_directive.options = {'dir': _dir_option, + 'add_callers': directives.flag, + 'add_callees': directives.flag} +callgraph_directive.content = False +directives.register_directive('callgraph', callgraph_directive) + +def _construct_callgraph(docindex, context, linker, arguments, options): + """Graph generator for L{callgraph_directive}""" + if len(arguments) == 1: + docs = [docindex.find(name, context) for name in + arguments[0].replace(',',' ').split()] + docs = [doc for doc in docs if doc is not None] + else: + docs = [context] + return call_graph(docs, docindex, linker, context, **options) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-04-07 23:39:49
|
Revision: 1191 Author: edloper Date: 2006-04-07 16:39:46 -0700 (Fri, 07 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1191&view=rev Log Message: ----------- - Added 'style' option to packagetree directive Modified Paths: -------------- trunk/epydoc/src/epydoc/markup/restructuredtext.py Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py =================================================================== --- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-04-07 23:38:47 UTC (rev 1190) +++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-04-07 23:39:46 UTC (rev 1191) @@ -659,7 +659,9 @@ """ return dotgraph(_construct_packagetree, arguments, options) packagetree_directive.arguments = (0, 1, True) -packagetree_directive.options = {'dir': _dir_option} +packagetree_directive.options = { + 'dir': _dir_option, + 'style': lambda a:directives.choice(a.lower(), ('uml', 'tree'))} packagetree_directive.content = False directives.register_directive('packagetree', packagetree_directive) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-25 07:55:54
|
Revision: 1326 Author: edloper Date: 2006-08-25 00:55:50 -0700 (Fri, 25 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1326&view=rev Log Message: ----------- - Fixed SF bug [ 1546400 ] 3.0alpha3 uses deprecated docutils attribute Modified Paths: -------------- trunk/epydoc/src/epydoc/markup/restructuredtext.py Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py =================================================================== --- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-08-24 20:22:28 UTC (rev 1325) +++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-08-25 07:55:50 UTC (rev 1326) @@ -201,11 +201,20 @@ A reader that captures all errors that are generated by parsing, and appends them to a list. """ - # Do not translate <field>author</field> to <author> - default_transforms = list(StandaloneReader.default_transforms) - try: default_transforms.remove(docutils.transforms.frontmatter.DocInfo) - except ValueError: pass - + # Remove the DocInfo transform, to ensure that :author: fields are + # correctly handled. This needs to be handled differently + # depending on the version of docutils that's being used, because + # the default_transforms attribute was deprecated & replaced by + # get_transforms(). + if [int(v) for v in docutils.__version__.split('.')] < [0,4,0]: + default_transforms = list(StandaloneReader.default_transforms) + try: default_transforms.remove(docutils.transforms.frontmatter.DocInfo) + except ValueError: pass + else: + def get_transforms(self): + return [t for t in StandaloneReader.get_transforms(self) + if t != docutils.transforms.frontmatter.DocInfo] + def __init__(self, errors): self._errors = errors StandaloneReader.__init__(self) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-04-09 23:28:13
|
Revision: 1206 Author: edloper Date: 2006-04-09 16:28:07 -0700 (Sun, 09 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1206&view=rev Log Message: ----------- - Improved error messages for bad consolidated lists - Fixed bug caused by change in internal variables used by the standard docutils latex writer. Modified Paths: -------------- trunk/epydoc/src/epydoc/markup/restructuredtext.py Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py =================================================================== --- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-04-09 23:23:01 UTC (rev 1205) +++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-04-09 23:28:07 UTC (rev 1206) @@ -353,6 +353,10 @@ # item should have the form: # - `arg`: description... n = 0 + _BAD_ITEM = ("list item %d is not well formed. Each item must " + "consist of a single marked identifier (e.g., `x`), " + "optionally followed by a colon or dash and a " + "description.") for item in items: n += 1 if item.tagname != 'list_item' or len(item) == 0: @@ -363,14 +367,11 @@ 'list (it\'s probably indented '+ 'wrong).') % n) else: - raise ValueError(('list item %d does not begin with '+ - 'an identifier.') % n) + raise ValueError(_BAD_ITEM % n) if len(item[0]) == 0: - raise ValueError(('list item %d does not begin with '+ - 'an identifier.') % n) + raise ValueError(_BAD_ITEM % n) if item[0][0].tagname != 'title_reference': - raise ValueError(('list item %d does not begin with '+ - 'an identifier.') % n) + raise ValueError(_BAD_ITEM % n) # Everything looks good; convert to multiple fields. for item in items: @@ -397,21 +398,23 @@ def handle_consolidated_definition_list(self, items, tagname): # Check the list contents. n = 0 + _BAD_ITEM = ("item %d is not well formed. Each item's term must " + "consist of a single marked identifier (e.g., `x`), " + "optionally followed by a space, colon, space, and " + "a type description.") for item in items: n += 1 if (item.tagname != 'definition_list_item' or len(item) < 2 or item[0].tagname != 'term' or item[-1].tagname != 'definition'): - raise ValueError('bad definition list (bad child).') + raise ValueError('bad definition list (bad child %d).' % n) if len(item) > 3: - raise ValueError('list item %d has multiple classifiers' % n) + raise ValueError(_BAD_ITEM % n) if item[0][0].tagname != 'title_reference': - raise ValueError('list item %d does not begin with an ' - 'identifier' % n) + raise ValueError(_BAD_ITEM % n) for child in item[0][1:]: if child.astext() != '': - raise ValueError('list item %d does not begin with an ' - 'identifier' % n) + raise ValueError(_BAD_ITEM % n) # Extract it. for item in items: @@ -441,8 +444,11 @@ LaTeXTranslator.__init__(self, document) self._linker = docstring_linker - # Start at section level 3. + # Start at section level 3. (Unfortunately, we now have to + # set a private variable to make this work; perhaps the standard + # latex translator should grow an official way to spell this?) self.section_level = 3 + self._section_number = [0]*self.section_level # Handle interpreted text (crossreferences) def visit_title_reference(self, node): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-21 09:40:21
|
Revision: 1260 Author: edloper Date: 2006-08-21 02:40:18 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1260&view=rev Log Message: ----------- Applied SF patch [ 1531588 ] Bugfix: make :author: work in restructuredtext markup. (Disables a transform that's performed by docutils by default.) Modified Paths: -------------- trunk/epydoc/src/epydoc/markup/restructuredtext.py Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py =================================================================== --- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-08-21 09:28:11 UTC (rev 1259) +++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-08-21 09:40:18 UTC (rev 1260) @@ -79,6 +79,7 @@ from docutils.frontend import OptionParser from docutils.parsers.rst import directives import docutils.nodes +import docutils.transforms.frontmatter from epydoc.compat import * # Backwards compatibility from epydoc.markup import * @@ -192,6 +193,11 @@ A reader that captures all errors that are generated by parsing, and appends them to a list. """ + # Do not translate <field>author</field> to <author> + default_transforms = list(StandaloneReader.default_transforms) + try: default_transforms.remove(docutils.transforms.frontmatter.DocInfo) + except ValueError: pass + def __init__(self, errors): self._errors = errors StandaloneReader.__init__(self) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-23 07:03:41
|
Revision: 1301 Author: edloper Date: 2006-08-23 00:03:09 -0700 (Wed, 23 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1301&view=rev Log Message: ----------- - Made ParsedRstDocstring's pickle-able. Modified Paths: -------------- trunk/epydoc/src/epydoc/markup/restructuredtext.py Modified: trunk/epydoc/src/epydoc/markup/restructuredtext.py =================================================================== --- trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-08-23 05:25:13 UTC (rev 1300) +++ trunk/epydoc/src/epydoc/markup/restructuredtext.py 2006-08-23 07:03:09 UTC (rev 1301) @@ -80,6 +80,8 @@ from docutils.parsers.rst import directives import docutils.nodes import docutils.transforms.frontmatter +import docutils.transforms +import docutils.utils from epydoc.compat import * # Backwards compatibility from epydoc.markup import * @@ -145,6 +147,12 @@ @type document: L{docutils.nodes.document} """ self._document = document + + # The default document reporter and transformer are not + # pickle-able; so replace them with stubs that are. + document.reporter = docutils.utils.Reporter( + document.reporter.source, 'SEVERE', 'SEVERE', '') + document.transformer = docutils.transforms.Transformer(document) def split_fields(self, errors=None): # Inherit docs This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |