sphinx的一个扩展:code:`autodoc',在使用python 2样式的类型注释时,用类型注释扩充sphinx文档。

py2annotate的Python项目详细描述


sphinx autodoc的扩展,在使用python 2样式的类型注释时,用类型注释扩充sphinx文档。

问题

python 2不支持类型注释。因此,使用类型注释编写python 2/python 3不可知代码需要putting the type annotations in comments

defadd(x,y):# type: (int, int) -> int"""Adds two numbers."""returnx+y

但是现在当使用Sphinx生成文档时,文档不包括类型注释:

https://raw.githubusercontent.com/patrick-kidger/py2annotate/master/imgs/without-annotations.png

来自Signatory项目的示例。

解决方案

这个扩展补救了一些问题,使sphinx文档现在看起来像:

https://raw.githubusercontent.com/patrick-kidger/py2annotate/master/imgs/with-annotations.png

(这与使用python 3样式的类型注释相同,例如defadd(x:int,y:int)->int

安装

通过PIP:

pip install py2annotate

它也是一个单一的文件,所以复制粘贴代码,如果你想。

需要Python3.6+。

用法

只需将py2anotate添加到conf.py

# conf.py...extensions=['sphinx.ext.autodoc','py2annotate']...

(无论是在autodoc之前还是之后,这都不重要。)

注意sphinx本身必须使用python 3.6+运行。这是因为py2anotate使用python 3样式类型 内部注释以确定正确的注释。

已知问题

目前还没有!如果遇到什么情况,请提交报告。mypystubgen是在内部使用的,所以代码的格式必须是他们理解的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java计数步骤和操作   maven通过将第一个子类/jar添加到第二个子类路径,为一个子类创建jar,并为另一个子类执行goal exec:java   java JavaFX无法在ChoiceBox上调用setOnAction()?   swing使用Java,试图用图像显示JButton的可滚动列表,但显示的是文本而不是按钮   java无法读取跨行突出显示的确切文本   继承无法理解Java中super的功能   通过创建接口的模拟对象进行Java单元测试   活动布局中的java手指绘图?   java以看似随机的间隔获得NullPointerException,不知道为什么   java JButton位置不起作用   非序列化Java对象能否存储在mySQL BLob列中?   java如何使这个删除测试独立?   java Thymeleaf,无法访问该参数   java Solr CoreAware FilterFactory   java日志存储标准数据写入文件   socket上的java传递错误   java如何删除文件?   java Android有键盘小部件吗?   java方法,该方法将点对象作为参数,并根据其是否在直线段内返回true或false