从epydoc的文档字符串格式切换到sphinx文档字符串格式的自动方式?

Nie*_*ein 9 python docstring converter epydoc python-sphinx

我有一个项目,我使用epydoc记录.现在我正在尝试切换到狮身人面像.我为epydocs格式化了所有文档字符串,使用B {},L {}等进行粗体,链接等,并使用@ param,@ return,@ raise等来解释输入,输出,异常等.

所以现在我转向sphinx它失去了所有这些功能.有没有一种自动方式将为​​epydocs格式化的文档字符串转换为为sphinx格式化的文档字符串?

mzj*_*zjn 7

为了扩展Kevin Horn的答案,docstrings可以在autodoc-process-docstring事件触发的事件处理程序中即时翻译.

下面是一个小型演示(通过将代码添加到conf.py尝试).它取代了@在一些公共字符Epytext字段:,这是在相应的使用斯芬克斯字段.

import re

re_field = re.compile('@(param|type|rtype|return)') 

def fix_docstring(app, what, name, obj, options, lines):
    for i in xrange(len(lines)):
        lines[i] = re_field.sub(r':\1', lines[i])

def setup(app):
    app.connect('autodoc-process-docstring', fix_docstring)
Run Code Online (Sandbox Code Playgroud)

  • 更新:**sphinx-epytext**扩展提供基本的Epytext支持.请参阅https://pypi.python.org/pypi/sphinx-epytext. (2认同)

dao*_*zli 6

Pyment是一个可以转换Python文档字符串并创建缺失字符串的工具.它可以管理 Google, Epydoc(javadoc样式), Numpydoc, reStructuredText(reST,Sphinx默认)docstring格式.

它接受单个文件或文件夹(也可以浏览子文件夹).对于每个文件,它将识别每个文档字符串格式并将其转换为所需的格式.最后,将生成一个补丁以应用于该文件.

转换项目:

  • 安装Pyment

输入以下内容(您可以使用virtualenv):

$ git clone https://github.com/dadadel/pyment.git
$ cd pyment
$ python setup.py install
Run Code Online (Sandbox Code Playgroud)
  • 从Epydoc转换为Sphinx

您可以通过执行以下操作将项目转换为Sphinx格式(reST),这是默认的输出格式:

$ pyment /my/folder/project
Run Code Online (Sandbox Code Playgroud)