Python Mypy vers。0.761和0.812:在类型语法要求上有很大的差异。有办法绕过他们吗?

Python Mypy vers。0.761和0.812:在类型语法要求上有很大的差异。有办法绕过他们吗?,python,python-3.x,mypy,python-poetry,Python,Python 3.x,Mypy,Python Poetry,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") 底线是:您几乎可以记住所有内容,但一些类型提示非常有用,特别是当涉及到作为输入传递的自定义类和函数时 但是,mypy0.761断言带括号的项

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的所有要求进行了编译,代表了一项重要而重要的工作

同时,一个新的依赖项迫使
poetry
只安装0.761版本的mypy


这意味着,到目前为止,项目无法通过QA,除非我将构建系统从poetry更改为setuptools,或者在涉及依赖性问题时比poetry更宽容的其他东西

平心而论,诗歌的依赖性解析可能过于详尽,可能会暴露出错误和疏忽



有没有办法控制或强制使用mypy版本0.761,因为它的可用文档有限(我找不到它),如果要在0.812版本随着时间的推移更新包而重新联机时忽略类型注释语法错误而不禁用检查?

无法告诉poetry忽略依赖项或其版本约束。这是一种有意的行为,在文章中讨论了很多

你能做什么

  • 联系软件包的维护人员,让他更新依赖项(这个软件包在运行时真的需要mypy吗?)
  • 问问自己,你是否需要这个包裹。有没有过时的替代方案
  • 分叉项目并更新其依赖项

    • 没有办法告诉poetry忽略依赖项或其版本约束。这是一种有意的行为,在文章中讨论了很多

      你能做什么

      • 联系软件包的维护人员,让他更新依赖项(这个软件包在运行时真的需要mypy吗?)
      • 问问自己,你是否需要这个包裹。有没有过时的替代方案
      • 分叉项目并更新其依赖项