docstring.py 899 B

12345678910111213141516171819202122232425
  1. from docutils import nodes
  2. from docutils.statemachine import ViewList
  3. from nose.util import resolve_name
  4. def docstring_directive(dirname, arguments, options, content, lineno,
  5. content_offset, block_text, state, state_machine):
  6. obj_name = arguments[0]
  7. obj = resolve_name(obj_name)
  8. rst = ViewList()
  9. rst.append(obj.__doc__, '<docstring>')
  10. print "CALLED", obj_name, obj, rst
  11. node = nodes.section()
  12. surrounding_title_styles = state.memo.title_styles
  13. surrounding_section_level = state.memo.section_level
  14. state.memo.title_styles = []
  15. state.memo.section_level = 0
  16. state.nested_parse(rst, 0, node, match_titles=1)
  17. state.memo.title_styles = surrounding_title_styles
  18. state.memo.section_level = surrounding_section_level
  19. return node.children
  20. def setup(app):
  21. app.add_directive('docstring', docstring_directive, 1, (1, 0, 1))