Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-42128: Update pattern matching docs to match new PEP changes #25185

Merged
merged 1 commit into from
Apr 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Doc/reference/compound_stmts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1030,7 +1030,7 @@ subject value:

For a number of built-in types (specified below), a single positional
subpattern is accepted which will match the entire subject; for these types
no keyword patterns are accepted.
keyword patterns also work as for other types.

If only keyword patterns are present, they are processed as follows,
one by one:
Expand All @@ -1057,7 +1057,7 @@ subject value:

* If this raises an exception, the exception bubbles up.

* If the returned value is not a list or tuple, the conversion fails and
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's some discussion on putting this check when the attribute is set rather than looked up. I wouldn't change this until this is decided

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I agree. I'm waiting for the other two PRs in the PEP repo to get finalised and merged. Would be nice if someone added the DO-NOT-MERGE label to this PR temporarily (I'm unable to do so).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice if someone added the DO-NOT-MERGE label to this PR temporarily (I'm unable to do so).

I turned it into draft mode instead (you should be able to un-draft it yourself -- let me know if you can't).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well I'm feeling a little silly now - I forgot about drafts. Thanks Guido! (I'm also able to un-draft it myself)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's some discussion on putting this check when the attribute is set rather than looked up. I wouldn't change this until this is decided

I don't think we'll change when the check is done right away, but we're changing the acceptable type to tuple right away (#25203), so the docs need to be changed. At what point the check is done would affect the tiniest fraction of all code, but disallowing lists might already affect existing (bleeding edge) code.

* If the returned value is not a tuple, the conversion fails and
:exc:`TypeError` is raised.

* If there are more positional patterns than ``len(cls.__match_args__)``,
Expand Down
2 changes: 1 addition & 1 deletion Doc/reference/datamodel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2565,7 +2565,7 @@ define a *__match_args__* attribute.

.. data:: object.__match_args__

This class variable can be assigned a tuple or list of strings. When this class is
This class variable can be assigned a tuple of strings. When this class is
used in a class pattern with positional arguments, each positional argument will
be converted into a keyword argument, using the corresponding value in
*__match_args__* as the keyword. The absence of this attribute is equivalent to
Expand Down