`typing.Protocol` is explicitly treated as not a `type`
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
Direção de pesquisa
Comece com a reprodução em Python fornecida usando mypy --strict e compare seus diagnósticos com o comportamento indicado do Pyright. Localize o tratamento especial de typing.Protocol no mypy e adicione testes ou atualize a cobertura para que Protocol seja aceito como um tipo e a reprodução não produza erros.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Python
- Estrelas
- 20.6k
- Forks
- 3.3k
- Merge médio
- 1d 3h
- PRs com merge (30d)
- 59
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de python/mypy
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
bug topic-configuration topic-error-reporting
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
bug topic-attrs
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Todas as issues de python/mypy
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
xinnan-tech/xiaozhi-fde-talk#263 ·
-
rules
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
huggingface/Repo2RLEnv#163 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 95/100
huggingface/sentence-transformers#4074 ·
-
comp/dashboard invalid P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
NousResearch/hermes-agent#121143 ·