12 điểm bởi darjeeling 2026-01-10 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Tóm tắt:

  • Bài viết trình bày cách áp dụng và di chuyển sang ty, trình kiểm tra kiểu Python mới nền tảng Rust do Astral (công ty tạo ra Ruff) công bố.
  • ty mặc định hoạt động tương tự chế độ strict của Mypy và hỗ trợ cài đặt, chạy trực tiếp qua uv.
  • Dù chưa có hỗ trợ pre-commit chính thức, vẫn có thể dùng workaround từ cộng đồng, đồng thời bài viết cũng giới thiệu chi tiết cách tích hợp với GitHub Actions.

Tóm tắt chi tiết:
1. Giới thiệu và đặc điểm của Ty
Trong hệ sinh thái kiểm tra kiểu Python vốn do Mypy và Pyright dẫn dắt, ty do Astral phát triển đã xuất hiện như một lựa chọn mới. Tương tự Ruff, nó được viết bằng Rust và nổi bật với tốc độ rất cao.

2. Cài đặt và chạy cục bộ
ty có thể được cài đặt và chạy dễ dàng thông qua uv.

  • Cài đặt:
    # Cài công cụ qua uv  
    uv tool install ty@latest  
    
    # Hoặc hỗ trợ cài đặt standalone (xem tài liệu)  
    
  • Chạy:
    # Chạy sau khi cài đặt  
    uv run ty  
    
    # Chạy không cần cài đặt (dùng uvx)  
    uvx ty  
    
    # Chạy trực tiếp  
    ty check  
    

3. Cấu hình (Configuration)
Có thể cấu hình thông qua pyproject.toml hoặc ty.toml.

  • Hành vi mặc định: nếu chạy mà không có cấu hình riêng, ty hoạt động rất giống chế độ strict của Mypy.
  • Giới hạn: hiện tại công cụ chưa đánh dấu các type hint bị thiếu. Để bắt buộc điều này, cần bổ sung quy tắc flake8-annotations của Ruff vào pyproject.toml để bù đắp.

4. Tích hợp GitHub Actions
Trong môi trường CI, có thể tạo .github/workflows/ty.yml để tự động chạy kiểm tra kiểu khi tạo 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  
  

(Lưu ý: phiên bản ty cần được cập nhật theo tình hình phát hành.)

5. Tích hợp Pre-commit
Hiện chưa có hook pre-commit chính thức (issue #269), nhưng có thể tích hợp vào .pre-commit-config.yaml bằng workaround do cộng đồng cung cấp (ví dụ: ty-pre-commit). Khi có hỗ trợ chính thức trong tương lai, nên cập nhật lại cấu hình.

Chưa có bình luận nào.

Chưa có bình luận nào.