aai-institute / aai-institute/pyDVL
Refactor `lc_solve_problem`
- Lenguaje dominante
- Python
- Estrellas
- 146
- Forks
- 10
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
We should refactor `pydvl.valuation.methods._solve_least_core_problems.lc_solve_problem`
In the discussion of PR #580, @schroedk wrote:
> This function is mixing two levels of abstraction, on the one hand it is doing a lot of low level stuff to construct the conditions for the optimization problem and on the other hand, it calls other more low-level functions (solve...). This mixing of levels of abstractions makes it harder to read. Even if a user would not call this function directly, for the developers it is a more difficult task to grasp what is happening (actually the comment helps a lot and in combination with the log messages it seems to me that the related code should be encapsulated in other low-level functions with only one purpose).
Another problem is that all low level functions that are called inside `lc_solve_problem` have many similar argument (e.g. `A_eq`, `b_eq`, `A_lb`, `b_lb`). We should bundle those arguments in a simple Object. That way we can pass them around more easily and do some simple compatibility checks during initialization.
Guía de contribución
Línea de trabajo
Mira la función `lc_solve_problem` en `pydvl/valuation/methods/_solve_least_core_problems.py`. Examina los argumentos de bajo nivel como `A_eq`, `b_eq`, `A_lb`, `b_lb` y considera agruparlos en un objeto simple. Identifica secciones que mezclan niveles de abstracción y encapsúlalas en funciones de bajo nivel separadas. Revisa la discusión de PR #580 para contexto. Ejecuta las pruebas existentes para asegurar que la refactorización no rompa funcionalidad.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Área
- backend-api-design
- Tipo de issue
- Refactorización
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 55/100