- Bibliothèque proposée pour unifier en un seul standard les commentaires spéciaux (action comments) utilisés par les outils de lint, formatters, type checkers et de couverture de l’écosystème Python
- Vise à résoudre la confusion autour de syntaxes de commentaires devenues de facto des conventions, mais sans standard, comme
# noqa, # fmt: off, # type: ignore
- Définit un langage léger de commentaires (metacode) utilisant un sous-ensemble de la grammaire Python
- Sépare clairement outil, action et arguments sous la forme
key: action[arguments]
- Prend en charge une structure permettant de faire coexister en toute sécurité plusieurs commentaires destinés à différents outils sur une même ligne de code
- Peut traiter des combinaisons comme
# type: ignore # fmt: off
- Fournit un parseur officiel (
parse) pour l’analyse des commentaires, supprimant la logique de parsing par chaînes de caractères ou expressions régulières que chaque outil implémentait séparément
- Prend en charge comme types d’arguments les chaînes, nombres, booléens,
None, ellipsis, etc., avec possibilité d’un parsing extensible basé sur l’AST si nécessaire
- Permet de parser sélectivement certaines clés seulement, ce qui le rend adapté au traitement séparé des commentaires par outil
- Fournit une API
insert pour générer et insérer automatiquement des commentaires
- La syntaxe elle-même est spécifiée sous forme d’EBNF afin de ne pas dépendre de Python et de permettre des implémentations dans d’autres langages
Aucun commentaire pour le moment.