لم يعد هذا المشروع يتم الحفاظ عليه بنشاط.
محتويات
Tidypy هي أداة تغلف عدد من أدوات التحليل الثابت الأخرى وتسهل تكوين نتائجها وتنفيذها ومراجعتها.
*.py . بالإضافة إلى تنفيذ عدد من الأدوات المختلفة على الكود الخاص بك ، يمكنه أيضًا التحقق من ملفات YAML و JSON و PO و POT و RST.pyproject.toml المحدد بواسطة PEP 518. يتم الإعلان عن جميع الخيارات لجميع الأدوات التي تستخدمها Tidypy في مكان واحد ، بدلاً من طلب تكوين كل أداة بطريقة مختلفة.# noqa في مصدر بيثون الخاص بك لتجاهل بسهولة المشكلات التي أبلغت عنها أي أداة. عندما يتم تثبيت Tidypy ( pip install tidypy ) ، يجب أن يصبح الأمر tidypy متاحًا في بيئتك:
$ tidypy -help
الاستخدام: أمر tidypy [خيارات] [args] ...
أداة تنفذ العديد من أدوات التحليل الثابت في مشروع Python
ويجمع النتائج.
خيارات:
-إظهار الإصدار والخروج.
-عرض هذه الرسالة والخروج.
الأوامر:
Check ينفذ الأدوات الموجودة على ملفات المشروع.
يخرج Default-Config تكوينًا افتراضيًا يمكن استخدامه
Bootstrap ملف التكوين الخاص بك.
الإضافات تخرج قائمة لجميع الامتدادات المتاحة.
يقوم التثبيت-VCS بتثبيت Tidypy كخطاف مسبقًا في المحددات المحددة
VCs.
تخرج القائمة الرموز القائمة قائمة بجميع رموز المشكلات المعروفة التي أدواتها
قد تقرير.
تطهير config cache يحذف ذاكرة التخزين المؤقت للتكوينات التي تم استردادها من
خارج التكوين الأساسي.
إزالة VCS يزيل الخطاف المسبق للالتزام من اللجنة المحددة
VCs.
لتحليل Tidypy Project ، استخدم المفوض الفرعي check :
$ tidypy check -help
الاستخدام: التحقق من Tidypy [خيارات] [PATH]
ينفذ الأدوات على ملفات المشروع.
يقبل حجة واحدة ، وهي طريق إلى قاعدة مشروع Python.
إذا لم يتم تحديدها ، فإن الإعدادات الافتراضية لدليل العمل الحالي.
خيارات:
-x ، -يحدد exclude regex تعبيرًا منتظمًا متطابقًا
ضد المسارات التي تريد استبعادها من
الفحص. يمكن تحديد متعددة
مرات. يتجاوز التعبيرات المحددة
في ملف التكوين.
-T ، -الأسلوب [Bandit | dlint | readicate | jsonlint | بيان | mccabe | polint | pycodestyle | pydiatra | pydocstyle | pyflakes | pylint | pyroma | rstlint | الأسرار | vulture | yamllint]
يحدد اسم أداة لاستخدامها أثناء
الفحص. يمكن تحديد متعددة
مرات. يتجاوز ملف التكوين.
-r ،-Report [Console ، CSV ، Custom ، Json ، Null ، Pycodestyle ، Pylint ، Pylint-Parsable ، Toml ، Yaml] [: Filename]
يحدد اسم تقرير للتنفيذ
بعد الفحص. يمكن تحديد
اسم ملف الإخراج الاختياري باستخدام النموذج -r
التقرير: اسم الملف. إذا كان اسم الملف غير محدد ،
سيتم كتابة التقرير على stdout. يمكن أن يكون
محدد عدة مرات. يتجاوز
ملف التكوين.
-C ، -اسم الملف الذي يحدد المسار إلى tidypy
ملف التكوين للاستخدام بدلاً من
التكوين الموجود في المشروع
pyproject.toml.
-عمال العمال num_workers عدد العمال الذين يجب استخدامهم في وقت واحد
تنفيذ الأدوات. يتجاوز
ملف التكوين.
-القابلية للتغلب على تعطيل دمج القضايا من مختلف
الأدوات عندما يعتبرها Tidypy مكافئة.
يتجاوز ملف التكوين.
-القابلية للبراعة تعطيل عرض شريط التقدم.
-قابلة للتطبيق--Noqa تعطل القدرة على تجاهل المشكلات باستخدام
تعليق "# ايكا" في ملفات بيثون.
-قابلة للشفاء من Config Cache تعطيل استخدام ذاكرة التخزين المؤقت عند الاسترداد
التكوينات المشار إليها من قبل "تمتد"
خيار.
-عرض هذه الرسالة والخروج.
إذا كنت بحاجة إلى إنشاء ملف تكوين هيكل عظمي مع الخيارات الافتراضية ، فاستخدم المفصل الفرعي default-config :
$ tidypy default-config-help
الاستخدام: Tidypy Default-Config [خيارات]
يخرج التكوين الافتراضي الذي يمكن استخدامه لتمهيد خاص بك
ملف التكوين.
خيارات:
-إخراج comproject التكوين بحيث يمكن استخدامه في pyproject.toml
ملف.
-عرض هذه الرسالة والخروج.
إذا كنت ترغب في رؤية قائمة برموز المشكلات المحتملة التي يمكن إرجاعها ، فاستخدم المفوض الفرعي list-codes :
$ tidypy list-compes-help
الاستخدام: رموز قائمة Tidypy [خيارات]
يخرج قائمة بجميع رموز المشكلات المعروفة التي قد تقارم الأدوات.
خيارات:
-T ، -الأسلوب [Bandit | dlint | readicate | jsonlint | بيان | mccabe | polint | pycodestyle | pydiatra | pydocstyle | pyflakes | pylint | pyroma | rstlint | الأسرار | vulture | yamllint]
يحدد اسم الأداة التي رموزها
يجب أن يكون الإخراج. إذا لم يتم تحديدها ، الافتراضية
لجميع الأدوات.
-F ، -Format [Toml | Json | Yaml | CSV]
يحدد التنسيق الذي تابعه الأدوات
يجب أن يكون الإخراج. إذا لم يتم تحديدها ، الافتراضية
إلى توم.
-عرض هذه الرسالة والخروج.
إذا كنت ترغب في تثبيت أو إزالة Tidypy كخطاف مسبقًا في VCs لمشروعك ، فاستخدم install-vcs / remove-vcs الفرعية:
$ tidypy install-vcs-help
الاستخدام: Tidypy Install-VCs [Options] VCS [PATH]
يقوم بتثبيت Tidypy كخطاف قبل الالتزام في VCs المحددة.
يقبل حجتين:
VCS: نظام التحكم في الإصدار لتثبيت الخطاف في. اختر من:
جيت ، زئبق
المسار: المسار إلى قاعدة المستودع لتثبيت الخطاف في.
إذا لم يتم تحديدها ، فإن الإعدادات الافتراضية لدليل العمل الحالي.
خيارات:
-ما إذا كان يجب أن يمنع الخطاف من الالتزام أم لا إذا اكتشف Tidypy
مشاكل.
-عرض هذه الرسالة والخروج.
$ tidypy remove-vcs-help
الاستخدام: tidypy remove-vcs [Options] VCs [path]
يزيل الخطاف المسبق لصالح الالتزام من VCs المحددة.
يقبل حجتين:
VCS: نظام التحكم في الإصدار لإزالة الخطاف من. اختر من:
جيت ، زئبق
المسار: المسار إلى قاعدة المستودع لإزالة الخطاف من. لو
غير محدد ، الإعدادات الافتراضية إلى دليل العمل الحالي.
خيارات:
-عرض هذه الرسالة والخروج.
إذا كنت ترغب في تمكين إكمال Bash لـ Tidypy ، فتشغيل ما يلي في قذيتك (أو ضعه في البرامج النصية لبدء تشغيل Bash):
$ eval "$ (_ TIDYPY_COMPLETE = Source Tidypy)"
إذا كنت لا ترغب في تثبيت Tidypy محليًا على نظامك أو في VirtualEnv ، فيمكنك استخدام صورة Docker المنشورة:
$ Docker Run - -RM -TTY -Volume = `PWD`:/Project Tidypy/tidypy
سيقوم الأمر أعلاه بتشغيل tidypy check من محتويات الدليل الحالي. إذا كنت ترغب في تشغيله على دليل مختلف ، فقم بتغيير `pwd` إلى أي مسار تحتاجه (الهدف هو تركيب دليل المشروع الخاص بك إلى حجم الحاوية /project ).
إن تشغيل Tidypy بهذه الطريقة يحتوي على بعض القيود ، في الغالب حول حقيقة أنه نظرًا لأن Tidypy تعمل في بيئة بيثون المعزولة الخاصة بها ، فلن تتمكن أدوات مثل Pylint من إدراك الحزم التي تم تثبيتها محليًا ، لذلك قد يبلغ عن إيجادات خاطئة حول "الاستيراد-الإرهاب" ، "No-Name-in-Modele" ، "لا توجد أعضاء" ، إلخ "، إلخ.
إذا كنت ترغب في تشغيل أمر آخر غير check ، فما عليك سوى مرور ذلك عندما تستدعي Docker:
$ Docker Run-RM--TTY-Volume = `pwd`
تودو
بالإضافة إلى تجاهل الملفات أو الأدوات أو أنواع المشكلات المحددة من الأدوات عبر ملف التكوين الخاص بك ، يمكنك أيضًا استخدام التعليقات في ملفات مصدر Python الخاصة بك لتجاهل المشكلات على خطوط محددة. بعض الأدوات لديها دعمها المدمج وتدوينها للقيام بذلك:
# pylint# nosec# noqa# noqa# pragma: whitelist secret يتجاوز Tidypy هذه الأعلام الخاصة بالأدوات لتنفيذ # noqa على نطاق عالمي لملفات مصدر Python. سوف يتجاهل المشكلات للخطوط التي تحتوي على تعليق # noqa ، بغض النظر عن الأدوات التي تثير القضايا. إذا كنت تريد فقط تجاهل نوع معين من المشكلات على السطر ، فيمكنك استخدام بناء الجملة مثل ما يلي:
# NOQA: CODE1 ، CODE2
أو ، إذا تم استخدام رمز معين في أدوات متعددة ، يمكنك تحديد الأداة الدقيقة في التعليق:
# NOQA: Pycodestyle: Code1 ، Pylint: Code2
أو ، إذا كنت تريد تجاهل أي مشكلة تثير أداة معينة على السطر ، يمكنك تحديد الأداة:
# NOQA: @pycodestyle ، @pylint
يمكنك ، بالطبع ، خلط وتطابق جميع الرموز الثلاثة في تعليق واحد إذا كنت بحاجة إلى:
# NOQA: Code1 ، Pylint: Code2 ،@Pycodestyle
يمكنك تعطيل سلوك NOQA من Tidypy من خلال تحديد خيار-- --disable-noqa على سطر الأوامر ، أو عن طريق تعيين خيار noqa إلى false في ملف التكوين الخاص بك. تحذير ، على الرغم من: حاليًا لا يحترم Pycodestyle و Pydocstyle هذا الخيار وسيحترمون دائمًا أي تعليقات # noqa التي يجدونها.
خارج الصندوق ، يتضمن Tidypy دعمًا لعدد من الأدوات:
يتضمن Tidypy عددًا من الطرق المختلفة لتقديم و/أو تصدير نتائج تحليل المشروع. خارج الصندوق ، يوفر ما يلي:
filename ، line ، character ، tool ، code ، message .يتضمن Tidypy حفنة من المكونات الإضافية/التكامل التي تربطه بأدوات أخرى.
--tidypy على سطر الأوامر عند تشغيل pytest ، أو تضمينه كجزء من خاصية addopts في تكوين pytest الخاص بك.--with-tidypy على سطر الأوامر عند تشغيل الأنف ، أو تعيين خاصية with-tidypy على 1 في setup.cfg .tidypy . لتمكينه ، يمكنك إما تحديد --extend=tidypy.plugin.pbbt على سطر الأوامر عند تشغيل PBBT ، أو تعيين خاصية extend في setup.cfg أو pbbt.yaml إلى tidypy.plugin.pbbt . توجد واجهة بسيطة لتوسيع Tidypy لتشمل المزيد من الأدوات والمراسلين المختلفين. لإضافة أداة ، قم بإنشاء فصل يمتد tidypy.tool ، وفي setup.py ، أعلن إدخال entry_point لـ tidypy.tools التي تشير إلى فصلك:
enter_points = {
'tidypy.tools': [
'mycooltool = path.to.model: mycooltoolClassName' ،
]
}
لإضافة مراسل ، تكون العملية متطابقة تقريبًا ، باستثناء أنك تمدد tidypy.report وإعلان entry_point لـ tidypy.reports .
نعم ، هذا يحدث. الفلسفة التي اخترت أن أتابعها مع هذه الأداة هي أنني لا أريدها أن تخفي أي شيء مني. أردت أن يقوم سلوكه الافتراضي بتنفيذ كل أداة في جناحها باستخدام إعداداتها الأكثر بغيضة. بعد ذلك ، عندما أتمكن من رؤية النطاق الكامل للتلف ، يمكنني بعد ذلك أن أقرر تعطيل أدوات أو مشكلات محددة من خلال تكوين مستوى المشروع. كنت أحسب إذا استغرق شخص ما الوقت لتنفيذ شيك لمشكلة معينة ، يجب أن يعتقد أن لديها بعض القيمة. إذا اختبأت أدواتي ذلك عني افتراضيًا ، فلن أتمكن من الحصول على أي فوائد منه.
بشكل عام ، لا أوصي البدء في استخدام المبيدات أو أنواع أخرى من المحللين الثابتين عندما تعتقد أنك "انتهت". يجب عليك دمجها في سير العمل الخاص بك مباشرة في بداية المشروع - تمامًا كما تفعل (أو يجب) اختبارات وحدتك. وبهذه الطريقة تجد الأشياء مبكرًا وتتعلم منها (أو تعطيلها). إنه أمر أقل شاقة في التعامل معها عند معالجتها بشكل تدريجي.
المساهمات موضع ترحيب كبير. خاصة إذا كانت إصلاحات الأخطاء! للاختراق على هذا الرمز ، ما عليك سوى استنساخه ، ثم تشغيل make setup . سيؤدي ذلك إلى إنشاء VirtualEnv مع جميع الأدوات التي ستحتاجها. يحتوي Makefile أيضًا على هدف test لتشغيل جناح Pytest ، وهدف lint لتشغيل Tidypy على نفسه.
يتم إصدار Tidypy بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا.