Generadores de perfiles de Python

Estoy adaptando una aplicación que hace un uso intensivo de generadores para producir sus resultados para proporcionar una interfaz web web.py.

Hasta ahora, podría ajustar la llamada al ciclo for y las declaraciones que producen resultados en una función y llamar a eso usandocProfile.run() orunctx(). Conceptualmente:

def output():
    for value in generator():
        print(value)

cProfile.run('output()')

En web.py, tengo que ajustarlo de la siguiente manera, ya que quiero producir inmediatamente la salida del cómputo potencialmente de larga duración en cada paso de iteración usandoyield:

class index:
    def GET(self):
        for value in generator():
            yield make_pretty_html(value)

¿Hay alguna forma de perfilar todas las llamadas al generador como en el primer ejemplo cuando se usa como en el segundo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta