Documentation string¶
Introduction¶
Py++ provides a convenient way to export documentation from C++ source files as Python documentation string
API description¶
mb = module_builder_t( ... )
my_class = mb.class_( 'my_class' )
my_class.documentation = '"very helpful documentation string"'
my_class.member_function( "do_nothing" ).documentation = \
'"This function does nothing."'
In Py++ every class, which describes C++ declarations has documentation
property. This property should contain valid C++ string or None
.
Boost.Python not always provides functionality, which exports documentation string. In those cases, Py++ will not generate documentation string.
Also the previous method is pretty clear, it is not practical. There should be a
better way, to complete the task. Lets take a look on
module_builder_t.build_code_creator
method. One of the arguments of this method
is doc_extractor
.
doc_extractor
is a callable object, which takes one argument - reference to declaration.
def doc_extractor( decl ):
...
How it could help? Every declaration has location information:
decl.location.file_name
- absolute file name, where this declaration has been declared.decl.location.line
- line number.
So, you can go to the source file and to extract declaration from it.
Py++ will call doc_extractor
on every exported declaration.
Now, when I think you understand what functionality Py++ provides.
It is a time to say what functionality is missing. Py++ does not
provide any documentation extractor. It is not completely true. You can find
document extractor for doxygen format in contrib/doc_extractors
directory.
Georgiy Dernovoy has contributed it.