Duplicate module silently replaces existing module in dmypy recheck --update
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
If one has these two files:
# [file a/mod.py]
# empty
# [file b/mod.py]
42 + 'no'
and there are no __init__.py[i] files in the directories, then running dmypy produces the following result:
$ dmypy start -- --follow-import=skip
Daemon started
$ dmypy check a/mod.py
$ dmypy recheck --update b/mod.py
b/mod.py:1: error: Unsupported operand types for + ("int" and "str")
$ dmypy recheck --remove b/mod.py
b/mod.py:1: error: Unsupported operand types for + ("int" and "str")
$ dmypy recheck --update a/mod.py
b/mod.py:1: error: Unsupported operand types for + ("int" and "str")
The problem here is twofold:
- When we first trying to add the duplicate module, this should cause a blocking error, as in normal/incremental run instead of silently replacing the other module.
- Even after one tries to remove the problematic module, it stays in build causing errors in all subsequent runs independently of what is done (except just stopping the daemon).
This is high priority because it causes troubles when adding files in existing large codebases.
Guía de contribución
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.
Línea de trabajo
Reproduce la secuencia con dmypy start, check, recheck --update, recheck --remove y recheck --update usando los dos archivos mod.py duplicados. Rastrea cómo el daemon gestiona los módulos duplicados durante la actualización y la eliminación. Se considera terminado cuando añadir el duplicado informa de un error bloqueante, eliminarlo borra el módulo obsoleto y las comprobaciones posteriores dejan de informar de su error.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100