/paddlepaddle-stubs

A stubs package as described in PEP 561 for PaddlePaddle.

Primary LanguagePythonMIT LicenseMIT

PaddlePaddle Stubs WIP

A stubs package as described in PEP 561 for PaddlePaddle.

PyPI - Python Version pypi PyPI - Downloads LICENSE black Gitmoji

目前仅针对 Pyright 进行了编写和测试,尚未支持 Mypy(Mypy 相对于 Pyright 太难用了,缺失功能太多),因此目前可能仅仅与 VS Code 的 Pylance 扩展一起工作良好~

Note

本 repo 非运行时库,因此本 repo 中所有示例和单测可能在运行时并不能正常运行,仅仅是为了更加全面和方便对类型进行检查而已。

Usage

pip install paddlepaddle-stubs --pre

此时再打开编辑器,查看编辑器的类型提示~~~

VS Code 推荐配置:

{
   "python.languageServer": "Pylance",
   // 现在有一些类型在 strict mode 工作的并不是很好,推荐先使用 basic mode
   "python.analysis.typeCheckingMode": "basic",
   "python.analysis.inlayHints.functionReturnTypes": true,
   "python.analysis.inlayHints.variableTypes": true
}

Status

起步阶段,最低支持 Python 3.8,目前基于 PaddlePaddle 2.3.1 开发,第一个可用版本应当是 2.3.1 版本或者更晚的 2.4 版本~

Roadmap

See paddlepaddle-stubs 2.3.1 Roadmap

2.4.0 alpha

Note

此时本 repo 可 public,并发布到 PyPI

  • 通过 basic mode 的类型检查
  • 完善全部 P1 级别的类型信息(strict 下工作良好)

2.4.0 beta

Future

之后应该是一边升级到新版本(2.4.0),一边继续完善 P3、P4、P5 级别的类型信息(strict 下工作良好)

要添加的还有很多,各个 API 类型信息需要仔细填写(修改自动生成的 Any,添加返回值类型),有兴趣的小伙伴可以一起来参与呀~