Title: Match doc: Clarify '_' as a soft keyword
Type: behavior Stage: patch review
Components: Documentation Versions: Python 3.11, Python 3.10
Status: open Resolution:
Dependencies: Superseder:
Assigned To: docs@python Nosy List: Mariatta, brandtbucher, docs@python, gvanrossum, lukasz.langa, miss-islington, terry.reedy
Priority: normal Keywords: patch

Created on 2021-05-04 02:04 by terry.reedy, last changed 2021-05-04 17:40 by terry.reedy.

Pull Requests
URL Status Linked Edit
PR 25873 closed terry.reedy, 2021-05-04 02:12
PR 25888 merged miss-islington, 2021-05-04 11:14
Messages (3)
msg392848 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-05-04 02:04
In #44010, we are trying, as best as is possible with comprehensible REs, to identify in which circumstances occurrences of 'match', 'case' and '_' are keywords, and should be marked as such.  I was initially unsure and even wrong about '_'.

1. Capture Patterns: I was confused by 'And is instead...'.  'It is instead ...', where 'it' refers to '_', is clearer to me.

2. Wildcard Patterns:  "'_' is a soft keyword" just says it sometimes is and sometimes is not, but not when, or rather, where.  After experiments like this (using the new IDLE 'copy with prompts' option ;-):

>>> _ = 'a'
>>> match [_, 'b']:
...     case [capture, _] if _ == 'a':
...         print(capture, _)
a a

I added (in PR to come, with markup that might be improved)
"within any pattern, but only within patterns.  It is an identifier, as usual, even within ``match`` headers, ``guards``, and ``case blocks``.

Please consider also adding an example like the above.
msg392877 - (view) Author: miss-islington (miss-islington) Date: 2021-05-04 11:36
New changeset ae4f8574993c85f9dc6fe60e6a25d65f688705e6 by Miss Islington (bot) in branch '3.10':
bpo-44025: Clarify when '_' is a keyword. (GH-25873)
msg392929 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-05-04 17:40
bedevere-bot malfunctioned.  Lukasz merged PR 25873 into main, and I verified the change on the main branch.  But the PR is listed above as closed, not merged, and commit 3b200b2aa648fcc8a2673871807c1463afe00195 is not listed.
Date User Action Args
2021-05-04 17:40:23terry.reedysetnosy: + lukasz.langa, Mariatta
messages: + msg392929
2021-05-04 11:36:57miss-islingtonsetmessages: + msg392877
2021-05-04 11:14:51miss-islingtonsetnosy: + miss-islington
pull_requests: + pull_request24562
2021-05-04 02:12:20terry.reedysetkeywords: + patch
pull_requests: + pull_request24552
2021-05-04 02:04:38terry.reedycreate