python / python/mypy

subtle cache corruption when using dataclass transform leading to `Cannot determine type of "<my-dataclass-transform>" [has-type]` and a big complicated codebase (Pomodouroboros)

Abierto
#21,043 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug Report

This commit https://github.com/glyph/Pomodouroboros/commit/0d72cbb5079c87e3727a507c7752d1b053665abb prevents a mypy error, while making no semantic changes.

To Reproduce

Unfortunately I cannot construct a minimal reproducer.

  1. Check out that commit, replace the call to observify(SessionManager) with @observable() above the declaration of SessionManager.
  2. mypy src/pomodouroboros/model/sessions.py -> no error
  3. mypy src/ ->
    src/pomodouroboros/model/sessions.py:150: error: Cannot determine type of "observable"  [has-type]
    Found 1 error in 1 file (checked 58 source files)
    
  4. notice the error.

Expected Behavior

I would expect no error here, or at the very least, the same error with or without running mypy on the rest of the codebase.

Actual Behavior

See above.

Your Environment

  • Mypy version used: mypy 1.19.1 (compiled: yes)
  • Mypy command-line flags: none
  • Mypy configuration options from mypy.ini (and other config files): see project
  • Python version used: 3.13.12

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Comienza con el commit de Pomodouroboros y src/pomodouroboros/model/sessions.py; después, ejecuta mypy src/pomodouroboros/model/sessions.py y mypy src/ tal como se describe. Compara los resultados con y sin el cambio de @observable(), utilizando las versiones de mypy y Python indicadas. Se considera completado cuando el error relacionado con la caché es reproducible y se resuelve de forma consistente para ambos ámbitos de invocación.

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

Evaluación

Stack tecnológico
python
Área
compilers
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.