Reading this page http://flask.pocoo.org/docs/patterns/streaming/ it seems like I might be able to do what I want, I have a simple url route that sends the output to json but I rather is stream the output:
output = somemethod(var1,var2,var3)
return Response(json.dumps(output), mimetype='application/json')
Just like the documentation says, simply create a generator and yield each line you want to return to the client.
If output is 10 lines long, then the following will print each of the ten lines (as they're available) to the client:
@app.route('/') def aws_api_route_puppet_apply(ip=None): def generate(): for row in somemethod(var1,var2,var3): yield row + '\n' return Response(generate(), mimetype='application/json')