Mypy 版本0.761 和 0.812:类型语法要求存在显着差异。有办法绕过他们吗?
Mypy vers. 0.761 and 0.812: there are dramatic differences in type syntax requirements. Any way around them?
mypy 0.812
允许以下有用的类型提示:
def foo(a: str, b: str) -> str:
return a + b
def bar(foo_fn: Callable[[str,str],str]) -> str:
return foo_fn("foo","bar")
底线是:您几乎可以记住所有内容,但一些类型提示很有用,尤其是在涉及自定义 类 和作为输入传递的函数时。
但是,mypy
0.761 断言 Callable
括号中的项目是语法错误。
根据 mypy
0.812 的所有要求进行编译后,源代码中括号中的项目代表了重要且重要的工作量。
同时,一个新的依赖项迫使 poetry
只能安装 mypy 到 0.761 版本。
这意味着,到目前为止,除非我将构建系统从 poetry 更改为 setuptools 或其他在依赖性问题上比 poetry 更宽容的东西,否则该项目无法通过 QA。
平心而论,诗歌在解决依赖关系方面可能过于详尽,并且可能会暴露出错误和疏忽。
有没有办法控制或强制 mypy 版本 0.761(它的可用文档有限(我找不到))忽略类型注释语法错误,而不会在版本 0.812 恢复在线时禁用检查随着时间的推移更新?
无法告诉诗歌忽略依赖项或其版本约束。这是预期的行为,在 issue tracker 中进行了很多讨论。
你能做什么?
- 联系包的维护者,让他更新依赖(这个包在运行时真的需要mypy吗?)
- 问问自己,你是否需要这个包。有没有过时的替代品?
- 分叉项目并更新其依赖项。
mypy 0.812
允许以下有用的类型提示:
def foo(a: str, b: str) -> str:
return a + b
def bar(foo_fn: Callable[[str,str],str]) -> str:
return foo_fn("foo","bar")
底线是:您几乎可以记住所有内容,但一些类型提示很有用,尤其是在涉及自定义 类 和作为输入传递的函数时。
但是,mypy
0.761 断言 Callable
括号中的项目是语法错误。
根据 mypy
0.812 的所有要求进行编译后,源代码中括号中的项目代表了重要且重要的工作量。
同时,一个新的依赖项迫使 poetry
只能安装 mypy 到 0.761 版本。
这意味着,到目前为止,除非我将构建系统从 poetry 更改为 setuptools 或其他在依赖性问题上比 poetry 更宽容的东西,否则该项目无法通过 QA。
平心而论,诗歌在解决依赖关系方面可能过于详尽,并且可能会暴露出错误和疏忽。
有没有办法控制或强制 mypy 版本 0.761(它的可用文档有限(我找不到))忽略类型注释语法错误,而不会在版本 0.812 恢复在线时禁用检查随着时间的推移更新?
无法告诉诗歌忽略依赖项或其版本约束。这是预期的行为,在 issue tracker 中进行了很多讨论。
你能做什么?
- 联系包的维护者,让他更新依赖(这个包在运行时真的需要mypy吗?)
- 问问自己,你是否需要这个包。有没有过时的替代品?
- 分叉项目并更新其依赖项。