You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bytes.translate() doesn't take keyword arguments; docs suggests it does #70522
This is a known, generic issue with c-coded functions. Some C functions have been converted, especially those with boolean parameters, and especially those with multiple boolean parameters.
I think, but an not sure, that / is sometimes used to signal that the preceding are position only, and that this may have something to do with ArgumentClinic. I also would like a consistent indication. But this may be a duplicate issue.
nchammas commented on Feb 12, 2016
nchammasmannequin
MannequinAuthor
More actions
Yep, you're right. I'm just understanding now that we have lots of methods defined in C which have signatures like this.
Is there an umbrella issue, perhaps, that covers adding support for keyword-based arguments to functions defined in C, like translate()?
Nicholas, there is bpo-8706 about converting functions and methods to accept keywords in general.
There is also the slash “/” indicator proposed by PEP-457, which is used for some functions in pydoc; bytes.replace() for instance. In bpo-23738 I was trying to get some consensus on using this slash notation in the main documentation, in which case bytes.translate() could look like
bytes.translate(table, delete=b"", /)
And there is bpo-21314 about where to document the slash notation that is already used in pydoc.
Activity
nchammas commentedon Feb 10, 2016
The docs for
bytes.translate()[0] show the following signature:However, calling this method with keyword arguments yields:
I'm guessing other methods have this same issue. (e.g.
str.translate())Do the docs need to be updated, or should these methods be updated to accept keyword arguments, or something else?
[0] https://docs.python.org/3/library/stdtypes.html#bytes.translate
SilentGhost commentedon Feb 10, 2016
I don't think docs suggest that in any way. The keyword arguments are typically described like this: https://docs.python.org/3/library/stdtypes.html#str.split
bytes.translate has a typical signature of a function with optional positional arguments.
nchammas commentedon Feb 10, 2016
So you're saying if
bytes.translate()accepted keyword arguments, its signature would look something like this?I guess I was under the mistaken assumption that argument names in the docs always matched keyword arguments in the signature.
But you're right, a strictly positional argument (I guess specified via something like
args*?) doesn't have a name.terryjreedy commentedon Feb 12, 2016
This is a known, generic issue with c-coded functions. Some C functions have been converted, especially those with boolean parameters, and especially those with multiple boolean parameters.
I think, but an not sure, that / is sometimes used to signal that the preceding are position only, and that this may have something to do with ArgumentClinic. I also would like a consistent indication. But this may be a duplicate issue.
nchammas commentedon Feb 12, 2016
Yep, you're right. I'm just understanding now that we have lots of methods defined in C which have signatures like this.
Is there an umbrella issue, perhaps, that covers adding support for keyword-based arguments to functions defined in C, like
translate()?vadmium commentedon Feb 14, 2016
Nicholas, there is bpo-8706 about converting functions and methods to accept keywords in general.
There is also the slash “/” indicator proposed by PEP-457, which is used for some functions in pydoc; bytes.replace() for instance. In bpo-23738 I was trying to get some consensus on using this slash notation in the main documentation, in which case bytes.translate() could look like
And there is bpo-21314 about where to document the slash notation that is already used in pydoc.