petercorke / petercorke/machinevision-toolbox-python

Type-hint coverage audit: ~75% overall, parameter annotations lagging in several modules

Offen
#60 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

tech-debt
Vorherrschende Sprache
Python
Sterne
219
Forks
30
Ø Merge
12 T. 23 Std.
Gemergte PRs (30 T.)
5

Beschreibung

Found 2026-08-10 while reviewing unmerged branches during a cleanup pass. An old typing branch (base commit 2022-10-18, predates the src/-layout restructure) attempted a broader typing pass but is no longer mergeable — its module paths no longer exist. Later, separate efforts did land on main (e.g. acc8222b, 524c7b8c, PR #32/fix/annotations-and-deprecation-warnings), so coverage today is real but partial, not complete.

An AST-based audit of parameter/return annotations across src/machinevisiontoolbox gives:

OVERALL: 54.3% params, 95.4% returns, 74.9% average

Return-type coverage is already strong almost everywhere (many modules at 100%); the gap is almost entirely on parameter annotations. Full per-module breakdown, sorted by average:

Module                       Param %   Return %   Avg %
cvfuncs.py                    100.0%      0.0%     50.0%
ImageCore.py                   30.9%     94.7%     62.8%
Sources.py                     38.0%     91.1%     64.6%
ImageRegionFeatures.py         31.0%    100.0%     65.5%
BagOfWords.py                  39.1%     95.7%     67.4%
ImageBlobs.py                  38.0%    100.0%     69.0%
ImageConstants.py              72.3%     71.4%     71.9%
ImageMultiview.py              68.2%     83.3%     75.8%
ImageIO.py                     58.5%     93.3%     75.9%
ImageWholeFeatures.py          55.6%     97.6%     76.6%
ImageProcessing.py             68.0%     86.4%     77.2%
ImagePointFeatures.py          55.6%    100.0%     77.8%
BundleAdjust.py                56.0%    100.0%     78.0%
VisualServo.py                 63.2%     93.2%     78.2%
Kernel.py                      57.5%    100.0%     78.8%
PointCloud.py                  57.9%    100.0%     78.9%
Camera.py                      61.3%     99.0%     80.1%
ImageColor.py                  60.9%    100.0%     80.4%
ImageFiducials.py              69.6%     94.1%     81.9%
ImageLineFeatures.py           66.7%    100.0%     83.3%
ImageReshape.py                72.8%     96.0%     84.4%
ImageMorph.py                  77.1%    100.0%     88.5%
ImageTensor.py                 77.8%    100.0%     88.9%
ImageSpatial.py                78.7%    100.0%     89.4%
camera_derivatives.py         100.0%    100.0%    100.0%
decorators.py                 100.0%    100.0%    100.0%
docbugs.py                    100.0%    100.0%    100.0%
fiducial.py                   100.0%    100.0%    100.0%
mvtb_types.py                 100.0%    100.0%    100.0%

Fix

Work through the lowest-param-coverage modules first (cvfuncs.py, ImageCore.py, Sources.py, ImageRegionFeatures.py, BagOfWords.py, ImageBlobs.py — all under 40% param coverage), adding modern X | Y / X | None / list[X] annotations per the project's typing convention. No architectural changes needed, just incremental annotation additions per module.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie in src/machinevisiontoolbox/cvfuncs.py, ImageCore.py, Sources.py, ImageRegionFeatures.py, BagOfWords.py und ImageBlobs.py, und vergleichen Sie deren Annotationen mit der bestehenden Typing-Konvention des Projekts und vollständig annotierten Modulen wie mvtb_types.py. Fügen Sie die fehlenden Parameter-Annotationen mit den angegebenen modernen Formen hinzu und bewahren Sie dabei das Verhalten; abgeschlossen ist die Aufgabe, wenn die sechs Module mit der niedrigsten Abdeckung bearbeitet wurden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
computer-vision
Issue-Typ
Refactoring
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.