सारांश:

  • Astral (Ruff बनाने वाली कंपनी) द्वारा जारी किए गए Rust-आधारित नए Python type checker ty को अपनाने और migrate करने के तरीकों पर यह लेख केंद्रित है।
  • ty डिफ़ॉल्ट रूप से Mypy के strict mode की तरह व्यवहार करता है, और uv के ज़रिए installation और execution को मूल रूप से support करता है।
  • अभी आधिकारिक pre-commit support नहीं है, लेकिन community workaround का उपयोग किया जा सकता है, और GitHub Actions integration का तरीका भी विस्तार से बताया गया है.

विस्तृत सारांश:
1. Ty का परिचय और विशेषताएँ
Python type checking ecosystem, जहाँ अब तक Mypy और Pyright का दबदबा था, वहाँ Astral द्वारा विकसित ty एक नए विकल्प के रूप में सामने आया है। Ruff की तरह यह भी Rust में लिखा गया है, इसलिए इसकी गति बहुत तेज़ है।

2. Installation और local execution
ty को uv के माध्यम से आसानी से install और run किया जा सकता है।

  • Installation:
    # uv के ज़रिए tool install करें  
    uv tool install ty@latest  
    
    # या standalone installation भी समर्थित है (documentation देखें)  
    
  • Execution:
    # installation के बाद चलाएँ  
    uv run ty  
    
    # install किए बिना चलाएँ (uvx का उपयोग)  
    uvx ty  
    
    # सीधे चलाएँ  
    ty check  
    

3. Configuration
Configuration pyproject.toml या ty.toml के माध्यम से की जा सकती है।

  • डिफ़ॉल्ट व्यवहार: बिना किसी अतिरिक्त setting के चलाने पर यह Mypy के strict mode से बहुत मिलता-जुलता व्यवहार करता है।
  • सीमाएँ: अभी यह missing type hints को highlight नहीं करता। इसे enforce करने के लिए Ruff के flake8-annotations rule को pyproject.toml में जोड़कर इसकी भरपाई करनी होगी।

4. GitHub Actions integration
CI environment में PR बनने पर अपने-आप type checking चलाने के लिए .github/workflows/ty.yml बनाकर configuration किया जा सकता है।

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  
  

(संदर्भ: ty version को release स्थिति के अनुसार अपडेट करने की आवश्यकता हो सकती है।)

5. Pre-commit integration
फिलहाल आधिकारिक pre-commit hook समर्थित नहीं है (issue #269), लेकिन community द्वारा दिए गए workaround (जैसे ty-pre-commit) का उपयोग करके इसे .pre-commit-config.yaml में integrate किया जा सकता है। आगे चलकर आधिकारिक support आने पर configuration अपडेट करना अनुशंसित है।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.