Мониторинг вызовов функций в пакетах

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

Я знаю, что могу увидеть, какой код запускается из данной команды, используя Coverage.py, но я хочу знать, как код используется в реальном мире. Если никто не вызывает скрипт, который вызывает foo, я бы предпочел избавиться от foo, а не поддерживать его.

Я бы предпочел решение с низкими накладными расходами, чтобы не влиять на время выполнения модулей.


person jpyams    schedule 09.10.2017    source источник
comment
Вы можете редактировать код, который хотите отслеживать?   -  person bnaecker    schedule 10.10.2017
comment
Да. Было бы неплохо, если бы решение можно было отделить от кода, но не обязательно   -  person jpyams    schedule 10.10.2017
comment
Не обман, но ответ можно найти здесь: stackoverflow .com/questions/44968004/. Сделайте декоратор, который считает вызовы, а затем запускает функцию в обычном режиме.   -  person bnaecker    schedule 10.10.2017
comment
Почему бы не использоватьcoverage.py, пока код работает в реальном мире?   -  person Ned Batchelder    schedule 10.10.2017
comment
@NedBatchelder, вы предлагаете настроить команду python в качестве оболочки, чтобы каждый вызов скрипта Python фактически запускал скрипт в coverage?   -  person jpyams    schedule 10.10.2017
comment
@jpyams Я не знаю, как вы запускаете свою программу в производстве.   -  person Ned Batchelder    schedule 10.10.2017
comment
@NedBatchelder Думаю, Coverage.py сработает, если накладные расходы невелики. Я не знаю, что это накладные расходы   -  person jpyams    schedule 10.10.2017