RSS Планета Python

Нед Бэтчелдер: Прагмы регулярных выражений Coverage.py

Coverage.py позволяет исключать код из измерений с помощью комментариев в файлах Python. В отличие от других инструментов, он использует настраиваемые регулярные выражения для этих исключений. Этот подход, основанный на регулярных выражениях, оказался на удивление мощным, обеспечивая гибкость, выходящую за рамки простых маркеров комментариев. Строки, соответствующие этим регулярным выражениям, а также их многострочные операторы и блоки, исключаются из проверок покрытия. Изначально предназначенная для базовых прагм, эта система также позволила исключать код без прагм, например, автоматически игнорировать все методы __repr__. Мощность системы была дополнительно усилена сторонними плагинами, такими как covdefaults и coverage-conditional-plugin. Значительное улучшение позволило регулярным выражениям сопоставлять многострочные шаблоны, что произвело революцию в возможностях исключения. Это изменение позволило реализовать такие функции, как исключение целых файлов с помощью одного шаблона регулярного выражения. Еще одна новая функция позволяет исключать код между определенными начальными и конечными разделителями. Однако эта гибкость регулярных выражений имеет свои ограничения, испытывая трудности в таких случаях, как строковые литералы, содержащие текст прагмы. Иногда для конкретных шаблонов требуются сложные регулярные выражения, но они все равно могут приводить к ложным срабатываниям. Несмотря на эти ограничения, подход с использованием регулярных выражений обеспечивает хороший баланс гибкости, мощности и практической применимости для реального кода.
favicon
nedbatchelder.com
Ned Batchelder: Coverage.py regex pragmas
Create attached notes ...