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.
Created on 2015年03月22日 10:31 by martin.panter, last changed 2022年04月11日 14:58 by admin.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| pos-defaults.patch | martin.panter, 2015年03月22日 10:31 | review | ||
| pos-defaults.v2.patch | martin.panter, 2015年04月02日 01:32 | review | ||
| pos-defaults.v3.patch | martin.panter, 2015年09月09日 03:54 | review | ||
| square-brackets.patch | martin.panter, 2015年12月06日 01:25 | review | ||
| Messages (12) | |||
|---|---|---|---|
| msg238890 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2015年03月22日 10:31 | |
This patch adds the PEP 457 positional-only slash "/" indicator to some function signatures in the documentation. I only looked at the the os, builtin, binascii, zlib and fcntl modules, and their functions where the documentation incorrectly suggests that they accept keyword arguments. For example, I changed eval(expression, globals=None, locals=None) to eval(expression, globals=None, locals=None, /) References: * Issue 22832: "fcntl" module changed to look like accepting keyword arguments * Ongoing discussion: <https://mail.python.org/pipermail/python-dev/2015-March/138847.html> There are many more instances where square brackets are used, or the arguments are mandatory. See the PEP for examples, but I do not think it is so important to "fix" them. I also fixed parameter name mismatches that I discovered for a quite a few functions that do take keyword arguments. One more thing I noticed, that I do not know how to fix, is the Argument Clinic signatures list invalid default values for zlib.compressobj(zdict=None) and os.utime(ns=None): >>> zlib.compressobj(zdict=None) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'NoneType' does not support the buffer interface >>> os.utime("dummy", ns=None) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: utime: 'ns' must be a tuple of two ints |
|||
| msg238893 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2015年03月22日 10:53 | |
Hmm it seems my change for os.utimes() in Modules/posixmodule.c does not automatically get reflected in the doc string. Is there some script I can run to regenerate it, or do I have to do it manually? |
|||
| msg238894 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2015年03月22日 11:22 | |
./python Tools/clinic/clinic.py --make or just make clinic |
|||
| msg238922 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2015年03月22日 17:18 | |
Personally I would rather stick to the [] syntax in the docs, with the default values mentioned in the text. |
|||
| msg239025 - (view) | Author: Brett Cannon (brett.cannon) * (Python committer) | Date: 2015年03月23日 14:08 | |
I say switch to what Argument Clinic uses, else there's a disconnect syntactically between help() and the docs. |
|||
| msg239129 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2015年03月24日 14:35 | |
That's a good point. |
|||
| msg239869 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2015年04月02日 01:32 | |
pos-defaults.v2.patch includes the results of "make clinic" to fix the doc strings. Is there a consensus to use PEP 457’s slash "/" notation? At one point I think I saw Serhiy was concerned that it might be confusing. |
|||
| msg241591 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2015年04月20日 02:30 | |
Of course in a new release, the functions could actually grow support for keywords, sidestepping the problem. Issue 8706 proposes to do this. And see Issue 13386 about the conventions for optional arguments more generally. |
|||
| msg250277 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2015年09月09日 03:56 | |
New changeset fdb5d84f9948 by Martin Panter <vadmium> in branch '3.4': Issue #23738: Document and test actual keyword parameter names https://hg.python.org/cpython/rev/fdb5d84f9948 New changeset 40bf1ca3f715 by Martin Panter <vadmium> in branch '3.5': Issue #23738: Merge 3.4 into 3.5 https://hg.python.org/cpython/rev/40bf1ca3f715 New changeset 6177482ce6a1 by Martin Panter <vadmium> in branch 'default': Issue #23738: Merge 3.5 into 3.6 https://hg.python.org/cpython/rev/6177482ce6a1 |
|||
| msg250278 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2015年09月09日 03:58 | |
I have committed the obvious keyword argument name fixes from my patch. Now patch v3 contains just the PEP 457 changes to be considered. |
|||
| msg255997 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2015年12月06日 01:25 | |
Here is a more conservative patch using square brackets, and documenting the defaults in the text. I updated all the documentation from my previous patch, and added new changes for the "io" module. One quirk was that BufferedReader.read1() does not actually support the value −1. Therefore I changed the base class to BufferedIOBase.read1([size]) without mentioning what happens when size is omitted. Related: Issue 23214. |
|||
| msg257229 - (view) | Author: Ezio Melotti (ezio.melotti) * (Python committer) | Date: 2015年12月30日 05:55 | |
One thought that occurred to me is that we could make the * and / in the signature links that point to a relevant section of the documentation. I believe this is doable with Sphinx, even though I'm not sure how complex it is and if it's worth it. If we do this, people will be able to find out easily what they mean (especially considering that it's hard to search for them). |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:14 | admin | set | github: 67926 |
| 2020年05月22日 18:24:08 | brett.cannon | set | nosy:
- brett.cannon |
| 2015年12月30日 05:55:41 | ezio.melotti | set | messages: + msg257229 |
| 2015年12月06日 01:25:38 | martin.panter | set | files:
+ square-brackets.patch messages: + msg255997 |
| 2015年12月05日 23:27:17 | martin.panter | set | dependencies: + Python 3 documentation for eval is incorrect |
| 2015年09月20日 05:13:28 | martin.panter | set | dependencies: + TypeError: truncate() takes no keyword arguments |
| 2015年09月09日 03:58:50 | martin.panter | set | messages: + msg250278 |
| 2015年09月09日 03:56:01 | python-dev | set | nosy:
+ python-dev messages: + msg250277 |
| 2015年09月09日 03:54:44 | martin.panter | set | files:
+ pos-defaults.v3.patch nosy: + berker.peksag versions: + Python 3.6 |
| 2015年09月08日 22:21:43 | martin.panter | set | dependencies: + io.[Text]IOBase.seek doesn't take keyword parameter |
| 2015年04月20日 02:30:04 | martin.panter | set | messages: + msg241591 |
| 2015年04月02日 01:32:51 | martin.panter | set | files:
+ pos-defaults.v2.patch messages: + msg239869 |
| 2015年03月24日 14:35:29 | r.david.murray | set | messages: + msg239129 |
| 2015年03月23日 14:08:37 | brett.cannon | set | messages: + msg239025 |
| 2015年03月22日 17:18:33 | r.david.murray | set | nosy:
+ r.david.murray, georg.brandl messages: + msg238922 |
| 2015年03月22日 14:42:05 | brett.cannon | set | nosy:
+ brett.cannon |
| 2015年03月22日 11:25:09 | ezio.melotti | set | nosy:
+ ezio.melotti type: enhancement stage: patch review |
| 2015年03月22日 11:22:47 | serhiy.storchaka | set | messages: + msg238894 |
| 2015年03月22日 10:53:19 | martin.panter | set | messages: + msg238893 |
| 2015年03月22日 10:31:01 | martin.panter | create | |