25 lines
899 B
Python
Executable file
25 lines
899 B
Python
Executable file
from docutils import nodes
|
|
from docutils.statemachine import ViewList
|
|
from nose.util import resolve_name
|
|
|
|
|
|
def docstring_directive(dirname, arguments, options, content, lineno,
|
|
content_offset, block_text, state, state_machine):
|
|
obj_name = arguments[0]
|
|
obj = resolve_name(obj_name)
|
|
rst = ViewList()
|
|
rst.append(obj.__doc__, '<docstring>')
|
|
print "CALLED", obj_name, obj, rst
|
|
node = nodes.section()
|
|
surrounding_title_styles = state.memo.title_styles
|
|
surrounding_section_level = state.memo.section_level
|
|
state.memo.title_styles = []
|
|
state.memo.section_level = 0
|
|
state.nested_parse(rst, 0, node, match_titles=1)
|
|
state.memo.title_styles = surrounding_title_styles
|
|
state.memo.section_level = surrounding_section_level
|
|
return node.children
|
|
|
|
|
|
def setup(app):
|
|
app.add_directive('docstring', docstring_directive, 1, (1, 0, 1))
|