generate docs from docstrings