问题标签 [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.
python - mypy 可以接受继承属性的注释吗?
我有一个奇怪的情况,添加显式类型提示似乎会使 mypy 失败。
此代码验证(Python 3.6.1,mypy 0.540):
但告诉 mypy 什么属性返回失败
相关的,我认为,离开注释也会因多重继承而失败,无论哪种组合(两者,任一,无)都被注释:
任何想法为什么,或者如何改变?
python - 存根文件中的 Mypy 泛型类
我正在尝试将类型存根添加到具有名为 的集合类的库中,该集合类List
本质上是对 builtin 的包装器list
。出于所有实际目的,您可以假设它看起来像这样:
现在,在我的存根文件中,library.pyi
我有:
如果我执行以下操作,我希望打字失败:
但是mypy client.py
以 0 退出。此外,python client.py
失败以TypeError: 'type' object is not subscriptable
.
我的理解是类型提示对运行时没有任何影响。那显然是错误的。有人可以纠正我关于类型提示如何工作的心理模型吗?
此外,有什么可以得到我想要的(即mypy client.py
失败)?
python - mypy 泛型子类导致类型不兼容
我正在玩弄带有类型提示的幺半群。为此,我写了:
在子类中使用它时,例如
我明白了error: Argument 1 of "append" incompatible with supertype "Monoid"
。由于List
是 的正确子类Monoid
,我希望它能够输入。我究竟做错了什么?
pycharm - 试图将 mypy 添加到 PyCharm
尝试使用我的 PyCharm Professional 2017.2 设置 mypy。但它不起作用。我还想在一个特定文件和整个项目上设置 mypy 检查,有些人可以分享他们在 PyCharm 中配置 mypy 的方式。
python - 尝试运行 mypy 时弹出“OSError:[Errno 2] No such file or directory”
你好堆栈溢出用户,
我很难让 mypy 与 Popen 一起正常工作。本质上,我正在编写一个使用 mypy 但似乎无法在我的构建机器上获得有效输出的测试套件。
有问题的行如下:
p = subprocess.Popen(['mypy'] + extra_args + python_files, env=my_env, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIP)
extra_args
指定缓存目录和回溯,并且python_files
是要测试的有问题的文件。我相当有信心这些论点都不是问题,因为我已经玩过这些并且没有取得任何进展。
该文件位于 git repo 中,我已将其克隆并放在构建盒中。在本地这不是问题——我得到有效的 mypy 输出指示错误。但是,在我的构建机器上,我得到了OSError: [Errno 2] No such file or directory
错误。完整的错误信息如下:
我已经尝试添加shell=True
,但这导致所有 mypy 错误开始被抑制,并且被认为是错误的样式/安全问题。
我的猜测/想法是 mypy 可能不在 popen 在没有外壳的情况下使用的路径中,但我真的不确定。
python - 类型提示:函数需要具有以下强制键的 dict
mypy
是否有可能在Python3.6+
它们的任何扩展中指定我的函数可以将任何 dict 作为参数,只要它具有特定的键?如果有一个假设类型Record
For eg
因此,静态分析应报告以下内容
python - Python/MyPy:如何注释可以返回几种不同类型对象之一的方法?
我应该如何注释可以返回多种不同类型对象的方法的返回类型?
具体来说,这是我遇到问题的方法:
我试过Union[shelf.Sheet, guillotine.Guillotine, maximal_rectangles.MaximalRectangle]
了,但是 MyPy 给了我很多错误,我稍后在我的代码中使用了 _bin_factory 方法。这些错误似乎围绕着这样一个事实,即 Union 中的所有三种对象类型都具有彼此不同的属性。
python - 即使测试了所有案例,MyPy 也会给出错误“缺少返回语句”
我收到一个 MyPy 错误“缺少返回语句”,即使我检查了函数内的所有可能情况。
例如,在下面的代码中,MyPy 仍然给我一个错误"9: error: Missing return statement"
,即使color
只能是Color.RED
, Color.GREEN
, or Color.BLUE
,我测试了所有这些情况!
python - 是否可以将 Python 中的所有类型提示/检查基础设施分成 .pyi 文件?
在 Python 3 中,类型提示允许mypy等第三方工具检查类型;但是,我发现类型检查语法与程序注释一起有点难看。使用 mypy 可以将存根函数和方法放入与.pyi
文件相同的目录中的单独文件中.py
。.pyi
是否可以在文件的等效文件中定义所有类型相关的语法.py
?因此,例如,您可以.pyi
使用所有类型语法在文件中定义变量、方法、返回类型等,但不理会主.py
代码?