Add a way for mypy coverage reports to omit certain lines or functions from precision checking
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Das Issue nennt keine Dateien oder Tests. Beginne damit, mypys Berichterstattung zur Coverage-Genauigkeit und das Parsen der Konfiguration zu lokalisieren, und verfolge anschließend, wie gemeldete Verwendungen identifiziert werden. Erledigt ist die Aufgabe, wenn Benutzer Ausschlüsse für angegebene Funktionen oder Verwendungen konfigurieren können und der Coverage-Bericht diese Einträge auslässt, ohne die normale Typprüfung zu beeinflussen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 54
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/mypy
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
bug topic-configuration topic-error-reporting
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
bancolombia/sentinel#23 ·
-
test md OffenCI
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100