Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Union(Type) and TypeForm

Aberta
#21,910 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
68/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
devtools

Direção de pesquisa

Comece reproduzindo o exemplo em main.py com mypy, com e sem --warn-unreachable, e examine como typing.Union e types.UnionType são tratados quando o valor é anotado com typing_extensions.TypeForm. Considera-se concluído quando as verificações isinstance equivalentes não produzirem mais os erros relatados de tipo incompatível ou instrução inacessível.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug topic-runtime-semantics

My function should analyze types.
Both when --warn-unreachable is enabled, and when checking typing.Union, and when checking types.UnionType, an error occurs.

code:

from types import UnionType
from typing import Any, Union

from typing_extensions import TypeForm


def f(t: TypeForm[Any]) -> Any:
    if isinstance(t, Union):
        pass


def g(t: TypeForm[Any]) -> Any:
    if isinstance(t, UnionType):
        pass

errors:

main.py:8: error: Argument 2 to "isinstance" has incompatible type "<typing special form>"; expected "_ClassInfo"  [arg-type]
main.py:14: error: Statement is unreachable  [unreachable]
Found 2 errors in 1 file (checked 1 source file)

in runtime, the behavior of both isinstance is equivalent.

Linguagem predominante
Python
Estrelas
20.6k
Forks
3.3k
Merge médio
1d 3h
PRs com merge (30d)
60

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de python/mypy

Todas as issues de python/mypy

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.