การเยื้องเป็นคุณลักษณะที่สำคัญของไวยากรณ์ Python โค้ดบล็อกในฟังก์ชัน คลาส หรือลูปจะต้องเป็นไปตามระดับการเยื้องเดียวกันสำหรับคำสั่งในนั้น โมดูล tabnanny ในไลบรารีมาตรฐานของ Python สามารถตรวจพบการละเมิดในข้อกำหนดนี้
โมดูลนี้มีวัตถุประสงค์หลักเพื่อใช้ในโหมดบรรทัดคำสั่งด้วยสวิตช์ –m อย่างไรก็ตาม สามารถนำเข้าในเซสชันล่ามได้เช่นกัน
การใช้บรรทัดคำสั่ง
python –m tabnanny –q example.py
สำหรับเอาต์พุตแบบละเอียดให้ใช้สวิตช์ –v
python –m tabnanny –v example.py
ฟังก์ชันต่อไปนี้ถูกกำหนดไว้ในโมดูล tabnanny สำหรับตรวจสอบการเยื้องโดยทางโปรแกรม
check()
ฟังก์ชันนี้จะตรวจสอบบรรทัดที่เยื้องไม่ชัดเจนในไฟล์ที่กำหนด คุณยังสามารถส่งไดเร็กทอรีเป็นพารามิเตอร์ได้อีกด้วย ไฟล์ทั้งหมดในนั้นจะถูกตรวจสอบซ้ำๆ
ตัวอย่าง
import tabnanny tabnanny.check('example.py')
tabnanny.verbose − แฟล็กนี้ระบุว่าจะพิมพ์ข้อความแบบละเอียดหรือไม่ สิ่งนี้จะเพิ่มขึ้นโดยตัวเลือก -v หากเรียกว่าเป็นสคริปต์
tabnanny.filename_only − แฟล็กนี้ระบุว่าจะพิมพ์เฉพาะชื่อไฟล์ของไฟล์ที่มีปัญหาที่เกี่ยวข้องกับช่องว่างหรือไม่ สิ่งนี้ถูกตั้งค่าเป็นจริงโดยตัวเลือก -q หากเรียกว่าเป็นสคริปต์
process_tokens() -
ฟังก์ชันนี้ใช้โดย check() เพื่อประมวลผลโทเค็นที่สร้างโดยโมดูล tokenize ฟังก์ชันนี้ทำให้เกิดข้อยกเว้น NannyNag หากตรวจพบการเยื้องที่คลุมเครือ มันถูกจับและจัดการใน check()