[Epydoc-commits] SF.net SVN: epydoc: [1386] trunk/epydoc/src/epydoc
Brought to you by:
edloper
From: <dva...@us...> - 2006-09-11 16:13:01
|
Revision: 1386 http://svn.sourceforge.net/epydoc/?rev=1386&view=rev Author: dvarrazzo Date: 2006-09-11 09:12:51 -0700 (Mon, 11 Sep 2006) Log Message: ----------- - Fixed parsing of import statements in the form:: from mod import a as b Modified Paths: -------------- trunk/epydoc/src/epydoc/docparser.py trunk/epydoc/src/epydoc/test/docparser.doctest Modified: trunk/epydoc/src/epydoc/docparser.py =================================================================== --- trunk/epydoc/src/epydoc/docparser.py 2006-09-11 13:45:12 UTC (rev 1385) +++ trunk/epydoc/src/epydoc/docparser.py 2006-09-11 16:12:51 UTC (rev 1386) @@ -846,12 +846,24 @@ # >>> from os.path import join, split else: src_name = parse_dotted_name(lhs) - for elt in rhs: - if elt != (token.OP, ','): - var_name = parse_name(elt) + parts = split_on(rhs, (token.OP, ',')) + for part in parts: + # from m import x + if len(part) == 1: + var_name = parse_name(part[0]) _import_var_as(DottedName(src_name, var_name), var_name, parent_docs) - + + # from m import x as y + elif len(part) == 3 and part[1] == (token.NAME, 'as'): + orig_name = parse_name(part[0]) + var_name = parse_name(part[2]) + _import_var_as(DottedName(src_name, orig_name), + var_name, parent_docs) + + else: + ParseError("Bad from-import") + def _process_fromstar_import(src, parent_docs): """ Handle a statement of the form: Modified: trunk/epydoc/src/epydoc/test/docparser.doctest =================================================================== --- trunk/epydoc/src/epydoc/test/docparser.doctest 2006-09-11 13:45:12 UTC (rev 1385) +++ trunk/epydoc/src/epydoc/test/docparser.doctest 2006-09-11 16:12:51 UTC (rev 1386) @@ -710,6 +710,21 @@ +- is_imported = True +- value = <UNKNOWN> + >>> runparser(s=""" + ... from re import match as much, split, sub as scuba + ... """, + ... attribs='variables name imported_from') + ModuleDoc for test [0] + +- variables + +- much => VariableDoc for test.much [1] + | +- imported_from = DottedName(u're', u'match') + | +- name = u'much' + +- scuba => VariableDoc for test.scuba [2] + | +- imported_from = DottedName(u're', u'sub') + | +- name = u'scuba' + +- split => VariableDoc for test.split [3] + +- imported_from = DottedName(u're', u'split') + +- name = u'split' Unicode ======= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |