Criação de perfil de geradores Python
Estou adaptando um aplicativo que faz uso pesado de geradores para produzir seus resultados e fornecer uma interface web.py.
Até agora, eu poderia agrupar a chamada para o loop for e as instruções de produção de saída em uma função e chamar isso usandocProfile.run()
ourunctx()
. Conceitualmente:
def output():
for value in generator():
print(value)
cProfile.run('output()')
No web.py, preciso envolvê-lo da seguinte maneira, pois quero produzir imediatamente a saída do cálculo potencialmente demorado em cada etapa da iteração usandoyield
:
class index:
def GET(self):
for value in generator():
yield make_pretty_html(value)
Existe uma maneira de criar um perfil de todas as chamadas para o gerador, como no primeiro exemplo, quando usado como no segundo?