12 pontos por darjeeling 2026-01-10 | Ainda não há comentários. | Compartilhar no WhatsApp

Resumo:

  • Aborda a adoção e a migração para o novo verificador de tipos Python em Rust, ty, lançado pela Astral, empresa por trás do Ruff.
  • O ty funciona por padrão de forma muito semelhante ao modo strict do Mypy e oferece suporte nativo a instalação e execução via uv.
  • Ainda não há suporte oficial a pre-commit, mas é possível usar workarounds da comunidade, e o texto também apresenta em detalhes como integrar com o GitHub Actions.

Resumo detalhado:
1. Introdução ao Ty e principais características
No ecossistema de verificação de tipos em Python, até então liderado por Mypy e Pyright, surgiu agora o ty, desenvolvido pela Astral. Assim como o Ruff, ele foi escrito em Rust e oferece desempenho extremamente rápido.

2. Instalação e execução local
O ty pode ser instalado e executado facilmente com uv.

  • Instalação:
    # Instalar a ferramenta via uv  
    uv tool install ty@latest  
    
    # Ou usar a instalação standalone (consulte a documentação)  
    
  • Execução:
    # Executar após a instalação  
    uv run ty  
    
    # Executar sem instalar (usando uvx)  
    uvx ty  
    
    # Executar diretamente  
    ty check  
    

3. Configuração (Configuration)
A configuração pode ser feita via pyproject.toml ou ty.toml.

  • Comportamento padrão: ao executar sem configuração adicional, ele funciona de forma muito semelhante ao modo strict do Mypy.
  • Limitações: no momento, ele não destaca type hints ausentes (missing type hints). Para impor isso, é preciso complementar com a regra flake8-annotations do Ruff em pyproject.toml.

4. Integração com GitHub Actions
No ambiente de CI, é possível configurar a execução automática da verificação de tipos ao abrir um PR criando o arquivo .github/workflows/ty.yml.

name: ty  
on:  
  pull_request:  
    types: [opened, synchronize, reopened, ready_for_review]  
  workflow_dispatch:  
jobs:  
  build:  
    if: github.event.pull_request.draft == false  
    runs-on: self-hosted  
    steps:  
      - uses: actions/checkout@v3  
      - name: Install Python  
        uses: actions/setup-python@v4  
        with:  
          python-version: "3.12"  
      - name: Install dependencies  
        run: |  
          python -m pip install --upgrade pip  
          pip install ty==0.0.7      
      - name: Run ty  
        run: ty check  
        continue-on-error: false  
  

(Observação: a versão do ty precisa ser atualizada conforme o estado dos releases.)

5. Integração com pre-commit
Atualmente não há suporte oficial a hooks de pre-commit (issue #269), mas é possível integrar ao .pre-commit-config.yaml usando workarounds fornecidos pela comunidade, como ty-pre-commit. Quando houver suporte oficial no futuro, recomenda-se atualizar a configuração.

Ainda não há comentários.

Ainda não há comentários.