Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[eval] DRY: drop repeated "winml.modelkit.eval." prefix in _EVALUATOR_REGISTRY

Abierto Apto para principiantes
#808 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
84/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
python

Línea de trabajo

Empieza en eval/evaluate.py, en _EVALUATOR_REGISTRY y get_evaluator_class, y luego lee tests/unit/eval/test_eval.py::test_registered_task_returns_class. Almacena las entradas del registro sin el prefijo de paquete repetido, añade el único prefijo en el momento de la importación, actualiza la aserción de la ruta del módulo y ejecuta el test enfocado para confirmar que el comportamiento no ha cambiado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

P2 refactor triaged

Component: eval
Type: cleanup / quality

Context

eval/evaluate.py::_EVALUATOR_REGISTRY maps task -> "module_path:ClassName", e.g.:

"image-feature-extraction":
    "winml.modelkit.eval.image_feature_extraction_evaluator:WinMLImageFeatureExtractionEvaluator",

The winml.modelkit.eval. prefix is repeated for all 15 entries. Because the full single-line entries exceed the 100-char limit, the dict is currently wrapped in # fmt: off / # fmt: on to preserve the readable key/value-per-line layout (otherwise ruff-format collapses each entry onto one >100-char line, which trips E501). Introduced/surfaced in #807.

Proposed cleanup

  • Store the relative "<module>:<ClassName>" (drop the repeated package prefix).
  • Prepend winml.modelkit.eval. once in get_evaluator_class: importlib.import_module(f"winml.modelkit.eval.{module_path}").
  • Most entries then fit on a single line naturally; only the 3 longest (image-feature-extraction, zero-shot-classification, zero-shot-image-classification) still need # noqa: E501.
  • This removes the # fmt: off / # fmt: on block.

Note

tests/unit/eval/test_eval.py::test_registered_task_returns_class asserts cls.__module__ == module_path; update it to compare against the full prefixed path.

Out of scope

Behavior is unchanged — purely a storage-format/readability cleanup.

Lenguaje dominante
Python
Estrellas
40
Forks
11
Merge medio
19 h 32 min
PR fusionados (30 d)
51

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/winml-cli

Todos los issues de microsoft/winml-cli

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.