This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: faq/design: PEP 572 adds assignment expressions
Type: behavior Stage: resolved
Components: Documentation Versions: Python 3.8
process
Status: closed Resolution: postponed
Dependencies: Superseder:
Assigned To: emilyemorehouse Nosy List: Rosuav, Vadim Pushtaev, ammar2, docs@python, emilyemorehouse, jfine2358
Priority: normal Keywords:

Created on 2018-07-26 14:19 by jfine2358, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (10)
msg322430 - (view) Author: Jonathan Fine (jfine2358) * Date: 2018-07-26 14:19
The title says it all.
faq/design: PEP 572 adds assignment expressions

https://docs.python.org/3.8/faq/design.html#why-can-t-i-use-an-assignment-in-an-expression
[Can't use] this C idiom:
while (line = readline(f)) {
    // do something with line
}

https://www.python.org/dev/peps/pep-0572/
while chunk := file.read(8192):
   process(chunk)
msg322479 - (view) Author: Vadim Pushtaev (Vadim Pushtaev) * Date: 2018-07-27 09:52
This indeed doesn't make much sense now. I'll try to send a PR today.
msg322480 - (view) Author: Ammar Askar (ammar2) * (Python committer) Date: 2018-07-27 09:55
This should be done as part of the doc changes for the full PEP 572 implementation, no point in independently doing it now when it hasn't even been implemented yet.
msg322483 - (view) Author: Vadim Pushtaev (Vadim Pushtaev) * Date: 2018-07-27 10:21
Okay then.
msg322485 - (view) Author: Jonathan Fine (jfine2358) * Date: 2018-07-27 10:46
My mistake. But not mine only.

According to https://www.python.org/dev/peps/pep-0572/ the PEP is Python-Version: 3.8

I took this to mean that it had been implemented in Python 3.8. Reading the PEP more closely, it also says Status: Accepted.

According to https://www.python.org/dev/peps/pep-0001/#pep-header-preamble each PEP can have an optional Python-Version, which is "described below". I thus find
===
Standards Track PEPs will typically have a Python-Version header which indicates the version of Python that the feature will be released with.
===

I seems to me that there is a bug in the PEP, perhaps caused either by a failure to increment its Python-Version as part of the release of Python 3.8, or the PEP itself providing too early the optional Python-Version.

I'll email Chris Angelico about this. I'm very happy for the issue to remain closed.
msg322491 - (view) Author: Chris Angelico (Rosuav) * Date: 2018-07-27 13:25
Yes, the PEP says version 3.8. Why is this a problem? Sit tight, let the implementation land. I don't understand why this needed me to get emailed saying that the PEP has the wrong version number in it.
msg322495 - (view) Author: Jonathan Fine (jfine2358) * Date: 2018-07-27 14:24
First, I'm delighted that the current docs are in fact correct regarding assignment expressions. (I should have said this earlier.)

I'm happy to wait for the implementation to land. (And if you like, I'm willing to help with the documentation. I seem to have an eye for detail.)

Whether or not mine was the only my mistake, I was misled by the PEP 572 header. (And perhaps Vadim was also - msg322479.)

This issue is, rightly, closed. Perhaps the discussion should continue in a new issue? And without Chris, if he doesn't want to be involved. Perhaps it's a matter for the release manager?

Or perhaps having Python-Version:3.8 in the PEP remain until the change lands (and then both Status and Python-Version will be changed). 

I'm new here. I'm happy for someone else to decide. No action is one option.
msg322497 - (view) Author: Jonathan Fine (jfine2358) * Date: 2018-07-27 14:59
I'm sorry. I apologise. I'm being a bit stupid. Everything is fine. Nothing to do.

In case you care, here's the situation. Python 3.8 is in development, and not yet released. Somehow, I'd got it into my mind that it had already been released.

So the PEP 572 header is correct. The PEP status is accepted, the feature is in development (including documentation), and all being well the feature and the documentation will appear in Python3.8.

By the way, according to https://www.python.org/dev/peps/pep-0569/#id5, the first alpha is due 2019-01-27.

So please, all of you, accept my apologies.
msg322793 - (view) Author: Emily Morehouse (emilyemorehouse) * (Python committer) Date: 2018-07-31 15:54
This issue was brought to my attention -- I'm helping build the PEP 572 implementation. I'll make sure the docs get updated (and Jonathan, I didn't actually know that assignment expressions were mentioned in the FAQ, so this was still helpful!)
msg322794 - (view) Author: Chris Angelico (Rosuav) * Date: 2018-07-31 15:57
BTW, sorry for sounding a bit snippy in my comment. Jonathan, in future, rather than dropping someone an email, it'd be more normal to just ping the person on the issue itself.
History
Date User Action Args
2022-04-11 14:59:03adminsetgithub: 78418
2018-07-31 15:57:24Rosuavsetmessages: + msg322794
2018-07-31 15:54:12emilyemorehousesetassignee: docs@python -> emilyemorehouse

messages: + msg322793
nosy: + emilyemorehouse
2018-07-27 14:59:59jfine2358setmessages: + msg322497
2018-07-27 14:24:47jfine2358setmessages: + msg322495
2018-07-27 13:25:03Rosuavsetnosy: + Rosuav
messages: + msg322491
2018-07-27 10:46:07jfine2358setmessages: + msg322485
2018-07-27 10:21:01Vadim Pushtaevsetmessages: + msg322483
2018-07-27 09:55:45ammar2setstatus: open -> closed

nosy: + ammar2
messages: + msg322480

resolution: postponed
stage: resolved
2018-07-27 09:52:04Vadim Pushtaevsetnosy: + Vadim Pushtaev
messages: + msg322479
2018-07-26 14:19:36jfine2358create