12 poin oleh darjeeling 2026-01-10 | Belum ada komentar. | Bagikan ke WhatsApp

Ringkasan:

  • Membahas cara mengadopsi dan bermigrasi ke ty, Python type checker baru berbasis Rust yang dirilis oleh Astral (pembuat Ruff).
  • ty pada dasarnya bekerja mirip dengan mode strict di Mypy, dan secara default mendukung instalasi serta eksekusi melalui uv.
  • Dukungan pre-commit resmi belum tersedia, tetapi workaround dari komunitas dapat digunakan, dan cara integrasi dengan GitHub Actions juga dijelaskan secara rinci.

Ringkasan detail:
1. Pengenalan dan karakteristik Ty
Dalam ekosistem type checking Python yang selama ini dipimpin oleh Mypy dan Pyright, kini hadir ty yang dikembangkan oleh Astral. Seperti Ruff, ty ditulis dalam Rust dan menawarkan performa yang sangat cepat.

2. Instalasi dan menjalankan secara lokal
ty dapat diinstal dan dijalankan dengan mudah melalui uv.

  • Instalasi:
    # Instal tool melalui uv  
    uv tool install ty@latest  
    
    # Atau mendukung instalasi standalone (lihat dokumentasi)  
    
  • Menjalankan:
    # Jalankan setelah instalasi  
    uv run ty  
    
    # Jalankan tanpa instalasi (menggunakan uvx)  
    uvx ty  
    
    # Jalankan langsung  
    ty check  
    

3. Konfigurasi
Konfigurasi dapat dilakukan melalui pyproject.toml atau ty.toml.

  • Perilaku default: Saat dijalankan tanpa konfigurasi tambahan, perilakunya sangat mirip dengan mode strict di Mypy.
  • Keterbatasan: Saat ini ty belum menandai missing type hints. Jika ingin menegakkannya, perlu menambahkan aturan flake8-annotations milik Ruff ke pyproject.toml sebagai pelengkap.

4. Integrasi GitHub Actions
Di lingkungan CI, Anda dapat membuat .github/workflows/ty.yml agar type checking berjalan otomatis saat PR dibuat.

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  
  

(Catatan: versi ty perlu diperbarui sesuai dengan rilis terbaru.)

5. Integrasi pre-commit
Saat ini hook pre-commit resmi belum didukung (issue #269), tetapi Anda dapat mengintegrasikannya ke .pre-commit-config.yaml menggunakan workaround dari komunitas, misalnya ty-pre-commit. Jika nanti dukungan resmi tersedia, disarankan untuk memperbarui konfigurasinya.

Belum ada komentar.

Belum ada komentar.