Python sphinx:一个子类的文档;“不显示时间”;autodoc“模拟导入”;已启用 问题:
有没有一种方法可以生成子类的sphinx文档而不需要 在GitLab CI上安装包含其父类的库 (或任何类似的CI工具) 编辑:我有7个这样的类,平均每个类大约有10个成员函数需要记录。因此,强烈建议采用自动化解决方案,因为将docstring硬编码到Python sphinx:一个子类的文档;“不显示时间”;autodoc“模拟导入”;已启用 问题:,python,gitlab-ci,python-sphinx,autodoc,Python,Gitlab Ci,Python Sphinx,Autodoc,有没有一种方法可以生成子类的sphinx文档而不需要 在GitLab CI上安装包含其父类的库 (或任何类似的CI工具) 编辑:我有7个这样的类,平均每个类大约有10个成员函数需要记录。因此,强烈建议采用自动化解决方案,因为将docstring硬编码到.rst文件中会花费太多时间 如果仅通过更改Sphinx设置无法解决问题,那么我只接受一个答案,该答案提供了生成和发布所需文档的明确说明 上下文 具体来说,我创建了一个子类tensorflow.keras.callbacks.Callback 并希
.rst
文件中会花费太多时间
如果仅通过更改Sphinx设置无法解决问题,那么我只接受一个答案,该答案提供了生成和发布所需文档的明确说明
上下文
具体来说,我创建了一个子类tensorflow.keras.callbacks.Callback
并希望在文档页面上显示其docstring。
默认情况下,Sphinx必须导入所有生成文档的内容。但是
安装tensorflow
(以及数十个其他库)似乎是不对的
仅就这一点而言,CI映像上的总容量为几GB。我只想要我的文件串
我不关心他们的父类。这就是原因
为什么我在conf.py
中打开了autodoc\u mock\u imports
(斯芬克斯
配置文件)。文档的构建没有错误,但是文档
那个儿童班的学生失踪了
在下面的MWE中,定制类是keras\u callback.py
。斯芬克斯指令包含在keras_callback.rst
中,如下所示
.. automodule:: keras_callback
:members:
:inherited-members:
最低工作示例
有一个
在我的GitLab回购协议上重现了这个问题
所需的子类文档如下所示
至少应该显示自定义函数的文档。父类中的成员函数可以关闭。除了从Python代码中提取文档的(如automodule
和autoclass
)之外,Sphinx还提供(module
,class
等),所有文档都进入.rst文件
我的建议是替换。。automodule::keras_回调
,具有以下功能:
.. class:: keras_callback.MyKerasCallback
An inherited Keras ``Callback`` class.
.. method:: __init__(dic=None)
Constructor
.. method:: on_epoch_begin(epoch, logs=None)
Inherited method
.. method:: custom_method
Custom method
.. autofunction:: keras_callback.util_func
我终于找到了一个简单的解决方法:在本地构建,然后覆盖构建的CI 使用本地构建的页面。如果所需的页面不需要频繁重建,那么此解决方案可以节省大量时间对成员进行硬编码 台阶
conf.py
中导入autodoc\u mock\u
keras\u callback.html
)复制到\u static
文件夹
autodoc\u mock\u导入
cp
命令以覆盖.gitlab CI.yml
开发的最后阶段。一种选择可能是放弃该类的autodoc,而是使用
py:class
和py:method
指令编写文档。好的,我已经读了那页,但是它缺少解释为什么使用它的上下文,从哪里开始,做什么,以及我应该期望的结果。你能给我一些提示吗?谢谢你的解释。我有7个这样的子类,平均每个类大约有10个成员函数。我真的需要用如此费劲的方式手动硬编码所有这些吗?如果是这样的话,我会非常震惊。顺便说一句,如果一周后没有更简单的选择出现,我会接受这个答案。
image: python:3.7-alpine
pages:
script:
- pip install sphinx sphinx-rtd-theme recommonmark
- sphinx-build -d _build/doctrees . _build/html
- mv _build/html public
- cp _static/keras_callback.html public
artifacts:
paths:
- public
only:
- master