Mypy से Ty तक: Ruff बनाने वाली कंपनी द्वारा बनाए गए अल्ट्रा-फास्ट Rust-आधारित Python type checker को अपनाने की गाइड
(blog.pythonlibrary.org)सारांश:
- 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-annotationsrule को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 अपडेट करना अनुशंसित है।
अभी कोई टिप्पणी नहीं है.