aai-institute / aai-institute/pyDVL

Refactor `lc_solve_problem`

Abierto
#584 0 comentarios 0 reacciones 0 asignados Ver en GitHub
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.