-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【快乐开源】科学计算 API 文档补全 #686
Labels
HappyOpenSource
快乐开源活动issue与PR
Comments
This was referenced Dec 10, 2023
【报名】:10、11、30 |
This was referenced Dec 27, 2023
Merged
Merged
【报名】:12、13、14、15、16、17 |
【报名】:21、22、24 |
【报名】:103-109 |
This was referenced Jan 18, 2024
Merged
Merged
【报名】:35-37 |
【报名】:58-60 |
【报名】:38-40 |
【报名】66-74 |
【报名】:41-57 |
【报名】23、25-29、31-34 |
【报名】:61-65 |
【报名】97 |
【快乐开源】科学计算 API 文档补全 已全部完成,感谢参与的小伙伴们!
欢迎继续参与快乐开源的其他任务! |
github-project-automation
bot
moved this from In Progress
to Done
in Call for Contributions
Apr 15, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
API 文档补全
以下是待补全 docstring 的 API 列表(共 109 个)
认领方式
请大家以 comment 的形式认领任务,如:
多个任务之间需要使用中文顿号分隔,报名多个连续任务可用横线表示,如 2-5
PR 提交格式:在 PR 的标题中以 【PPSCI Doc No.xxx】 开头,注明任务编号
看板信息
统计信息
1. 背景
PaddleScience 目前有许多公开 API,通过 docstring 的方式给用户指示 API 功能简要描述,以及调用时涉及参数个数/类型、输出个数/类型,帮助用户更好地理解一个 API 的具体用法和使用场景。
具体地,一个好的 docstring 应该至少包含四个部分(按顺序排列,以
ppsci.utils.misc.cartesian_product
为例):函数功能简要说明
输入参数描述
返回值描述
样例代码
文档最终在网页端的渲染效果如下:
但目前在 PaddleScience 中,有少量公开 API 的文档是缺少以上要素的,具体分为几种情况
缺少参数、返回值描述、样例代码,如下所示
缺少样例代码,如下所示
样例代码不具有代表性,即无法告诉用户它的正确使用场景,仅仅说明了其最简单的调用方法
文档格式不正确(如缺少换行)导致渲染失败
因此当用户在使用上述这些 API 时,可能无法快速、正确地知道它们能做什么以及在什么场景下使用,尤其是一部分实现较为复杂的 API,其理解成本会更高。最终导致开发的 API 因为无法被用户知悉而不被使用,既浪费了 API 开发的人力,也增加了用户自己实现的成本。
2. 收益
对于 PaddleScience 来说,完善 API 文档能显著减少用户的使用难度,增加 API 实际使用率,帮助用户更快地实现所需的功能。
对于参加本活动的开发者来说,可以学习以下三个方面的内容
3. 待完善的 API 文档
参考文档开头的表格
4. 开发流程
4.1. 撰写
文档要素缺失的情况具体该如何补全呢?
样例代码如何撰写?
>>>
的一行代码会直接执行,以...
开头的代码与>>>
区分,并不会马上执行,而是会等到下一个>>>
或者代码块结束,与中间遇到的所有代码组成完整的代码再执行,一般用于带缩进的代码结构,如 for、while、函数调用等完整代码块超过一行的情况。有的 API 样例代码并不会产生任何输出,该如何进行检查?
doctest 会自动将打印的txy与红框中的值进行比较,如果不一致则会报错。
4.2. doctest 测试
首先安装 doctest,执行:
pip install pydoctest==0.1.22
然后运行 doctest并测试指定文件,执行:
python -m doctest xxxx.py
,如测试未通过则需要重新修改案例代码直至通过。此处xxx.py
是你修改后的 docstring 所在的代码文件路径(建议使用绝对路径)。4.3. 文档渲染
文档渲染基本原理:项目文档渲染依赖于 mkdocs、mkdocs-material,而其中的 API 文档涉及到代码引用(避免维护python和文档两份代码,而是直接从 python 文件中抽取对应位置的代码展示在网页前端)功能,依赖于 mkdocstrings 插件(可以在
PaddleScience/mkdocs.yml
中找到相关配置)。pip install docs/requirements.txt
PaddleScience/
目录下执行:mkdocs serve -a 127.0.0.1:8687
。等待终端渲染完毕,打印出预览地址,在网页端打开并进入 【API 文档】中找到自己修改的内容,即可预览修改效果。如下所示4.4. 代码提交
Important
PR 标题模板:
【PPSCI Doc No.{id}】
,如【PPSCI Doc No.66】
代码内容提交请参考:https://paddlescience-docs.readthedocs.io/zh/latest/zh/development/#4 【整理代码并提交】章节
5. 参考资料
The text was updated successfully, but these errors were encountered: