
pylyzer هو محلل / لغة رمز ثابت لـ Python ، مكتوب في Rust.
pip install pylyzercargo install pylyzer --lockedgit clone https://github.com/mtshiba/pylyzer.git
cargo install --path . --locked تأكد من تحديث cargo / rustc ، حيث يمكن كتابة بيليزر مع أحدث ميزات اللغة (المستقرة).
pylyzer file.pyإذا لم تحدد مسار ملف ، فسيبحث Pylyzer تلقائيًا عن نقطة الإدخال.
pylyzerيتم استخدام هذا الخيار عندما يتطلب محرر LSP-Awarted وسيطات لبدء بيليزر.
pylyzer --serverللحصول على خيارات أخرى ، تحقق من الدليل.
في المتوسط ، يمكن لـ Pylyzer فحص نصوص Python أكثر من 100 مرة أسرع من Pytype و Pyright 1 . ويرجع ذلك إلى حد كبير إلى حقيقة أن بيليزر يتم تنفيذه في الصدأ.
في حين أن تقارير خطأ Pytype/Pyright غير مقروءة ، فإن Pylyzer يعرض المكان الذي حدث فيه الخطأ ويوفر رسائل خطأ واضحة.
يدعم Pylyzer كخادم لغة مختلف الميزات ، مثل الانتهاء وإعادة تسمية (خادم اللغة هو تكيف مع خادم لغة ERG (ELS). لمزيد من المعلومات حول الميزات التي تم تنفيذها ، يرجى الاطلاع هنا).
يمكنك تثبيت امتداد VSCODE من السوق أو من سطر الأوامر:
code --install-extension pylyzer.pylyzerRuff ، مثل Pylyzer ، هي أداة تحليل رمز ثابت للبيثون المكتوبة في Rust ، ولكن Ruff هو Linter و Pylyzer هو خادم Type Checker & Language. لا يقوم Pylyzer بإجراء Linting & Tonforting ، ولا يقوم Ruff بإجراء فحص من النوع.
يستخدم Pylyzer مدقق نوع لغة برمجة ERG داخليًا. هذه اللغة هي لغة مقلوبة تستهدف بيثون ، ولها نظام ثابت.
يحول Pylyzer Python Asts إلى Erg Asts ويمررها إلى مدقق نوع Erg. ثم يعرض النتائج مع التعديلات المناسبة.
يفترض مفتش نوع Pylyzer فقط (يحتمل) رمزًا مكتوبًا بشكل ثابت ، لذلك لا يمكنك التحقق من أي رمز يستخدم انعكاسات ، مثل exec ، setattr ، إلخ.
يحتوي Pylyzer (= نظام نوع ERG) على إعلانات نوعها الخاصة لواجهة برمجة تطبيقات Python القياسية. كتابة جميع واجهات برمجة التطبيقات غير كاملة وقد تؤدي إلى خطأ في أن واجهة برمجة التطبيقات هذه غير موجودة.
نظرًا لأن فحص نوع Pylyzer محافظ ، فقد تواجه العديد من الأخطاء (ربما يكون كاذبًا إيجابيًا). نحن نعمل على إصلاح هذا ، ولكن إذا كنت قلقًا بشأن أخطاء المحرر ، فيرجى إيقاف تشغيل ميزة التشخيص.
async/awaitlistdicttuplesettypingUnionOptionalLiteralCallableAnyTypeVarTypedDictClassVarGenericProtocolFinalAnnotatedTypeAliasTypeGuardcollections.abcIterableIteratorMappingSequencetyping.cast ) is ، isinstance ) pyi (كعب) # type: ... ) pippoetryuvنحن نبحث عن المساهمين لمساعدتنا على تحسين بيليزر. إذا كنت مهتمًا بالمساهمة ولديك أي أسئلة ، فلا تتردد في الاتصال بنا.
1 تم إجراء اختبار الأداء على MacBook (أوائل عام 2016) مع معالج INTEL Core M3 1.1 جيجا هرتز و 8 جيجابايت 1867 MHz LPDDR3 Memory.↩