Add a way for mypy coverage reports to omit certain lines or functions from precision checking
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
El issue no menciona archivos ni pruebas. Empieza localizando la generación de informes de precisión de cobertura y el análisis de la configuración de mypy; después, sigue el rastro de cómo se identifican los usos informados. Se considera terminado cuando los usuarios puedan configurar exclusiones para funciones o usos especificados y el informe de cobertura omita esas entradas sin afectar a la comprobación de tipos normal.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When looking at a coverage report which shows the precision of the types on my code, I very frequently find that the same handful of functions are responsible for lines being marked "imprecise".
In general:
- library or stdlib functions which really consume
Any, likeLogger.debug - library or stdlib functions which produce
Any, likesqlalchemy.orm.query.Query.scalar - functions in my own code where the type is
Anyto avoid other issues (e.g. absence of unsafe unions)
I would like to be able to tell mypy to exempt certain usages from its reporting.
Several tools support this via comments (# pragma: no cover, # fmt: off, # noqa), but coverage has another interface which may be better suited to mypy: you can specify expressions which are skipped. (tool.coverage.report.exclude_lines in pyproject.toml).
Being able to stipulate something like:
mypy-coverage-precision-exclude =
logging.Logger.debug
logging.Logger.error
sqlalchemy.orm.query.Query.scalar
mymodule.myfunc
would make the coverage reporting much more useful, because it would eliminate "false negatives" on lines that really ought to have imprecise types.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Merge medio
- 1 d 18 h
- PR fusionados (30 d)
- 54
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python/mypy
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
bug topic-configuration topic-error-reporting
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Todos los issues de python/mypy
Issues similares
-
link-check link-check:sphinx-theme
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
OpenHands/extensions#626 · 1 comentario ·
-
Change observation tooltip text Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
CSCfi/sd-search-api#39 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100