آموزش Real Python، ابزار Pyrefly را بهعنوان یک Static Type Checker سریع برای Python معرفی میکند؛ ابزاری که بدون اجرای برنامه، ناسازگاریهای type را بررسی میکند. این ابزار علاوه بر Type Checking، قابلیت تولید type hint برای کد موجود و اندازهگیری type coverage در پروژه را هم دارد. برای دنبال کردن آموزش، آشنایی با نوشتن function و type hintهای پایه در Python 3.10 یا بالاتر توصیه شده است.
Pyrefly در PyPI موجود است و نمونهٔ آموزش، پس از ساخت و فعالسازی یک virtual environment، نسخهٔ 1.2.0 را با دستور python -m pip install pyrefly==1.2.0 نصب میکند. برای امتحان سریع ابزار هم نیازی به ساخت فایل نیست: دستور pyrefly snippet "x: str = 1" یک قطعه کد کوتاه را بررسی میکند. در این مثال، چون برای x مقدار str اعلام شده اما مقدار int به آن داده شده، Pyrefly خطا گزارش میدهد. با تغییر مقدار به یک string، خطا برطرف میشود.
برای بررسی پروژه، دستور pyrefly init --non-interactive تنظیمات پیشفرض را بدون پرسیدن سؤال میپذیرد و فایل pyrefly.toml را میسازد. تنظیمات ایجادشده، بررسی فایلهای Python و Jupyter notebookهای پروژهٔ جاری را مشخص میکند. همین دستور پس از ساخت تنظیمات، بهطور خودکار Type Checking را نیز اجرا میکند؛ دستور pyrefly check هم برای بررسی کد پروژه در دسترس است.
در مقایسهٔ ارائهشده، هر سه ابزار Pyrefly، Pyright و mypy قابلیت Type Checking دارند و سرعت Pyrefly «سریع» و دو ابزار دیگر «متوسط» توصیف شده است؛ بااینحال، بخش در دسترس آموزش عدد یا نتیجهٔ اندازهگیری سرعت ارائه نمیکند. همچنین نباید جدول مقایسه را به معنای نبود هرگونه گزارش پوشش در ابزارهای دیگر دانست: گزینهٔ --verifytypes در Pyright، public interface یک package را بررسی میکند و گزینههای گزارشگیری mypy میتوانند میزان وجود type hint در کد را خلاصه کنند.
Pyrefly علاوه بر CLI، یک language server برای اتصال به editor دارد، اما تمرکز این آموزش بر کار با CLI است. بخش ارائهشده، شروع کار و تشخیص خطای ساده را نشان میدهد و هنوز وارد جزئیات عملی تولید type hint یا اندازهگیری type coverage نشده است.




