Encontrar código muerto en un gran proyecto de Python [cerrado]

He visto ¿Cómo puede encontrar funciones no utilizadas en el código Python? pero eso es muy viejo y realmente no responde mi pregunta.

Tengo un gran proyecto de Python con múltiples bibliotecas compartidas por múltiples scripts de puntos de entrada. Este proyecto ha estado aumentando durante muchos años con muchos autores, por lo que hay un montón de código muerto. Ya sabes que hacer

Sé que encontrar todos los códigos muertos no se puede decidir. Todo lo que necesito es una herramienta que encuentre todas las funciones a las que no se llama en ninguna parte. No estamos haciendo nada elegante con las funciones de llamada basadas en la cadena del nombre de la función, por lo que no me preocupa nada patológico ...

Acabo de instalar pylint, pero parece estar basado en archivos y no presta mucha atención a las dependencias entre archivos, o incluso a las dependencias de funciones.

Claramente, podría grep para def en todos los archivos, obtener todos los nombres de funciones de eso y hacer un grep para cada uno de esos nombres de funciones. Solo espero que haya algo un poco más inteligente que eso por ahí.

ETA: Tenga en cuenta que no espero o quiero algo perfecto. Conozco mi prueba de problemas de detención tan bien como cualquiera (No, realmente enseñé teoría de la computación que sé cuando estoy mirando algo que es recursivamente enumerable). Cualquier cosa que intente aproximarse ejecutando realmente el código llevará demasiado tiempo. Solo quiero algo que pase sintácticamente por el código y diga "Esta función definitivamente se usa. Esta función PODRÍA usarse, y esta función definitivamente NO se usa, ¡nadie más parece saber que existe!" Y las dos primeras categorías no son importantes.

Respuestas a la pregunta(14)

Su respuesta a la pregunta