12 points par darjeeling 2026-01-10 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Résumé :

  • Présentation de l’adoption et de la migration vers ty, le nouveau vérificateur de types Python basé sur Rust publié par Astral (l’éditeur de Ruff).
  • ty se comporte par défaut de manière très proche du mode strict de Mypy et prend en charge nativement l’installation et l’exécution via uv.
  • Il n’existe pas encore de prise en charge officielle de pre-commit, mais des contournements communautaires sont disponibles, et la méthode d’intégration avec GitHub Actions est également présentée en détail.

Résumé détaillé :
1. Présentation et caractéristiques de Ty
Dans l’écosystème de la vérification de types Python, jusqu’ici dominé par Mypy et Pyright, ty, développé par Astral, fait une nouvelle entrée. Comme Ruff, il est écrit en Rust et se distingue par une très grande rapidité.

2. Installation et exécution en local
ty peut être installé et exécuté facilement via uv.

  • Installation :
    # Installation de l’outil via uv  
    uv tool install ty@latest  
    
    # Ou installation standalone prise en charge (voir la documentation)  
    
  • Exécution :
    # Exécution après installation  
    uv run ty  
    
    # Exécution sans installation (avec uvx)  
    uvx ty  
    
    # Exécution directe  
    ty check  
    

3. Configuration
La configuration est possible via pyproject.toml ou ty.toml.

  • Comportement par défaut : exécuté sans configuration supplémentaire, il se comporte de manière très proche du mode strict de Mypy.
  • Limites : pour l’instant, il ne signale pas les annotations de type manquantes. Pour imposer cela, il faut compléter avec les règles flake8-annotations de Ruff dans pyproject.toml.

4. Intégration avec GitHub Actions
Dans un environnement CI, il est possible de créer .github/workflows/ty.yml afin d’exécuter automatiquement la vérification de types à la création d’une PR.

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  
  

(Remarque : la version de ty doit être mise à jour en fonction des releases.)

5. Intégration à pre-commit
À l’heure actuelle, aucun hook pre-commit officiel n’est pris en charge (issue #269), mais il est possible d’intégrer des contournements fournis par la communauté, comme ty-pre-commit, dans .pre-commit-config.yaml. Une mise à jour de la configuration est recommandée lorsqu’une prise en charge officielle sera disponible.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.