Я видел Как найти неиспользуемые функции в коде Python?, но он очень старый и не отвечает на мой вопрос.
У меня есть большой проект Python с несколькими библиотеками, которые используются несколькими сценариями точки входа. Этот проект уже много лет набирает обороты со многими авторами, так что там много мертвого кода. Вы знаете, что делать.
Я знаю, что найти весь мертвый код невозможно. Все, что мне нужно, это инструмент, который найдет все функции, которые нигде не вызываются. Мы не делаем ничего особенного с вызовом функций на основе строки имени функции, поэтому меня не беспокоит что-либо патологическое ...
Я только что установил pylint, но, похоже, он основан на файлах и не уделяет особого внимания межфайловым зависимостям или даже зависимостям функций.
Ясно, что я мог бы использовать grep для def во всех файлах, получить из них все имена функций и выполнить команду grep для каждого из этих имен функций. Я просто надеюсь, что уже есть что-то более умное, чем это.
ETA: Обратите внимание, что я не ожидаю и не хочу чего-то идеального. Я знаю свое доказательство проблемы остановки точно так же, как любой (нет, на самом деле я преподавал теорию вычислений, которую знаю, когда смотрю на что-то рекурсивно перечислимое). Любая вещь, которая пытается приблизиться к этому, фактически выполняя код, займет слишком много времени. Мне просто нужно что-то, что синтаксически проходит через код и говорит: «Эта функция определенно используется. Эта функция МОЖЕТ быть использована, и эта функция определенно НЕ используется, никто другой, кажется, даже не знает о ее существовании!» И первые две категории не важны.
parser
даст вам более точный контроль. - person Peter Wood   schedule 02.03.2012