问题标签 [mypy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
150 浏览

python-3.x - 使用 mypy 时定义二叉树时出错

我正在使用 Python 3.5,我想使用mypy来启用静态类型检查。但是当我尝试定义二叉树时出现错误:

错误信息:

似乎 mypy 在定义类之前无法使用类,对吧?

0 投票
1 回答
1738 浏览

python - mypy 未检测到基本类型错误

使用 python 3.5.1。和当前使用 git 安装的 mypy,mypy 标记错误 1 ​​和 2,但它不报告 3

我做错了什么,或者这是一个错误,还是这是一个已知问题?

0 投票
1 回答
2108 浏览

python - 如何在 python 2.7 上安装 mypy-lang?

新版本应该支持 2.7,但是 pip 安装它失败,并在 python 3 类型注释语法的一行出现 SyntaxError(这有点讽刺):

0 投票
1 回答
76 浏览

python - 从执行路径导入

我有这样的设置:

导入和使用__main__.py后端文件以及backend2.py导入和使用backend1.py. 我曾经这样做过:

__main__.py:

backend2.py:

这行得通,但现在我使用的是 mypy(Python 静态类型检查器),并且它要求所有导入路径都相对于__main__.py,所以我的 backend2.py 现在看起来像这样:

mypy 现在说这很好,但是当我尝试执行它时,我收到以下错误:

有没有办法允许以那种风格导入,所以允许从 ? 的执行路径导入__main__.py

0 投票
0 回答
369 浏览

python-3.5 - Union[Decimal, int] 与 Decimal 不兼容?

考虑以下程序:

为什么mypy在第二个 print() 中抱怨?

我在 Python 3.5.1、Ubuntu 16.04 上使用 mypy 0.3.1。

编辑:这似乎是mypy 中的一个错误

0 投票
1 回答
293 浏览

python-3.x - Python 3.5 键入自定义类型

我有一个调用 API 的方法,该 API 以包含两个键的 dict 响应:allowner(实际上是一个 Github api,它获取给定存储库的提交活动)

我正在使用新集成typing到 Python 3.5 中的模块/系统,我想知道是否可以创建一个自定义类型,该类型实际上指定Dict返回的应该包含这两个键(allowner

这是我到目前为止所拥有的:

TypeRepositoryCommitActivity = Dict[str, List]

这些显然是组装在一起的原始类型,那么我该如何更深入地执行呢?

0 投票
1 回答
832 浏览

python-2.7 - mypy 使用装饰器进行类型检查

我有以下内容:

在 myfile.py 中:

在文件 1.py

现在我想使用 mypy 注释有趣的函数,我已经按照以下方式完成了它并且它工作但它并不理想,因为在乐趣中我知道消息是 int 类型所以我们应该用类似 int 的东西来注释参数...如何使用 mypy 实现它。

0 投票
1 回答
1358 浏览

python - 将函数参数类型注释为派生自 Python 中的多个抽象基类

我正在尝试根据PEP 484在 Python 2 中键入注释函数。该函数接受一个应该同时实现__len__和的容器__iter__。我要添加此注释的原始代码非常复杂,因此考虑一个示例函数,如果是偶数则返回int容器中所有 s的乘积,否则返回 1。slen(s)

如果我想在__len__需要的地方注释容器,我会将它注释为type: (Sized) -> int. 如果我想在__iter__需要的地方注释容器,我会将它注释为type: (Iterable[int]) -> int. 但是我如何完美地注释一个我需要两者的容器呢?

我按照Piotr-Ćwiek的建议尝试了这个:

但这失败了这个错误:

0 投票
1 回答
2914 浏览

python - 使用 Mypy 本地存根

我正在尝试 Python 3.5 引入的输入提示,但使用本地存根作为 mypy 的输入提示时遇到了问题。

我做的实验是创建 kk.py 包含

另外,我把 kk.pyi 包含

在同一目录中。这样,我尝试通过在kk.py中将字符串传递给type_check来触发“ncompatible types in assignment”的错误。但是,当我运行mypy kk.py并且没有出现错误时。

因此,我尝试了 mypy doc 建议的另一种方法,即将环境变量 MYPYPATH 设置为 ~/some/path/stub 并将 kk.pyi 放入目录中。但是,我遇到了同样的错误。

任何人都可以帮助我吗?

这是关于如何使用本地存根的 mypy wiki 。

0 投票
3 回答
4039 浏览

python - 为什么为 __eq__ 定义参数类型会引发 MyPy 类型错误?

我正在使用 Python 3.5.1 和新发布的MyPy v0.4.1 静态类型分析器。

我有一些更复杂的代码,我已将其简化为重现错误所需的最简单的可能 python 类:

运行类型检查器mypy test.py会产生以下错误:

我基于这些文档的理论是,__eq__对象__ne__已经定义了类型,这与我的子类对这些类型的重新定义相冲突。我的问题是如何定义这些类型以确保__eq__使用我选择的类型进行类型检查。