<div dir="ltr">Thanks for taking the time to write this PEP, Chris, even though I'm -1 on the idea. I'm glad to just have this as a historical document for the idea.<br><div><br><div class="gmail_quote"><div dir="ltr">On Tue, 27 Feb 2018 at 22:53 Chris Angelico <<a href="mailto:rosuav@gmail.com">rosuav@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Feb 28, 2018 at 4:52 PM, Robert Vanden Eynde<br>
<<a href="mailto:robertve92@gmail.com" target="_blank">robertve92@gmail.com</a>> wrote:<br>
> Hello Chris and Rob,<br>
><br>
> did you compare your proposal tothe subject called "[Python-ideas] Temporary<br>
> variables in comprehensions" on this month list ?<br>
<br>
Yes, I did; that's one of many threads on the subject, and is part of<br>
why I'm writing this up.<br>
<br>
One section that I have yet to write is "alternative syntax<br>
proposals", which is where I'd collect all of those together.<br>
<br>
> If you don't want to go through all the mails, I tried to summarize the<br>
> ideas in this mail :<br>
> <a href="https://mail.python.org/pipermail/python-ideas/2018-February/048987.html" rel="noreferrer" target="_blank">https://mail.python.org/pipermail/python-ideas/2018-February/048987.html</a><br>
><br>
> In a nutshell one of the proposed syntax was<br>
><br>
> stuff = [(y, y) where y = f(x) for x in range(5)]<br>
><br>
> Or with your choice of keyword,<br>
><br>
> stuff = [(y, y) with y = f(x) for x in range(5)]<br>
><br>
> Your proposal uses the *reverse* syntax :<br>
><br>
> stuff = [(y, y) with f(x) as y for x in range (5)]<br>
> ...<br>
> I wish I could write a pep to summarize all the discussions (including<br>
> yours, my summary, including real world examples, including pro's and<br>
> con's), or should I do a gist on GitHub so that we can talk in a more "forum<br>
> like" manner where people can edit their answers and modify the document ?<br>
> This mailing is driving me a bit crazy.<br>
<br>
This is exactly why I am writing up a PEP. Ultimately, it should list<br>
every viable proposal (or group of similar proposals), with the<br>
arguments for and against. Contributions of actual paragraphs of text<br>
are VERY welcome; simply pointing out "hey, don't forget this one" is<br>
also welcome, but I then have to go and write something up, so it'll<br>
take a bit longer :)<br>
<br>
> As Rob pointed out, your syntax "(f(x) as y, y)" is really assymmetric and<br>
> "(y, y) with f(x) as y" or "(y, y) with y = f(x)" is probably prefered.<br>
> Moreover I agree with you the choice of "with" keyword could be confused<br>
> with the "with f(x) as x:" statement in context management, so maybe "with x<br>
> = f(x)" would cleary makes it different ? Or using a new keyword like "where<br>
> y = f(x)", "let y = f(x)" or probably better "given y = f(x)", "given" isn't<br>
> used in current librairies like numpy.where or sql alchemy "where".<br>
<br>
And also the standard library's tkinter.dnd.Icon, according to a quick<br>
'git grep'; but that might be just an example, rather than actually<br>
being covered by backward-compatibility guarantees. I think "given" is<br>
the strongest contender of the three, but I'm just mentioning all<br>
three together.<br>
<br>
A new version of the PEP has been pushed, and should be live within a<br>
few minutes.<br>
<br>
<a href="https://www.python.org/dev/peps/pep-0572/" rel="noreferrer" target="_blank">https://www.python.org/dev/peps/pep-0572/</a><br>
<br>
Whatever I've missed, do please let me know. This document should end<br>
up incorporating, or at least mentioning, all of the proposals you<br>
cited.<br>
<br>
ChrisA<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</blockquote></div></div></div>