แรงบันดาลใจจากโพสต์บล็อกนี้ ฉันอธิบายกระบวนการอาคารของเครื่องมือนี้ที่นี่
“ สำหรับผู้ที่ชอบไดโนเสาร์และทำความสะอาดลอง/ยกเว้นบล็อก”
สรุป
flake8 pip install tryceratops
หรือ
poetry add -D tryceratops
tryceratops [filename or dir...]
คุณสามารถเปิดใช้งานเครื่องวิเคราะห์การทดลองโดยใช้งาน:
tryceratops --experimental [filename or dir...]
คุณสามารถเพิกเฉย --ignore TRYXXX การละเมิดที่เฉพาะ
tryceratops --ignore TRY201 --ignore TRY202 [filename or dir...]
คุณสามารถยกเว้น dirs โดยใช้: --exclude dir/path ซ้ำ ๆ :
tryceratops --exclude tests --exclude .venv [filename or dir...]
นอกจากนี้คุณยังสามารถใช้การละเมิดอัตโนมัติได้:
tryceratops --autofix [filename or dir...]
flake8 - Tryceratops ยังเป็นปลั๊กอินสำหรับ flake8 ดังนั้นคุณสามารถ:
❯ flake8 --select TRY src/tests/samples/violations/call_raise_vanilla.py
src/tests/samples/violations/call_raise_vanilla.py:13:9: TRY002 Create your own exception
src/tests/samples/violations/call_raise_vanilla.py:13:9: TRY003 Avoid specifying long messages outside the exception class
src/tests/samples/violations/call_raise_vanilla.py:21:9: TRY201 Simply use 'raise' without specifying exception object again
การละเมิดทั้งหมดและคำอธิบายสามารถพบได้ในเอกสาร
จนถึงตอนนี้ Autofix รองรับการละเมิดเท่านั้น: Try200, Try201 และ Try400
หากคุณต้องการเพิกเฉยต่อการละเมิดในไฟล์เฉพาะคุณสามารถ:
noqa ที่ด้านบนของไฟล์ที่คุณต้องการเพิกเฉยnoqa ในบรรทัดที่คุณต้องการเพิกเฉยnoqa: CODE ไปยังบรรทัดที่คุณต้องการเพิกเฉยต่อการละเมิดที่เฉพาะเจาะจงตัวอย่าง:
def verbose_reraise_1 ():
try :
a = 1
except Exception as ex :
raise ex # noqa: TRY202 คุณสามารถตั้งค่าไฟล์ pyproject.toml เพื่อตั้งค่ากฎ สิ่งนี้มีประโยชน์ในการหลีกเลี่ยงการใช้ธง CLI เดียวกันซ้ำแล้วซ้ำอีกและช่วยกำหนดโครงสร้างของโครงการของคุณ
ตัวอย่าง:
[ tool . tryceratops ]
exclude = [ " samples " ]
ignore = [ " TRY002 " , " TRY200 " , " TRY300 " ]
experimental = false
check_pickable = false
allowed_base_exceptions = [ " MyAppBase " ]FLAG CLI เขียนทับไฟล์กำหนดค่าเสมอ
หากคุณต้องการใช้ล่วงหน้าให้เพิ่มสิ่งนี้:
- repo : https://github.com/guilatrova/tryceratops
rev : v2.4.1
hooks :
- id : tryceratops เพิ่มป้ายแฟนซีนี้ลงใน README.md ของโครงการของคุณ:
[ ![ try/except style: tryceratops ] ( https://img.shields.io/badge/try%2Fexcept%20style-tryceratops%20%F0%9F%A6%96%E2%9C%A8-black )] ( https://github.com/guilatrova/tryceratops ) หากคุณต้องการอ่านเพิ่มเติมเกี่ยวกับ:
ขอบคุณที่พิจารณาทำให้ tryceratops ดีขึ้นสำหรับทุกคน!
อ้างถึงเอกสารที่มีส่วนร่วม
ดู Changelog
มิกซ์
ขอบคุณพระเจ้าสำหรับแรงบันดาลใจ?
โครงการสีดำสำหรับข้อมูลเชิงลึก