Rastreo de ruta y número de línea

Estoy usando pythontrace Módulo para rastrear algunos códigos. Cuando trazo el código de esta manera, puedo obtener uno de los siguientes dos resultados:

Llamada:

tracer = trace.Trace(count=False, trace=True, ignoredirs=[sys.prefix, sys.exec_prefix])
r = tracer.run('run()')
tracer.results().write_results(show_missing=True)

Resultado:

<filename>(<line number>): <line of code>

Llamada [citación]:

tracer = trace.Trace(count=False, trace=True, ignoredirs=[sys.prefix, sys.exec_prefix], countfuncs=True)
r = tracer.run('run()')
tracer.results().write_results(show_missing=True)

Resultado:

filename:<filepath>, modulename:<module name>, funcname: <function name>

Lo que realmente necesito es un rastro que me da esto:

<filepath> <line number>

Parece que podría utilizar la información anterior e intercalarlos para obtener lo que necesito, pero tal intento fallaría en el siguiente caso de uso:

sys.path contiene directorioA y directorioB.Hay dos archivosA/foo.py yB/foo.pyAmbosA/foo.py yB/foo.py contiene la funciónbar, definido en las líneas 100 - 120.Hay algunas diferencias menores entreA/foo.py yB/foo.py

En este escenario, el uso de este intercalado para identificar correctamente québar se llama es imposible (corríjame si me equivoco) sin analizar estáticamente el código dentro de cadabar, que a su vez es muy difícil para funciones no triviales.

Entonces, ¿cómo puedo obtener el resultado de rastreo correcto que necesito?

Respuestas a la pregunta(1)

Su respuesta a la pregunta