[Python-ideas] make Connections iterable
Antoine Pitrou
solipsis at pitrou.net
Tue Jan 9 06:02:23 EST 2018
On Tue, 9 Jan 2018 20:46:35 +1000
Nick Coghlan <ncoghlan at gmail.com> wrote:
> On 9 January 2018 at 20:07, Antoine Pitrou <solipsis at pitrou.net> wrote:
> > On Mon, 8 Jan 2018 21:22:56 -0800
> > Nathaniel Smith <njs at pobox.com> wrote:
> >> I'm surprised that multiprocessing.Connection isn't iterable -- it seems
> >> like an obvious oversight.
> >
> > What is obvious about making a connection iterable? It's the first
> > time I see someone requesting this.
>
> If you view them as comparable to subprocess pipes, then it can be
> surprising that they're not iterable when using a line-oriented
> protocol.
>
> If you instead view them as comparable to socket connections, then the
> lack of iteration support seems equally reasonable.
multiprocessing connections are actually message-oriented. So perhaps
it could make sense for them to be iterable. But they are also quite
low-level (often you wouldn't use them directly, but instead rely on
multiprocessing.Queue).
> Hence my suggestion of providing a docs recipe showing an example of
> wrapping a connection in a generator in order to define a suitable way
> of getting from a raw bytestream to iterable chunks.
Well... if someone needs a doc recipe for this, they shouldn't use the
lower-level functionality and instead stick to multiprocessing.Queue.
(this begs the question: should multiprocessing.Queue be iterable?
well, it's modeled on queue.Queue which isn't iterable)
Regards
Antoine.
More information about the Python-ideas
mailing list