12 puntos por darjeeling 2026-01-10 | Aún no hay comentarios. | Compartir por WhatsApp

Resumen:

  • Se explica cómo adoptar y migrar al nuevo verificador de tipos de Python basado en Rust, ty, publicado por Astral, la empresa detrás de Ruff.
  • ty funciona por defecto de forma muy similar al modo strict de Mypy y ofrece compatibilidad nativa para instalación y ejecución mediante uv.
  • Aunque todavía no tiene soporte oficial para pre-commit, se pueden usar soluciones alternativas de la comunidad, y también se detalla cómo integrarlo con GitHub Actions.

Resumen detallado:
1. Introducción a Ty y sus características
En el ecosistema de verificación de tipos de Python, hasta ahora dominado por Mypy y Pyright, aparece ty, desarrollado por Astral. Al igual que Ruff, está escrito en Rust y presume una velocidad muy alta.

2. Instalación y ejecución local
ty puede instalarse y ejecutarse fácilmente con uv.

  • Instalación:
    # Instalar la herramienta con uv  
    uv tool install ty@latest  
    
    # O usar la instalación standalone (consulta la documentación)  
    
  • Ejecución:
    # Ejecutar después de instalar  
    uv run ty  
    
    # Ejecutar sin instalar (usando uvx)  
    uvx ty  
    
    # Ejecutar directamente  
    ty check  
    

3. Configuración
Se puede configurar mediante pyproject.toml o ty.toml.

  • Comportamiento predeterminado: al ejecutarse sin configuración adicional, se comporta de forma muy parecida al modo strict de Mypy.
  • Limitaciones: actualmente no resalta las anotaciones de tipo faltantes. Si se quiere exigir esto, hay que complementarlo agregando las reglas de flake8-annotations de Ruff en pyproject.toml.

4. Integración con GitHub Actions
En entornos de CI, se puede crear .github/workflows/ty.yml para ejecutar automáticamente la verificación de tipos al abrir un 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  
  

(Nota: la versión de ty debe actualizarse según el estado de las releases.)

5. Integración con pre-commit
Actualmente no hay soporte oficial para hooks de pre-commit (issue #269), pero se puede integrar en .pre-commit-config.yaml usando soluciones alternativas de la comunidad, como ty-pre-commit. Cuando haya soporte oficial más adelante, se recomienda actualizar la configuración.

Aún no hay comentarios.

Aún no hay comentarios.