Pandas 的 Mypy/typeshed 存根
Posted
技术标签:
【中文标题】Pandas 的 Mypy/typeshed 存根【英文标题】:Mypy/typeshed stubs for Pandas 【发布时间】:2017-04-27 14:41:25 【问题描述】:只是检查是否有人已经为 `pandas` 生成了一组可工作的 mypy/typeshed 存根。我天真地在本地 pandas 安装上运行了 stubgen,它产生了一些错误。我可以从我必须开始的事情开始,但希望其他人把球推得更远。 (GitHub 上没有什么明显的发现,尽管存根有一张旧票。)
【问题讨论】:
【参考方案1】:到现在(2021 年 3 月),a dedicated pandas stub project 正在进行中。然而,它不是由 pandas 团队开发的(感谢@remeus 指出这一点)。 data-science-types
项目已弃用。 GitHub上they write:
⚠️这个项目大部分已经停止开发⚠️
pandas 团队和 numpy 团队都在将类型存根集成到他们的代码库中,我们看不出与他们竞争的意义。
NumPy
存根曾经在一个单独的项目中,但现在 have been merged 进入主 git repo:
这些存根已合并到 NumPy 中,所有进一步的开发都将在 NumPy 主存储库中进行。我们欢迎您的贡献!
【讨论】:
误导性答案,因为 pandas-stubs 不是由 pandas 开发的 @remeus 感谢您的更正。你对新版本满意吗?顺便提一句。如果您希望人们注意到/纠正他们的错误,@ 提及他们以便他们得到通知会很有帮助。【参考方案2】:截至 2020 年 6 月,pandas 还没有存根,但在那个方向上有 is some progress。现在,您可以使用 data-science-types
包 (on GitHub),它为 pandas
、numpy
和 matplotlib
提供存根文件,尽管它还在进行中。
【讨论】:
【参考方案3】:我还没有找到pandas
的存根。但是,有人 has created 一些 NumPy。
一个临时选项可能是根据 mypy 看到 pandas 对象的方式定义自定义类型。当我在reveal_type(df)
中包装一个DataFrame
对象并运行mypy 时,它显示识别的类型签名是
Union[builtins.dict[Union[builtins.str, builtins.int], builtins.dict[Any, Any]], Any]
但是,Series
对象的显示相同,因此不是很准确。
【讨论】:
以上是关于Pandas 的 Mypy/typeshed 存根的主要内容,如果未能解决你的问题,请参考以下文章