megemini
megemini
示例中有两个地方可能要 ignore 一下: ``` python >>> data_folder_2 = DatasetFolder( ... fake_data_dir, ... loader=lambda x: cv2.imread(x), # load image with OpenCV ... extensions=(".jpg",), # type: ignore # only load *.jpg files...
ImageFolder 的示例也要改一下滴 ~~~
@enkilee ``` python ... print(type(img), img.size) # type: ignore ``` 这里是不需要 ignore 的,而 ``` python ... print(type(img), img.shape) ``` 这里需要 ~ 主要是因为 `Tensor, PILImage, ndarray` 都有 size 属性,但是 PILImage 没有...
单从 `/home/shun/Documents/Projects/paddle/megemini/paddle_docs/ci_scripts/check_api_parameters.py` 的 `check_api_parameters` 来看,里面的 regex 好像检查不了 `Tensor_cn.rst` 里面的方法 ... ... PR 只说了 not stable,也没说具体什么问题,不太清楚了 ~
补充: 是否可以在 `_typing` 中引入 `_libpaddle.pyi` 文件? 标注 `distributed` 的时候,发现有很多是直接使用 c++ 绑定到 `paddle.base.libpaddle` 中的类 ~ 之前也遇到过 ~ 是否可以引入此文件,将需要用到的 `paddle.base.libpaddle` 放到 `_libpaddle.pyi` 中,并作为 Protocol?
### Update 20240716 `paddle.base.libpaddle` 与 `paddle.base.core` 貌似是等价的 ~ 尝试去掉 `_typing._libpaddle` ,在 `paddle.base.core.pyi` 中增加 ~
在考虑,要不要搞个 `core.prototype.pyi` ... p.s. 有个问题是,`libpaddle` 里面的东西是跟随编译环境生成的,比如 `DistFleetWrapper` ,需要分布式编译选项才有,因此,如果只是根据 `libpaddle` 内容生成 stub,东西可能不全 ... ...
### Update 20240724 - 增加 `libpaddle.pyi` ,使其指向 `paddle._typing.libs.libpaddle` 由于 `paddle.__init__.py` 本身没有导入 `base` ,而生成的 `pyi` 里面会用到 `import paddle.base.libpaddle` ,所以,增加 `libpaddle.pyi` 文件,这样逻辑上也清楚一点吧 ~ - 增加/更新 `core.pyi` `_C_ops.pyi` ,使其指向 `paddle._typing.libs.libpaddle` 及子目录 貌似这两个文件基本上就是抽取了 `libpaddle`...
### Update 20240724 parse ops - 增加 `ops` 的解析,覆盖 `pybind11-stubgen` 生成的 - `python/paddle/_typing/libs/libpaddle/eager/ops/__init__.pyi` - `python/paddle/_typing/libs/libpaddle/pir/ops.pyi` 目前测试可以推导 `_C_ops` 中相关内容  但,仍存在不完整的情况,如 `paddle/_typing/libs/libpaddle/pir/ops.pyi` 中的 `add` ,这部分暂时没找到好的解决方案 ~
### Update 20240725 目前 patch 之后,大部分错误和 warning 可以解决,仍存在: - 找不到合适的 mapping ,如 `paddle::dialect::OperationDistAttribute` - 不方便 patch 的地方,如 `TypeGuard[xxx]` 可以推进: - 有没有其他需要注意的地方 - 以及 `pybind11-stubgen` 的 req 放在哪里?