Don't forget to flush!
So, here's a weird one.
I had my little app working fine in a console. I could do a database query and get back 800+ records no problem. So, I tried it deployed as a web app and only about 400 records would get displayed. Weird.
A quick Stack Overflow search returned one guy who seemed to have a similar problem - results were truncated in the web app deployment mode. But no solution.
I first thought the problem was the ouput code was choking on Unicode characters - a problem that had occurred earlier in testing due to a problem I solved here. But carefully limiting the number of results returned showed that once the result set got up to exactly 391 records, that was it - no more records would come.
Then I had some flash of insight - no idea where that came from, but it just happens now and then. Call it experience. It smelled like a buffer wasn't getting flushed. How about stdout?
I whacked in a flush method call:
sys.stdout.flush()
Lo and behold - all 800+ records coming back - no problem.
It just goes to show, stdout
in Python 3, may behave differently depending on exactly what you are connected to - a tty? A socket? A pipe?
And, one piece of advice, don't forget to flush!