This harkens back to the discouraged write() callable in WSGI PEP 3333 returned by the start_response() invocation. The PEP as well as Pyramid as a framework would encourage you to map the logic into an app_iter as Bert suggested.
I think you'll want to define a file-like object that you can write to and set as the app_iter. The question will be whether you try to do this by writing from a separate thread or in some other way because once you return control to the WSGI server to iterate on your app_iter then you are no longer in control - you'll need some buffer between where you're generating your parquet file and what you're returning from the app_iter. I don't think a simple tempfile is good enough because you want the app_iter to wait instead of stopping when it hits an EOF unless you know that you've reached the end of the buffer. On Tue, Aug 9, 2022 at 12:59 PM Bert JW Regeer <[email protected]> wrote: > Some WSGI servers pass you the raw file descriptor as wsgi.input, but this > is not guaranteed (wsgiref does for instance). Instead you should return an > iterator that can be read incrementally so that your WSGI server can chunk > responses. > > > > On Aug 9, 2022, at 10:38, Mikko Ohtamaa <[email protected]> wrote: > > Hi all, > > I'd like to stream dynamically generated Parquet-files from Pyramid > server. Parquet library itself offers writing to any file-like object. I am > aware of app_iter and FileResponse interfaces in Pyramid. However, does > Pyramid (or any example or utility class) offer a Python file-like > interface, where I could just dynamically .write() stuff? > > Br, > Mikko > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/pylons-discuss/CAK8RCUudomfEGYnqAUk57XgOvatDLtFGGk%2Be5tFzu0w81Ez4Lg%40mail.gmail.com > <https://groups.google.com/d/msgid/pylons-discuss/CAK8RCUudomfEGYnqAUk57XgOvatDLtFGGk%2Be5tFzu0w81Ez4Lg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/pylons-discuss/2DB1D478-20A5-4F02-96BE-8F0EA792AFBF%400x58.com > <https://groups.google.com/d/msgid/pylons-discuss/2DB1D478-20A5-4F02-96BE-8F0EA792AFBF%400x58.com?utm_medium=email&utm_source=footer> > . > -- Michael -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/CAKdhhwHF%2BJjGydJ28bHneP1_GXvN_P%3DyN3W2FnSAQ_Cea-xbjw%40mail.gmail.com.
