Correct str.maketrans
and collections.UserString.maketrans
#9611
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refs #9608.
If the third argument for
str.maketrans
is not specified,dict[int, int]
is returned. If the third argument is specified, it must bestr
, notNone
:This all aligns with the documentation: https://docs.python.org/3/library/stdtypes.html#str.maketrans
At runtime,
collections.UserString.maketrans
is just a simple alias forstr.maketrans
: https://github.com/python/cpython/blob/666c0840dcac9941fa41ec619fef8d45cd849a0b/Lib/collections/__init__.py#L1527. We can do the same in the stub, and should do the same in the stub; it will ensure that the two methods remain in sync. (Currently the parameters forUserString.maketrans
are incorrectly marked as positional-or-keyword, for example -- they are in fact positional-only.)