Curious about library inclusion

Rhodri James rhodri at kynesim.co.uk
Fri Oct 11 09:48:32 EDT 2019


On 10/10/2019 12:40, Antoon Pardon wrote:
> About including piped iterators:
>      http://code.activestate.com/recipes/580625-collection-pipeline-in-python/
> 
> On 10/10/19 13:00, Paul Moore wrote:
>> As another measure, look at various other libraries on PyPI and ask
>> yourself why *this* library needs to be in the stdlib more than those
>> others. The answer to that question would be a good start for an
>> argument to include the library.
> 
> Well my answer would be that this library wouldn't add functionality
> but rather would allow IMO for a more readable coding style.
> 
> If you split the work to be done over mulitple generators I find it
> easier to understand when I read something like:
> 
>      for item in some_file | gen1 | gen2 | gen3:
>          ...
> 
> than when I read something like:
> 
>      for item in gen3(gen2(gen1(somefile))):
>          ...

With my ever-so-reactionary hat on, I have to say I'm the other way 
round.  With "gen3(gen2(gen1(somefile)))" it's pretty obvious what's 
going on -- nested function or generator calls, probably the latter from 
the name.  With "somefile|gen1|gen2|gen3" I need more context to kick my 
expectations out of the more common meaning of "|" as "or".

Yes, context demands that the "|" in your first example can't actually 
be an "or".  It still causes a moment of logical disconnect (currently a 
long moment) that throws me out of understanding what your code is doing 
overall into what this line means in particular.  It's exactly like 
coming across an unusual phrasing or iffy grammar in a piece of writing; 
you get thrown out of the reading experience by having to concentrate on 
the individual words.

Heh.  Literary criticism as applied to programming.  Only in Python...

-- 
Rhodri James *-* Kynesim Ltd



More information about the Python-list mailing list