Pular para o conteúdo

ty - Verificador de Tipo Python Rápido - Guia de Referência

ty - Verificador de Tipo Python Rápido - Guia de Referência

ty é um verificador de tipo Python extremamente rápido e servidor de linguagem, escrito em Rust por Astral (a equipe por trás de Ruff e uv). Aplica a mesma filosofia de desempenho à verificação de tipo: onde mypy pode levar minutos em um grande codebase, ty visa feedback quase instantâneo, tornando verificação de tipo prática para executar a cada salvar em vez de apenas em CI. Completa a toolchain Python moderna Astral — uv para packaging, Ruff para lint/format, ty para tipos.

ty é mais novo que mypy e ainda amadurecendo. Valide contra seu codebase antes de torná-lo um portão CI rígido.

Instalação

MétodoComando
uv (recomendado)uv tool install ty
uvx (sem instalação)uvx ty check
pippip install ty
Verificarty --version

Verificando Código

ComandoDescrição
ty checkVerificar o projeto atual
ty check src/Verificar um caminho específico
ty check --watchRe-verificar em mudanças de arquivo
ty check --output-format conciseSaída compacta
ty check --error-on-warningTratar avisos como erros
ty --helpLista de opções completa

Configuração

ty lê pyproject.toml:

[tool.ty]
# Caminhos para verificar
src = ["src", "tests"]

[tool.ty.environment]
python-version = "3.12"
# Onde encontrar dependências
python = ".venv"

[tool.ty.rules]
# Ajustar diagnósticos individuais
possibly-unbound-attribute = "warn"
unused-ignore-comment = "ignore"
SeçãoPropósito
[tool.ty]Layout de projeto / caminhos incluídos
[tool.ty.environment]Versão Python, venv, caminhos de busca
[tool.ty.rules]Definir cada regra para error, warn ou ignore

Suprimindo Diagnósticos

FormaEfeito
# ty: ignoreSuprimir todos os diagnósticos na linha
# ty: ignore[rule-name]Suprimir uma regra específica
# type: ignoreTambém respeitado (compatível com mypy)

Servidor de Linguagem (Integração de Editor)

EditorComo
VS CodeInstalar extensão Astral ty
NeovimConfigurar ty server como LSP
Qualquer cliente LSPExecutar ty server

O servidor de linguagem fornece erros de tipo inline, tipos ao pairar e ir-para-definição com a mesma velocidade do CLI.

Diagnósticos Típicos

DiagnósticoSignifica
invalid-argument-typeArgumento não corresponde ao tipo de parâmetro
unresolved-attributeAtributo não existe no tipo
possibly-unbound-variableVariável pode ser usada antes da atribuição
invalid-return-typeReturn não corresponde à anotação
unresolved-importImportação não consegue ser resolvida

A Toolchain Astral

# Uma porta de qualidade Python moderna completa
uv sync                 # deps, locked e rápido
uv run ruff format .    # formato
uv run ruff check .     # lint
uv run ty check         # tipos
uv run pytest           # testes
FerramentaSubstitui
uvpip, pip-tools, virtualenv, pyenv, poetry
Ruffblack, flake8, isort, pyupgrade, + mais
tymypy (verificação de tipo)

Integração de CI

# Falhar a compilação em erros de tipo
uvx ty check --error-on-warning

# Verificar apenas arquivos alterados (com git)
git diff --name-only origin/main -- '*.py' | xargs uvx ty check

ty vs Outros Verificadores de Tipo

AspectotymypyPyright
LinguagemRustPythonTypeScript/Node
VelocidadeMuito rápidaMais lentaRápida
MaturidadeMais novoMais maduroMaduro
LSP de editorConstruídoVia pluginsConstruído (Pylance)
Melhor paraVelocidade + stack AstralCompatibilidade de ecossistemaUsuários VS Code

Recursos