Поиск мертвого кода в большом проекте Python [закрыто]

Я видел Как вы можете найти неиспользуемые функции в коде Python? но он очень старый и на самом деле не отвечает мой вопрос.

У меня есть большой проект Python с несколькими библиотеками, которые используются несколькими сценариями точек входа.Этот проект уже много лет набирает обороты со многими авторами, так что там много мертвого кода. Вы знаете, что делать.

Я знаю, что найти весь мертвый код невозможно. Все, что мне нужно, это инструмент, который найдет все функции, которые нигде не вызываются. Мы не делаем ничего особенного с вызовом функций на основе строки имени функции, поэтому меня не беспокоит что-либо патологическое ...

Я только что установил pylint, но он, похоже, основан на файлах и не платит много внимания межфайловым зависимостям или даже зависимостям функций.

Ясно, что я мог бы использовать команду grep для def во всех файлах, получить из них все имена функций и выполнить команду grep для каждого из этих имен функций. Я просто надеюсь, что уже есть что-то более умное, чем это.

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

67
задан Community 23 May 2017 в 12:17
поделиться