Расшифровка Python Mypy Reports - PullRequest
       19

Расшифровка Python Mypy Reports

0 голосов
/ 19 апреля 2020

Я пытался прочитать 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_py/.

Я ожидал увидеть, что 1 функция в порядке (функция buki), а в одной отсутствует подсказка типа (функция kuki). Таким образом, я также ожидал увидеть статистику, которая говорит что-то вроде: «50% ОК».

То, что я получил, было:

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

Script: index

+--+-------------------+-------+
| Module | Imprecision       | Lines |
+--+-------------------+-------+
+--+-------------------+-------+
| Total |   0.00% imprecise | 0 LOC |
+--+-------------------+-------+

вопросы на данный момент:

  1. почему 0 строк кода (я думаю, LO C обозначает Lines Of Code)?
  2. почему неточность 0,00%? Я ожидал бы 50% ...

в любом случае, понимая, что это не дает ожидаемых результатов, я попытался: mypy --strict --linecount-report=/tmp /tmp/tmp_py/. Это привело к зашифрованному выводу:

      5      11      1      2 total
      5      11      1      2 tmp_py.a
      0       0      0      0 tmp_py

, поэтому возникает больше вопросов:

  1. но как это выглядит?
  2. что означают столбцы?

Идя вперед, я попытался: mypy --strict --linecoverage-report=/tmp /tmp/tmp_py/. Это привело к еще более зашифрованному выводу:

{
  "lines": {
    "/tmp/tmp_py/a.py": [
      5,
      6,
      7,
      8,
      9,
      10,
      11
    ],
    "/tmp/tmp_py/__init__.py": []
  }
}

и еще больше вопросов:

  1. что означает этот массив чисел?
  2. Какие значения он содержит?

, поэтому я перешел к: mypy --strict --lineprecision-report=/tmp /tmp/tmp_py/. Он не выдал никаких результатов ...

и так, например, Хххх ???

Кто-нибудь знает, как расшифровать эти отчеты? ссылки на документацию было бы здорово. кто-нибудь понимает, почему lineprecision-report не выдает вывод? и, наконец, в случае, если mypy не может дать мне статистику, которую я ищу (которая, я думаю, довольно проста c - сколько функций в порядке, а сколько "сломано") - кто-нибудь знает или порекомендуете другой инструмент, который может предоставить эту статистику?

Заранее спасибо!

...