Mypy'dan Ty'ye: Ruff'un geliştiricisinden gelen ultra hızlı Rust tabanlı Python tip denetleyicisine geçiş rehberi
(blog.pythonlibrary.org)Özet:
- Astral'ın (Ruff'un geliştiricisi) yayınladığı Rust tabanlı yeni Python tip denetleyicisi
ty'nin benimsenmesi ve geçiş yöntemleri ele alınıyor. ty, varsayılan olarak Mypy'nin strict moduna benzer şekilde çalışır veuvile kurulum ve çalıştırmayı temel olarak destekler.- Henüz resmi bir pre-commit desteği yoktur, ancak topluluk tarafından sunulan geçici çözümler kullanılabilir; GitHub Actions entegrasyonu da ayrıntılı olarak tanıtılır.
Ayrıntılı özet:
1. Ty tanıtımı ve özellikleri
Mypy ve Pyright'ın liderlik ettiği Python tip denetimi ekosistemine, Astral tarafından geliştirilen ty yeni katıldı. Ruff gibi o da Rust ile yazıldığı için çok yüksek hız sunar.
2. Kurulum ve yerelde çalıştırma
ty, uv üzerinden kolayca kurulup çalıştırılabilir.
- Kurulum:
# uv ile araç kurulumu uv tool install ty@latest # veya standalone kurulum desteği (belgelere bakın) - Çalıştırma:
# kurulumdan sonra çalıştırma uv run ty # kurulum yapmadan çalıştırma (uvx kullanarak) uvx ty # doğrudan çalıştırma ty check
3. Yapılandırma (Configuration)
Yapılandırma pyproject.toml veya ty.toml üzerinden yapılabilir.
- Varsayılan davranış: Ayrı bir ayar olmadan çalıştırıldığında Mypy'nin strict moduna oldukça benzer davranır.
- Kısıtlar: Şu anda eksik tip ipuçlarını (
missing type hints) vurgulamaz. Bunu zorunlu kılmak için Ruff'unflake8-annotationskurallarıpyproject.tomliçine eklenerek bu eksik telafi edilmelidir.
4. GitHub Actions entegrasyonu
CI ortamında PR oluşturulduğunda otomatik tip denetimi çalıştırmak için .github/workflows/ty.yml dosyası oluşturularak yapılandırma yapılabilir.
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
(Not: ty sürümünün, yayın durumuna göre güncellenmesi gerekir.)
5. Pre-commit entegrasyonu
Şu anda resmi bir pre-commit hook desteği yoktur (issue #269), ancak topluluğun sunduğu geçici çözümlerden (ty-pre-commit gibi) yararlanılarak .pre-commit-config.yaml içine entegre edilebilir. Resmi destek geldiğinde yapılandırmanın güncellenmesi önerilir.
Henüz yorum yok.