Могу ли я сообщить о покрытии подсказок типа, используя mypy или любой другой пакет в Python, аналогично тому, как я могу проверить покрытие кода, например, cover.py?
Да,Есть много флагов для запрета различного использования Any
, а также аннотаций отсутствующего типа .Или вы можете просто передать флаг --strict
, чтобы запретить большое количество сомнительных конструкций с одним флагом.Точное определение --strict
может со временем меняться, поэтому оно может плохо подходить для CI (т. Е. «Почему сборка не работает, все, что я сделал, это установил новый mypy
?»).Существует также несколько флагов для генерации отчетов о покрытии .
Разумно ли также требовать строгого 100% покрытия подсказок типа?
Это будет в значительной степени зависеть от того, чего вы хотите достичь с помощью подсказок типов, а также от истории и текущего состояния вашей кодовой базы.Например, если вы и все ваши коллеги-разработчики пришли из статической среды типизации (то есть, вы ранее программировали на статически типизированных языках, таких как C ++ и Java), и у вас нет большого количества старого кода Python для поддержки, тогда этоскорее всего, будет хорошо работать.С другой стороны, если у вас большой объем унаследованного кода (возможно, преобразованный из Python 2 в последнюю минуту), или если многие из ваших разработчиков привыкли к динамической типизации, тогда может быть большее несоответствие импеданса.Если вы не уверены, сработает ли это для вас, я бы предложил настроить отдельные сборки CI со строгостью и без нее.Если строгий постоянно красный, а нестрогий постоянно зеленый, у вас может возникнуть техническая или культурная проблема, которую необходимо решить, прежде чем включать обязательные подсказки типа.