解读Python Mypy报告

解读Python Mypy报告,python,mypy,python-typing,Python,Mypy,Python Typing,我试着阅读mypy报告,但不太明白如何 因此,在/tmp/tmp_py/上,我创建了一个虚拟文件,如下所示: def kuki(x): print("kuki") return "kuki" def buki(x: str) -> int: print(333333) return 33 现在我运行mypy--strict--txt report=/tmp/tmp/tmp\u py/ 我希望看到1个函数是正常的(buki函数),还有一个是缺少类型提示(k

我试着阅读
mypy
报告,但不太明白如何

因此,在
/tmp/tmp_py/
上,我创建了一个虚拟文件,如下所示:

def kuki(x):
    print("kuki")
    return "kuki"

def buki(x: str) -> int:
    print(333333)
    return 33
现在我运行
mypy--strict--txt report=/tmp/tmp/tmp\u py/

我希望看到1个函数是正常的(
buki
函数),还有一个是缺少类型提示(
kuki
函数)。因此,我也希望看到类似“50%正常”的统计数据

我得到的是:

Mypy Type Check Coverage Summary
================================

Script: index

+--+-------------------+-------+
| Module | Imprecision       | Lines |
+--+-------------------+-------+
+--+-------------------+-------+
| Total |   0.00% imprecise | 0 LOC |
+--+-------------------+-------+
目前的问题是:

  • 为什么0行代码(我猜LOC代表代码行)
  • 为什么是0.00%的预付款?我希望50%
  • 无论如何,意识到它不会产生我想要的结果,我尝试了:
    mypy--strict--linecount report=/tmp/tmp/tmp\u py/
    。这产生了加密输出:

          5      11      1      2 total
          5      11      1      2 tmp_py.a
          0       0      0      0 tmp_py
    
    {
      "lines": {
        "/tmp/tmp_py/a.py": [
          5,
          6,
          7,
          8,
          9,
          10,
          11
        ],
        "/tmp/tmp_py/__init__.py": []
      }
    }
    
    因此,出现了更多的问题:

  • 但这是怎么理解的呢
  • 这些列是什么意思
  • 接下来,我尝试了:
    mypy--strict--linecoverage report=/tmp/tmp/tmp\u py/
    。这产生了更加密的输出:

          5      11      1      2 total
          5      11      1      2 tmp_py.a
          0       0      0      0 tmp_py
    
    {
      "lines": {
        "/tmp/tmp_py/a.py": [
          5,
          6,
          7,
          8,
          9,
          10,
          11
        ],
        "/tmp/tmp_py/__init__.py": []
      }
    }
    
    还有更多的问题:

  • 这个数字数组是什么意思
  • 它的价值观是什么
  • 于是我转向:
    mypy--strict--lineprecision report=/tmp/tmp/tmp\u py/
    。它没有产生任何产出

    那么,就像,啊啊

    有人知道如何破译这些报告吗?链接到文档将是伟大的。有人知道为什么
    lineprecision report
    没有输出吗?最后,如果
    mypy
    无法为我提供我正在寻找的统计数据(我认为,这些统计数据非常基本——有多少函数是可以的,有多少函数是“坏的”)——有人知道或推荐其他可以提供这些统计数据的工具吗


    提前谢谢

    您使用什么
    mypy
    版本?当使用v0.770评估您的示例时,我发现
    42.86%不精确。虽然承认了,但这些报道还是有点前卫。@hoefling,谢谢你的评论。相同的
    mypy
    版本:
    mypy--version
    给出了
    mypy 0.770
    。也许是python版本?我正在使用Python 3.6.8。也许是操作系统?我正在使用MacOS,Catalina 10.15.4。但42.86%甚至更奇怪。。。比如,有人会期望50%。。。熟悉其他可能正确完成工作的工具吗?