Ir al contenido

ty - Verificador de tipos rápido de Python

ty - Verificador de tipos rápido de Python

ty es un verificador de tipos Python extremadamente rápido y servidor de lenguaje, escrito en Rust por Astral (el equipo detrás de Ruff y uv). Aplica la misma filosofía de rendimiento a verificación de tipos: donde mypy puede tardar minutos en una base de código grande, ty apunta a retroalimentación casi instantánea, haciendo verificación de tipos práctica para ejecutar en cada guardado en lugar de solo en CI. Completa la cadena de herramientas Python moderna de Astral — uv para empaquetado, Ruff para lint/formato, ty para tipos.

ty es más nuevo que mypy y aún madurando. Valídalo contra tu base de código antes de hacer que sea una puerta CI dura.

Instalación

MétodoComando
uv (recomendado)uv tool install ty
uvx (sin instalar)uvx ty check
pippip install ty
Verificarty --version

Verificación de código

ComandoDescripción
ty checkVerifica el proyecto actual
ty check src/Verifica una ruta específica
ty check --watchRe-verifica en cambios de archivo
ty check --output-format conciseSalida compacta
ty check --error-on-warningTrata advertencias como errores
ty --helpLista completa de opciones

Configuración

ty lee pyproject.toml:

[tool.ty]
# Rutas a verificar
src = ["src", "tests"]

[tool.ty.environment]
python-version = "3.12"
# Dónde encontrar dependencias
python = ".venv"

[tool.ty.rules]
# Ajusta diagnósticos individuales
possibly-unbound-attribute = "warn"
unused-ignore-comment = "ignore"
SecciónPropósito
[tool.ty]Disposición del proyecto / rutas incluidas
[tool.ty.environment]Versión de Python, venv, rutas de búsqueda
[tool.ty.rules]Establece cada regla en error, warn o ignore

Supresión de diagnósticos

FormaEfecto
# ty: ignoreSuprime todos los diagnósticos en la línea
# ty: ignore[rule-name]Suprime una regla específica
# type: ignoreTambién respetado (compatible con mypy)

Servidor de lenguaje (integración de editor)

EditorCómo
VS CodeInstala la extensión ty de Astral
NeovimConfigura ty server como LSP
Cualquier cliente LSPEjecuta ty server

El servidor de lenguaje da errores de tipo en línea, tipos de desplazamiento y ir-a-definición con la misma velocidad que el CLI.

Diagnósticos típicos

DiagnósticoSignifica
invalid-argument-typeEl argumento no coincide con el tipo de parámetro
unresolved-attributeEl atributo no existe en el tipo
possibly-unbound-variableLa variable puede usarse antes de asignación
invalid-return-typeEl retorno no coincide con la anotación
unresolved-importLa importación no puede resolverse

La cadena de herramientas de Astral

# Una puerta de calidad de Python completamente moderna
uv sync                 # deps, bloqueados y rápidos
uv run ruff format .    # formato
uv run ruff check .     # lint
uv run ty check         # tipos
uv run pytest           # pruebas
HerramientaReemplaza
uvpip, pip-tools, virtualenv, pyenv, poetry
Ruffblack, flake8, isort, pyupgrade, + más
tymypy (verificación de tipos)

Integración en CI

# Falla la compilación en errores de tipo
uvx ty check --error-on-warning

# Solo verifica archivos cambiados (con git)
git diff --name-only origin/main -- '*.py' | xargs uvx ty check

ty vs otros verificadores de tipos

AspectotymypyPyright
IdiomaRustPythonTypeScript/Node
VelocidadMuy rápidoMás lentoRápido
MadurezMás nuevoMás maduroMaduro
LSP del editorIntegradoVía complementosIntegrado (Pylance)
Mejor paraVelocidad + pila de AstralCompatibilidad del ecosistemaUsuarios de VS Code

Recursos