تخطَّ إلى المحتوى

ty - مدقق النوع Python السريع (Cheatsheet)

ty - مدقق النوع Python السريع (Cheatsheet)

ty هو مدقق نوع Python وخادم لغة سريع جداً، مكتوب بـ Rust من قبل Astral (فريق Ruff و uv). يطبق نفس فلسفة الأداء على التحقق من النوع: عندما يمكن لـ mypy أن يستغرق دقائق في قاعدة بيانات كبيرة، يستهدف ty ردود فعل فورية تقريباً، مما يجعل التحقق من النوع عملياً للتشغيل في كل حفظ بدلاً من CI فقط. إنه يكمل سلسلة أدوات Astral Python الحديثة — uv للحزم، Ruff للفحص/التنسيق، ty للأنواع.

ty أحدث من mypy ولا يزال ينضج. تحقق من صحته ضد قاعدة البيانات الخاصة بك قبل جعله بوابة CI صعبة.

التثبيت

الطريقةالأمر
uv (موصى به)uv tool install ty
uvx (بدون تثبيت)uvx ty check
pippip install ty
التحققty --version

فحص الكود

الأمرالوصف
ty checkفحص المشروع الحالي
ty check src/فحص مسار محدد
ty check --watchإعادة فحص عند تغييرات الملف
ty check --output-format conciseمخرجات مضغوطة
ty check --error-on-warningاعتبر التحذيرات أخطاء
ty --helpقائمة الخيارات الكاملة

التكوين

ty يقرأ pyproject.toml:

[tool.ty]
# المسارات المراد فحصها
src = ["src", "tests"]

[tool.ty.environment]
python-version = "3.12"
# حيث يمكن العثور على التبعيات
python = ".venv"

[tool.ty.rules]
# ضبط التشخيصات الفردية
possibly-unbound-attribute = "warn"
unused-ignore-comment = "ignore"
القسمالغرض
[tool.ty]تخطيط المشروع / المسارات المضمنة
[tool.ty.environment]نسخة Python، venv، مسارات البحث
[tool.ty.rules]اضبط كل قاعدة على error, warn, أو ignore

كبت التشخيصات

الشكلالتأثير
# ty: ignoreاكبت جميع التشخيصات على السطر
# ty: ignore[rule-name]اكبت قاعدة محددة
# type: ignoreيتم احترامها أيضاً (متوافق مع mypy)

خادم اللغة (تكامل المحرر)

المحرركيف
VS Codeثبت امتداد Astral ty
Neovimكوّن ty server كـ LSP
أي عميل LSPشغّل ty server

يعطي خادم اللغة أخطاء النوع المضمنة، وأنواع الحوم، والانتقال إلى التعريف بنفس سرعة CLI.

التشخيصات النموذجية

التشخيصالمعنى
invalid-argument-typeالحجة لا تطابق نوع المعامل
unresolved-attributeالسمة غير موجودة على النوع
possibly-unbound-variableالمتغير قد يُستخدم قبل الإسناد
invalid-return-typeالإرجاع لا يطابق التعليق
unresolved-importلا يمكن حل الاستيراد

سلسلة أدوات Astral

# بوابة جودة Python حديثة كاملة
uv sync                 # deps، مقفول وسريع
uv run ruff format .    # تنسيق
uv run ruff check .     # فحص
uv run ty check         # أنواع
uv run pytest           # اختبارات
الأداةتستبدل
uvpip, pip-tools, virtualenv, pyenv, poetry
Ruffblack, flake8, isort, pyupgrade, + more
tymypy (التحقق من النوع)

تكامل CI

# فشل البناء على أخطاء النوع
uvx ty check --error-on-warning

# فحص الملفات المتغيرة فقط (مع git)
git diff --name-only origin/main -- '*.py' | xargs uvx ty check

ty مقابل مدققي النوع الآخرين

الجانبtymypyPyright
اللغةRustPythonTypeScript/Node
السرعةسريع جداًأبطأسريع
النضجأحدثالأكثر نضجاًناضج
Editor LSPمدمجعبر البلاجيناتمدمج (Pylance)
الأفضل لـالسرعة + سلسلة Astralتوافقية النظام البيئيمستخدمو VS Code

الموارد