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