Repolode
agronholm

agronholm/typeguard

Verificador de tipos em tempo de execução para Python que valida anotações PEP 484 em funções, objetos arbitrários e variáveis locais.

Estrelas
1,793
Forks
154
Issues abertas
59
Último commit
há 10 dias

O que é?

O Typeguard verifica as anotações de tipo do Python durante a execução do programa, detectando violações que verificadores estáticos como o mypy não conseguem identificar. Ele pode ser usado como uma alternativa mais rigorosa a isinstance() que entende dicas de tipo arbitrárias, ou como substituto de cast() que realmente verifica o valor.

Para fazer verificações automaticamente, o Typeguard oferece duas formas de instrumentação. O decorador @typechecked recompila funções individualmente e injeta verificações para argumentos, valores de retorno, atribuições a variáveis locais anotadas e valores de yield e send em generators. O import hook, instalado com install_import_hook(), instrumenta os módulos selecionados no momento da importação, sem alterar o código-fonte, mas precisa ser instalado antes que esses módulos sejam carregados.

A biblioteca também oferece check_argument_types() e check_return_type() para uma abordagem mais leve e compatível com depuradores, com a ressalva de que ela é menos confiável com dicas definidas dinamicamente, como as usadas em funções aninhadas. A instrumentação exige que o código-fonte original dos módulos esteja acessível.

Recursos principais

  • 01Verifica argumentos de funções e valores de retorno em relação às anotações PEP 484 durante a execução.
  • 02Funciona com anotações de tipo arbitrárias, como uma alternativa mais completa a isinstance() ou cast().
  • 03Instrumenta funções individualmente por meio do decorador @typechecked.
  • 04Oferece um import hook que verifica módulos selecionados sem alterar o código-fonte.
  • 05Verifica os valores de yield e send em generators comuns e assíncronos.

Casos de uso

  • Adicionar uma camada extra de segurança de tipos ao código Python, em conjunto com um verificador de tipos estático.
  • Validar dados em pontos de entrada onde as anotações, por si só, não garantem os tipos corretos.
  • Depurar incompatibilidades de tipos que só aparecem durante a execução.
  • Impor o uso de dicas de tipo em suítes de testes ou em um ambiente de staging.

Início rápido

  1. 1

    Instale o pacote pelo PyPI

    pip install typeguard
  2. 2

    Use check_type para validar um valor em tempo de execução

Antes de usar

  • O README não informa uma licença; os metadados a listam como NOASSERTION, portanto verifique o arquivo de licença antes de usar o pacote.
  • A instrumentação de código exige que o código-fonte original dos módulos instrumentados esteja acessível.
  • O hook de importação pode entrar em conflito com outros hooks de importação.

Em coleções

Tópicos

#python#type-checking#type-hints#pep-484#runtime-validation#testing

Perguntas frequentes

O que é typeguard?
Verificador de tipos em tempo de execução para Python que valida anotações PEP 484 em funções, objetos arbitrários e variáveis locais. O Typeguard verifica as anotações de tipo do Python durante a execução do programa, detectando violações que verificadores estáticos como o mypy não conseguem identificar. Ele pode ser usado como uma alternativa mais rigorosa a isinstance() que entende dicas de tipo arbitrárias, ou como substituto de cast() que realmente verifica o valor.
typeguard é gratuito? Qual é a licença?
typeguard é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
typeguard ainda é mantido?
Manutenção ativa. O último commit de typeguard foi em 29 de out. de 2026.
Para que posso usar typeguard?
Adicionar uma camada extra de segurança de tipos ao código Python, em conjunto com um verificador de tipos estático. Validar dados em pontos de entrada onde as anotações, por si só, não garantem os tipos corretos. Depurar incompatibilidades de tipos que só aparecem durante a execução. Impor o uso de dicas de tipo em suítes de testes ou em um ambiente de staging.
Como instalar typeguard?
Instale o pacote pelo PyPI: pip install typeguard Use check_type para validar um valor em tempo de execução
Onde consigo typeguard?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/agronholm/typeguard

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados