问题标签 [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 回答
20887 浏览

python - 如何在 python 3.6 中使用类型提示?

我注意到 Python 3.5 和 Python 3.6 添加了很多关于静态类型检查的功能,所以我尝试了以下代码(在 python 3.6 中,稳定版)。

令我惊讶的是,Python 并没有给我一个错误或警告,尽管它1被附加到list应该只包含字符串的 a 中。Pycharm检测到类型错误并给了我一个警告,但它并不明显并且没有显示在输出控制台中,我担心有时我可能会错过它。我想要以下效果:

  1. 如果很明显我使用了错误的类型,如上所示,抛出警告或错误。
  2. 如果编译器无法可靠地检查我使用的类型是对还是错,请忽略它。

那可能吗?也许mypy可以做到,但我更喜欢使用 Python-3.6 风格的类型检查(like a: List[str])而# type List[str]不是mypy. 而且我很好奇本机python 3.6中是否有一个开关来实现我上面所说的两点。

0 投票
1 回答
94 浏览

python - How declare type of dict containing classes

I'm tring to declare type of following function parameter with typing module:

p parameter of my_func must be dict with childclass of A as key and str as value. Actual notation fail with mypy check:

example.py:17: error: List item 0 has incompatible type "Tuple[C, str]"

How to declare type of p with typing ?

0 投票
1 回答
293 浏览

python - mypy:是否可以为复杂类型定义快捷方式?

我正在使用 Python3,并且刚刚学会了如何使用mypy. 我正在阅读文档(尤其是部分似乎相关),但找不到我的问题的任何答案:

是否可以为类型定义一些快捷方式?

例子:

而不是写

我想拥有

澄清一下,我不想定义一个新的类Sequence,我只是想要更容易阅读的函数签名。

0 投票
1 回答
2229 浏览

python - 为什么 mypy 找不到我的包裹?

我在包含我的 python 包的目录中,并且正在运行mypy -p <package-name>,但它只是出现“找不到包”的错误。

我究竟做错了什么?

0 投票
0 回答
1780 浏览

python - 您可以使用 mypy 将函数的类型定义为 python 中的参数吗?

我正在尝试使用 mypy 在 python 2.7 中注释和定义我的类型。我似乎找不到任何描述如何将函数作为参数传递并记录其类型的文档。例如,在 Scala 中,我可以定义一个将两个整数映射到布尔值的函数类型:

mypy中是否有类似的符号?大概是这样的?

当函数类型是参数时,注释函数类型的最佳实践是什么?

0 投票
1 回答
1764 浏览

python - 用 Python 类型注释声明一个通用 Mapping 子类?

我正在尝试将泛型类型注释添加到MappingPython 3.4 中的子类:

我做错了什么,为什么不mypy给出更有用的错误信息?

0 投票
2 回答
501 浏览

python - 打字:声明打字时类型不兼容。Type []

对于以下代码

mypy 返回以下错误(python 3.4):

我不明白如何指定我想要的子类A作为字典键。如何声明类型?

0 投票
2 回答
2200 浏览

python - mypy 在参数化泛型中 isinstance 和 issubclass 从 python 3.5 到 3.6 的差异

在我从 python 3.5 升级到 python 3.6 之前,这有效:

现在在 python 3.6 中,这两个都引发了以下异常:

这是新的预期行为还是错误?如果打算如何执行上面的代码在 python 3.6 中执行的检查?

0 投票
0 回答
59 浏览

mypy - 如何将 mypy 的“冻结”版本与应用程序捆绑在一起

我们在Transcrypt Python to JavaScript 编译器中使用 mypy 作为类型检查器。由于 mypy 仍在不断变化,我们将“冻结”版本与 Transcrypt 捆绑在一起,以防止由于 mypy 的更改而导致的不兼容。

到目前为止,我们已经将 0.4.4 版包含在 Transcrypt 安装目录的子目录中,并且运行良好。

现在我们正在尝试升级到 0.4.7,但是在检查这个简单的测试程序时:

我们收到以下错误消息:

如果我们只使用定期安装的 mypy,一切正常,并显示以下报告:

似乎 mypy 需要一些设施才能位于特殊位置。我们已经尝试过该custom-typeshed-dir选项,但没有帮助。

谁能阐明如何将 mypy 与应用程序捆绑在一起?

0 投票
1 回答
208 浏览

python - Python mypy 类型提示 shutil.copyfileobj() 具有不兼容的类型“Union[HTTPResponse, BinaryIO]”;预期 IO[任何]

对于下面的代码,我收到以下 mypy 错误。如何正确转换响应对象,以便 mypy 对我将其传递给 shutil.copyfileobj 方法感到满意?

error:Argument 1 to "copyfileobj" has incompatible type "Union[HTTPResponse, BinaryIO]"; expected IO[Any]

以下代码将来自 Web 请求的响应流式传输到文件。