Comprobador de tipos en tiempo de ejecución, escrito en Python puro, que aplica las anotaciones de tipo de PEP en funciones, clases y variables con un costo mínimo.
agronholm/typeguard
Verificador de tipos en tiempo de ejecución para Python que valida anotaciones PEP 484 en funciones, objetos arbitrarios y variables locales.
- Estrellas
- 1,793
- Forks
- 154
- Issues abiertos
- 59
- Último commit
- hace 9 días
¿Qué es?
Typeguard comprueba las anotaciones de tipos de Python mientras se ejecuta el programa y detecta incumplimientos que los verificadores estáticos, como mypy, no pueden encontrar. Puede usarse como una alternativa más estricta a isinstance() que entiende sugerencias de tipos arbitrarias, o como reemplazo de cast() que realmente verifica el valor.
Para realizar comprobaciones automáticas, Typeguard ofrece dos vías de instrumentación. El decorador @typechecked recompila funciones individuales e inserta comprobaciones para los argumentos, los valores de retorno, las asignaciones a variables locales anotadas y los valores enviados y generados por los generadores. El import hook, que se instala con install_import_hook(), instrumenta los módulos seleccionados al importarlos sin modificar su código fuente, aunque debe instalarse antes de que se carguen esos módulos.
La biblioteca también ofrece check_argument_types() y check_return_type() como alternativa más ligera y práctica para depurar, con la salvedad de que es menos fiable con sugerencias de tipos definidas dinámicamente, como las de funciones anidadas. Para la instrumentación, es necesario que el código fuente original de los módulos esté disponible.
Funciones clave
- 01Comprueba en tiempo de ejecución que los argumentos de las funciones y sus valores de retorno cumplan las anotaciones PEP 484.
- 02Funciona con anotaciones de tipos arbitrarias como alternativa más completa a isinstance() o cast().
- 03Instrumenta funciones individuales mediante el decorador @typechecked.
- 04Ofrece un import hook que comprueba módulos seleccionados sin modificar su código fuente.
- 05Comprueba los valores generados y enviados por generadores normales y asíncronos.
Casos de uso
- Añadir una capa adicional de seguridad de tipos al código Python junto con un verificador de tipos estático.
- Validar datos en los límites del sistema, donde las anotaciones por sí solas no garantizan que los tipos sean correctos.
- Depurar incompatibilidades de tipos que solo aparecen durante la ejecución.
- Hacer cumplir las sugerencias de tipos en suites de pruebas o en un entorno de staging.
Inicio rápido
- 1
Instala el paquete desde PyPI
pip install typeguard - 2
Usa check_type para validar un valor en tiempo de ejecución
Antes de usarlo
- El README no indica ninguna licencia; los metadatos la identifican como NOASSERTION, así que consulta el archivo de licencia antes de usarlo.
- La instrumentación del código requiere que el código fuente original de los módulos instrumentados esté accesible.
- El hook de importación puede entrar en conflicto con otros hooks de importación.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es typeguard?
- Verificador de tipos en tiempo de ejecución para Python que valida anotaciones PEP 484 en funciones, objetos arbitrarios y variables locales. Typeguard comprueba las anotaciones de tipos de Python mientras se ejecuta el programa y detecta incumplimientos que los verificadores estáticos, como mypy, no pueden encontrar. Puede usarse como una alternativa más estricta a isinstance() que entiende sugerencias de tipos arbitrarias, o como reemplazo de cast() que realmente verifica el valor.
- ¿typeguard es gratuito? ¿Qué licencia tiene?
- typeguard es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿typeguard sigue mantenido?
- Mantenimiento activo. El último commit de typeguard fue el 29 oct 2026.
- ¿Para qué puedo usar typeguard?
- Añadir una capa adicional de seguridad de tipos al código Python junto con un verificador de tipos estático. Validar datos en los límites del sistema, donde las anotaciones por sí solas no garantizan que los tipos sean correctos. Depurar incompatibilidades de tipos que solo aparecen durante la ejecución. Hacer cumplir las sugerencias de tipos en suites de pruebas o en un entorno de staging.
- ¿Cómo se instala typeguard?
- Instala el paquete desde PyPI: pip install typeguard Usa check_type para validar un valor en tiempo de ejecución
- ¿Dónde consigo typeguard?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/agronholm/typeguard
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Analizador estático de tipos para Python que detecta errores en el código mediante anotaciones PEP 484, sin ejecutarlo.
Verificador estático de tipos para Python basado en estándares, con herramienta de línea de comandos y extensión para Visual Studio Code, diseñado para grandes bases de código.
Un plugin de pytest que ejecuta el comprobador estático de tipos mypy en los archivos fuente durante las pruebas de pytest.
Herramienta de análisis estático para PHP que detecta errores en el código sin ejecutarlo.
Transformer de TypeScript que compila tipos puros de TypeScript en validadores en tiempo de ejecución, serializadores JSON, codecs de Protocol Buffers y generadores aleatorios.