Type-hint coverage audit: ~75% overall, parameter annotations lagging in several modules
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- computer-vision
Línea de trabajo
Comienza en src/machinevisiontoolbox/cvfuncs.py, ImageCore.py, Sources.py, ImageRegionFeatures.py, BagOfWords.py e ImageBlobs.py, comparando sus anotaciones con la convención de typing existente del proyecto y con módulos completamente anotados como mvtb_types.py. Añade las anotaciones que faltan a los parámetros usando las formas modernas indicadas, preservando el comportamiento; el trabajo estará terminado cuando se hayan abordado los seis módulos con menor cobertura.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 220
- Forks
- 30
- Merge medio
- 12 d 23 h
- PR fusionados (30 d)
- 5
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 petercorke/machinevision-toolbox-python
-
tech-debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
tech-debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
tech-debt
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
-
tech-debt
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
-
tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de petercorke/machinevision-toolbox-python
Issues similares
-
needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
openvinotoolkit/openvino_notebooks#3665 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
benchmark-gap
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día