• ไลบรารีที่ถูกเสนอขึ้นเพื่อ รวม special comment (action comment) ที่เครื่องมือ lint, formatter, type checker และ coverage ใน ecosystem ของ Python ใช้งาน ให้เป็นมาตรฐานเดียวกัน
  • มีเป้าหมายเพื่อแก้ปัญหา ความสับสนของไวยากรณ์คอมเมนต์ที่เป็นธรรมเนียมปฏิบัติโดยพฤตินัย แต่ไม่มีมาตรฐาน อย่าง # noqa, # fmt: off, # type: ignore
  • กำหนด ภาษาคอมเมนต์ขนาดเบา (metacode) ที่ใช้ส่วนย่อยของไวยากรณ์ Python
    • แยกเครื่องมือ การทำงาน และอาร์กิวเมนต์อย่างชัดเจนในรูปแบบ key: action[arguments]
  • รองรับโครงสร้างที่ทำให้ คอมเมนต์สำหรับหลายเครื่องมืออยู่ร่วมกันได้อย่างปลอดภัย บนโค้ดบรรทัดเดียว
    • สามารถจัดการชุดผสมอย่าง # type: ignore # fmt: off ได้
  • มี parser อย่างเป็นทางการ (parse) สำหรับแยกวิเคราะห์คอมเมนต์ ช่วยลบตรรกะการพาร์สด้วยสตริงและ regex ที่แต่ละเครื่องมือเคยต้องทำกันเอง
  • รองรับชนิดอาร์กิวเมนต์เป็นสตริง ตัวเลข bool, None, ellipsis เป็นต้น และหากจำเป็นก็สามารถ ขยายการพาร์สแบบอิง AST ได้
  • สามารถเลือกพาร์สเฉพาะ key ที่ต้องการได้ จึงเหมาะกับ การแยกจัดการคอมเมนต์ตามเครื่องมือ
  • มี insert API สำหรับสร้างและแทรกคอมเมนต์โดยอัตโนมัติ
  • ตัวไวยากรณ์เองถูก ระบุสเปกในรูปแบบ EBNF เพื่อไม่ให้ผูกกับ Python โดยเฉพาะ และสามารถนำไปทำ implementation ในภาษาอื่นได้

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น