问题标签 [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 投票
3 回答
1687 浏览

python - round() 的返回类型

我有以下代码:

原来round()的返回值被认为是一个int。之所以如此,我得出结论是因为在第二个语句中,mypy 抱怨:

我使用的是 Python 3.5,所以它应该是一个浮点数。我错过了什么。我应该以某种方式向 mypy 暗示 Python 版本吗?具体如何?

0 投票
0 回答
211 浏览

python - 为什么 mypy 认为这个增加的赋值是错误的?

我在文件 test.py 中有以下代码:

控制台输出:

使用的 Mypy 版本:0.4.4

为什么第 3 行正确而第 7 行错误?

后期编辑:

此行为现​​在已被归类为 mypy 中的错误。

https://github.com/python/mypy/issues/2098

因此,可以预期这两个语句序列将来都会被 mypy 接受。

0 投票
1 回答
5333 浏览

python - mypy 虚假错误:“模块”没有带有 etree 的属性“XPath”

我正在尝试mypy在一些使用LXML库解析 XML 的代码中进行类型检查。

在我使用etree.XPath的每一行上,我都从mypy. 例如,以下简单的脚本

产生错误

但是脚本运行良好,并且我XPath的 ' 在运行时正常工作。

我还尝试#type:ignore了导入,我认为这可能会告诉mypy不要对该库进行类型检查,但这并没有抑制错误。

etree.XPath通过将调用移动到没有任何类型注释的单独函数中, 我确实在抑制一些错误方面取得了一些成功,但这似乎是一种黑客行为,并迫使我以尴尬的方式安排我的代码。

我想知道是否有办法完全抑制这些虚假错误,或者可能暗示该etree.XPath功能确实存在,因为它似乎无法自行解决。

需要明确的是,我实际上并不关心知道从库mypy中出来的结构的正确类型。lxml我更关心将类型信息放在我自己的类中,我将解析的信息推入其中,所以我想要有类型检查函数,用于etree.XPath执行查询、查找数据,然后将它们推入类型-在我的脚本中定义的带注释的类。

mypy中的其他功能似乎没有困难etree,例如我的调用没问题etree.parse

我目前正在使用mypy0.4.4

0 投票
3 回答
4365 浏览

python - 如何获取 MyPy 的正则表达式模式类型

如果我编译一个正则表达式

并希望将该正则表达式传递给函数并使用 Mypy 进行类型检查

我遇到了这个问题

似乎您可以导入_sre,但由于某种原因SRE_Pattern不可导入。

0 投票
1 回答
842 浏览

python - Mypy "class module" annotation

I have a function load_config that loads and returns a python module:

This snippet prints <class 'module'>.

How do I annotate load_config return value with Mypy?

0 投票
1 回答
1217 浏览

python - 如何在不明确列出类型的情况下确保参数具有相同的类型?

让我们假设我们需要一个函数,只要两个参数具有相同的类型,它就可以接受任何类型的两个参数。您将如何使用 mypy 对其进行静态检查?

如果我们只需要该函数接受一些有限数量的已知类型,这很容易:

对于此代码,mypy 可以确保 to 的参数f是两个ints 或两个strs 或两个 s 列表int或两个返回的零参数函数int

但是如果我们事先不知道类型怎么办?如果我们需要类似于let f (a:'t) (b:'t) = ()F# 和 OCaml 的东西怎么办?简单的写作T = TypeVar('T')会使事情变得f(1, "2")有效,这不是我们想要的。

0 投票
0 回答
427 浏览

python - 类型自引用类型别名

我想要一个引用自身的类型:

使用 python 3.5 和最新的 mypy 我得到:

是否有捷径可寻?我的猜测是前向引用只支持类,而不是别名?

我正在尝试做的事情:

0 投票
1 回答
380 浏览

python - 在 Python 3 中可以结合参数描述和类型提示吗?

在 Python 3 中,您可以向函数参数添加描述:

并且您还可以提供预期的类型,以后可以使用以下命令进行检查mypy

两者在我眼中都非常有用 - 有没有办法将两者结合起来仍然能够让mypy检查一致性?

0 投票
0 回答
48 浏览

python - python运行时类型检查

我想检查一个函数的输出和另一个函数的输入之间的类型兼容性。我知道 mypy 会进行静态类型检查,但在从 python 运行它时找不到任何东西。这是我正在尝试做的一个例子:

我发现了一个名为typegaurd的小型 github 项目,它似乎做了类似的事情,但我真的不愿意为我正在处理的代码使用一个小型的 3rd 方库。最干净的方法是什么?我可以直接使用标准库或 MyPy 中的任何内容吗?

0 投票
5 回答
12511 浏览

python - 如何为 Mypy 类型注释指定 OrderedDict K,V 类型?

我正在使用 Python 3.5 和 Mypy 对我的脚本进行一些基本的静态检查。最近我重构了一些返回 OrderedDict 的方法,但是当我尝试使用指定 Key 和 Value 类型的返回注释时遇到了“'type' object is not subscriptable”错误。

简化示例:

这是运行时的python输出:

然而,Mypy 对注释中的类型注释没有问题,如果我尝试这样做,实际上会发出警告result[123] = 123

这是什么原因造成的?