`mypy --any-exprs-report` depends on formatting
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
Bug Report
The report any-exprs.txt generated by mypy --any-exprs-report changes its output, even if the AST has not changed in any way.
To Reproduce
This is a minimal example:
Error = (
int
| int
)
mypy reports
Name Anys Exprs Coverage
-------------------------------
t 2 4 50.00%
-------------------------------
Total 2 4 50.00%
On the other hand, this example produces no errors
OK = int | int
Again the table, for completeness.
Name Anys Exprs Coverage
-------------------------------
s 0 2 100.00%
-------------------------------
Total 0 2 100.00%
The underlying reason is that mypy counts expressions set as TYPE_UNANALYZED as Anys expression. This is very surprising to me. The specific expression is assigned TYPE_UNANALYZED in StatisticsVisitor.type.
Expected Behavior
The invocation mypy --any-exprs-report matches the number of errors encountered by running mypy --disallow-any-exprs. Or at the very least clear up the documentation:
Causes mypy to generate a text file report documenting how many
expressions of type ``Any`` are present within your codebase.
Your Environment
I don't think this matters, but:
- Mypy version used:
mypy 1.14.0 (compiled: yes)
mypy 1.15.0+dev.d79d89e3ff31ed67a41b0663da9ec8e037d41fa0 (compiled: no) - Mypy command-line flags:
--any-exprs-report - Mypy configuration options from
mypy.ini(and other config files): None - Python version used: 3.12.1
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
Empieza por la implementación del informe any-exprs y por la ubicación StatisticsVisitor.type indicada en el informe. Compara el tratamiento de TYPE_UNANALYZED en StatisticsVisitor.type con el comportamiento de --disallow-any-exprs y, después, comprueba la redacción de la documentación de --any-exprs-report. Se considera terminado cuando el informe ya no cambia con un formato equivalente o cuando el comportamiento documentado describe con precisión lo que cuenta.
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
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100