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.

Reply via email to