Sorry for the delay in responding, contrary to popular belief it’s not because of disinterest but because I was on holiday and because I’m not an expert in language design
I wanted the experts to throw in their opinion so I could allow things to stew
I’ve been following the thread and can distill my thoughts follows
It seems like people reasonably don’t like the implicit arguments.
I understand that other languages this is a common pattern but I also understand that Python language design is usually about making things explicit (although there are exceptions such as generators looking identical to function calls)
Python already handles such cases by highlighting it typically with a keyword for example with the keyword match making clear that in that context “|” has different meaning
A keyword such as “pipe” could do same thing
images = pipe glob(“*.*”) | map(PIL.Image.load)
This would have advantage of not needing to introduce a new operator
Perhaps ability for library’s such as open CV to detect when they are part of a pipeline and apply optimizations such as in place memory mutation would require a different method now we can’t use Dunders
The second thing I’ve noticed is the arguments around placeholder syntax.
I agree many samples have been obtuse or not very pythonic or not explicit
In this cases I would actually say the way import, with or except works could be a good compromise.
images = pipe glob(“*.*”) as paths | map(PIL.Image.load, paths)
Of course this could break if the user reorders the statements
But if they follow the convention of always using “as _” and then the statement after the “as” only applying to the next statement after the |”
Then they can have the same _ placeholder everywhere whilst being explicit
Sorry if this is very layman-ish
Seems most people are working at a higher level than me 