среда, 9 июня 2010 г.

Поиск похожих участков в питоновском коде

Когда-то довольно давно отложилось в памяти, что существует полезный инструмент, способный качественно найти в коде на python похожие куски для их дальнейшего рефакторинга.

Вчера выдалась относительно свободная минута, и я решил его таки найти. После долгих поисков наконец нарыл. Итак, знакомимся - CloneDigger



Устанавливается через easy_install
easy_install -U clonedigger
или pip
pip install clonedigger

Доступен также svn-репозиторий.

Для поиска дублей достаточно запустить модуль clonedigger.py и указать в качестве параметра путь к корневой директории проекта. У него есть еще несколько параметров для тонкого тюнинга, но я их не трогал, дефолтных оказалось пока вполне достаточно.

На выходе получаем отчет output.html (если явно не сказали другое), в котором приведены все найденные дубликаты.

Прогнал через clonedigger свой проектик и был очарован. Отличный инструмент, с дефолтными настройками нашел не только известные мне копипасты, но и дубли, образовавшиеся в силу сходности задач в разных местах проекта. В отчете клоны приведены практически в виде готовых для выделения функций, а отличия (читай, параметры) выделены цветом. Для меня, однозначно, must have. Может быть при более плотном использовании и вылезут какие-нибудь козявки, но первое впечатление великолепное. Так что рекомендую.

Комментариев нет:

Отправить комментарий