Rastreando o caminho do arquivo e o número da linha

Estou usando o pythontrace módulo para rastrear algum código. Quando eu rastrear código dessa maneira, posso obter um dos dois resultados a seguir:

Ligar:

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>

Ligar [citação]:

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>

O que eu realmente preciso é de um traço que me dê isso:

<filepath> <line number>

Parece que eu poderia usar as informações acima e intercalá-las para obter o que preciso, mas essa tentativa falharia no seguinte caso de uso:

sys.path contém diretórioA e diretórioB.Existem dois arquivosA/foo.py eB/foo.pyAmbosA/foo.py eB/foo.py conter a funçãobar, definido nas linhas 100 - 120Existem algumas pequenas diferenças entreA/foo.py eB/foo.py

Neste cenário, usando essa intercalação para identificar corretamentebar é chamado é impossível (por favor me corrija se eu estiver errado) sem analisar estaticamente o código dentro de cadabar, o que em si é muito difícil para funções não triviais.

Então, como posso obter a saída de rastreio correta de que preciso?

questionAnswers(1)

yourAnswerToTheQuestion