When using `isinstance` to infer a generic type in a block, use any covariant bounds on the type variable.
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Start with the isinstance-based generic inference example in the issue and reproduce its reveal_type result for AppleAction. Done means covariant, bounded type variables are reflected in the inferred type rather than producing AppleAction[Any], with the behavior validated for the shown hierarchy.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I have a class hierarchy like the following:
class Apple(object): ...
T_co = TypeVar('T_co', covariant=True)
A_co = TypeVar('A_co', bound=Apple, covariant=True)
class Action(Generic[T_co]): ...
class AppleAction(Generic[A_co], Action[A_co]): ...
Later in my code, I have a block like so:
if isinstance(action, AppleAction):
reveal_type(action)
And I get AppleAction[Any]. Because A_co is covariant, and bounded by Apple, even if A_co is bound to a subtype of Apple, the resulting object is going to be a valid instance of AppleAction[Apple]. I'd like to have action be AppleAction[Apple] in this case.
- Linguagem predominante
- Python
- Estrelas
- 20.6k
- Forks
- 3.3k
- Merge médio
- 1d 18h
- PRs com merge (30d)
- 54
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 75/100
-
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
Todas as issues de python/mypy
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
zostera/django-bootstrap4#894 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
use-agent-os/agent-os#3276 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
zephyrproject-rtos/zephyr#119726 ·
-
area/auth bug comp/agent P3 platform/discord type/security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
NousResearch/hermes-agent#117848 ·