`typing.Protocol` is explicitly treated as not a `type`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
Comienza con la reproducción de Python proporcionada ejecutando mypy --strict y compara sus diagnósticos con el comportamiento indicado de Pyright. Localiza el tratamiento especial de typing.Protocol en mypy y añade o actualiza la cobertura de pruebas para que Protocol se acepte como tipo y la reproducción no produzca errores.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug Report
At runtime, isinstance(typing.Protocol, type) is True. When type checking, mypy appears to special-case Protocol:
- mypy:
<typing special form> - Pylance/Pyright:
(class) Protocol
To Reproduce
from typing import Protocol
class A(Protocol): pass
assert Protocol in A.__bases__
bases: tuple[type, ...] = (Protocol, *A.__bases__)
Expected Behavior
Same as Pyright, Protocol is a class (type), no errors.
Actual Behavior
main.py:5: error: Non-overlapping container check (element type: "<typing special form>", container item type: "type") [comparison-overlap]
main.py:6: error: Argument 1 to <tuple> has incompatible type "<typing special form>"; expected "type" [arg-type]
Your Environment
- Mypy version used: 1.0.0, 1.10.1, 1.20.2, 2.3.1
- Mypy command-line flags:
--strict - Python version used: 3.6 - 3.14
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Merge medio
- 1 d 12 h
- PR fusionados (30 d)
- 58
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.
Más de python/mypy
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
bug topic-configuration topic-error-reporting
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
bug topic-attrs
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Todos los issues de python/mypy
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
anthropics/skills#1811 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
speaches-ai/speaches#678 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
datalayer/mcp-compose#42 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
conda-forge/spacy-feedstock#177 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
UKGovernmentBEIS/inspect_evals#2523 ·