mypy相关内容

UNION上赋值中的不兼容类型

Mypy给我打印以下消息: X.py:74:错误:赋值中的类型不兼容(表达式具有类型 “Union[str,dict[str,str]]”,变量的类型为“str”) 这不奇怪吗?str是Union[str, Dict[str, str]]的一部分 代码如下: def get_multiple(fields: List[str], config_data) -> Dict[s ..
发布时间:2022-04-18 15:20:10 Python

是否为lxml键入提示?

Python新手,具有静态类型语言背景。我想要https://lxml.de的类型提示,只是为了便于开发(mypy标记问题和建议方法会很好!) 据我所知,这是一个python2.0模块,没有类型。目前,我已经使用https://mypy.readthedocs.io/en/stable/stubgen.html创建存根类型定义并填充“any”--我正在使用的更多信息类型,但真的太老套了。是否 ..
发布时间:2022-04-01 14:24:26 其他开发

如何让 Mypy 意识到对两个整数进行排序会返回两个整数

我的代码如下: 从输入导入元组a: 元组[int, int] = 元组(排序([1, 3])) Mypy 告诉我: 赋值中的不兼容类型(表达式的类型为“Tuple[int,...]",变量的类型为“Tuple[int, int]") 我做错了什么?为什么 Mypy 无法确定排序后的元组将返回正好两个整数? 解决方案 对 sorted 的调用会生成一个 List[int],其 ..
发布时间:2022-01-19 23:54:37 其他开发

将布尔值与整数混合时,Mypy 不会抛出错误

我正在尝试使用 mypy 来检查 Python 3 项目.在下面的示例中,我希望 mypy 将类 MyClass 的构造标记为错误,但事实并非如此. 类 MyClass:def __init__(self, i:int) ->没有任何:经过obj = MyClass(False) 谁能解释一下,好吗?IE.解释一下mypy为什么不报错? 解决方案 这是因为——不幸的是!— Python ..
发布时间:2022-01-19 17:12:05 Python

与 Mypy 兼容的类装饰器

假设我有以下没有任何类型提示的简单示例: def wrapper(cls):类子类(cls):def subclass_method(self):经过返回子类@wrapper班级家长:def parent_method(self):经过p = 父()p.parent_method()p.subclass_method() 如何使用类型提示重构此代码,以便当我针对 Parent 的实例运行 my ..
发布时间:2021-09-11 19:54:52 Python

如何为子类实例列表制作类型注释,例如连接两个列表?

我想遍历 List[A] 和 List[Subclass of A] 并执行相同的循环.我能看到的最好的方法是连接两个列表.然而,mypy 对此并不满意. 如何将两者连接起来并让 mypy 开心? 目前,我做# type: ignore[operator].如果可能,我想避免这种情况. MVCE # 核心库模块from 输入 import Iterable# 第三方模块从 py ..
发布时间:2021-09-11 19:54:49 Python

如何在 Python 中键入提示嵌套对象?

我目前正在与 WSDL 进行集成,因此决定使用 Zeep 库与 Python 一起使用. 我正在尝试使用 mypy 对响应进行建模,以便它可以与 VSCode 的 Intellisense 配合使用,并且在我进行粗心的分配或修改时会给出一些提示.但是,当 WSDL 响应位于嵌套对象中时,我遇到了障碍,而且我无法找到对其进行类型提示的方法. 来自 WSDL 的示例响应: {'结果': ..
发布时间:2021-09-11 19:53:57 Python

子类中返回值的类型提示

我正在编写一个 CustomEnum 类,我想在其中添加一些帮助器方法,然后子类化我的 CustomEnum 的类可以使用这些方法.其中一种方法是返回一个随机枚举值,这就是我被卡住的地方.该函数按预期工作,但在类型提示方面,我想不出一种说法“返回类型与 cls 类型相同". 我相当确定其中涉及到一些 TypeVar 或类似的魔法,但由于我从未使用过它们,因此我从未花时间弄清楚它们. cla ..
发布时间:2021-09-11 19:53:05 Python

类型化python:在类定义中使用类自己的类型

以下代码未按预期工作.显然,我不能在类定义中使用类自己的类型: Foo 类:def __init__(self, key :str) ->没有任何:self.key = 键def __eq__(self, other :Foo) ->布尔:返回 self.key == other.keyprint('应该是真的:', Foo('abc') == Foo('abc'))print('应该是假的: ..
发布时间:2021-09-11 19:52:55 Python

mypy 和 attrs:错误类型检查子类列表

我有一个可以包含不同类型消息的消息容器.目前,只有短信. 这些是我的课程: from 输入导入列表,TypeVar导入属性@attr.s(auto_attribs=True)类通用消息:文本:str = attr.ib()GMessage = TypeVar('GMessage', bound=GenericMessage)@attr.s(auto_attribs=True)类 TextM ..
发布时间:2021-06-05 18:36:14 Python

Pycharm 运行外部工具宏

我试图在作为模板的运行配置中将 mypy 作为“启动前"工具运行. 我有以下设置(程序:是 mypy 可执行文件的路径). 当我运行我的脚本时,我希望宏像这样插入脚本的文件名: mypy.exe myScript.py 然而,它只运行 mypy.exe 部分(在控制台中,我收到一条错误消息,告诉我向该函数提供目标脚本).我也尝试删除工作目录字段,但无济于事: (Win10/P ..
发布时间:2021-06-05 18:36:11 Python

如何向工厂方法添加提示?

我正在寻找一种方法来注释工厂函数的返回类型. 它返回'AlgorithmBase'的随机子节点. 类算法工厂:_algorithm_types = AlgorithmBase.__subclasses__()def select_random_algorithm(self) ->算法库:# 选择随机算法algorithm_class = self._random_generator.cho ..
发布时间:2021-06-05 18:36:05 Python

Python 异步装饰器保留类型

对于以下文件: from abc import ABC,abstractmethodfrom 输入 import Any, Awaitable, Callable, TypeVar, castT = TypeVar('T')def dec(args: Any) ->Callable[..., Awaitable[T]]:def dec2(f: Callable[..., Awaitable[T] ..
发布时间:2021-06-05 18:36:03 Python