homepage

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.

classification
Title: Clean up PEP 380 C API additions
Type: enhancement Stage: resolved
Components: Documentation, Interpreter Core Versions: Python 3.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ncoghlan Nosy List: Mark.Shannon, docs@python, georg.brandl, meador.inge, ncoghlan, python-dev
Priority: release blocker Keywords:

Created on 2012年01月14日 06:19 by ncoghlan, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Messages (8)
msg151235 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年01月14日 06:19
Georg noted that the PEP 380 patch added a couple of new C interfaces without documenting them. These interfaces need to be either:
1. Documented;
2. Made private; or
3. Removed (if they're completely trivial)
PyGen_FetchStopIterationValue: probably document, explicitly noting that it also clears the StopIteration exception from the thread state
PyStopIteration_Create: probably remove
msg151236 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年01月14日 06:23
The current use of PyStopIteration_Create in genobject.c can probably be replaced with PyErr_SetObject(PyExc_StopIteration, value) anyway.
msg151254 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年01月14日 14:02
Also check any GetAttr and CallMethod operations to see if they should be moved over to the new *Id variants.
msg151759 - (view) Author: Meador Inge (meador.inge) * (Python committer) Date: 2012年01月22日 04:09
'PyStopIteration_Create' is just a trivial wrapper:
PyObject *
PyStopIteration_Create(PyObject *value)
{
 return PyObject_CallFunctionObjArgs(PyExc_StopIteration, value, NULL);
}
It is not needed.
As for 'PyGen_FetchStopIterationValue', does it really need to be public? It is trivial to make it private because all calls to it are in 'genobject.c'. However, I am not sure if there is a strong use case for having it public.
msg162714 - (view) Author: Mark Shannon (Mark.Shannon) * (Python committer) Date: 2012年06月13日 17:33
There is one call to PyGen_FetchStopIterationValue in ceval.c.
But I don't think it should be public. 
There is no real reason for the "Gen" in the name. The function is used by generator handling code, but the code itself relates to StopIteration.
Perhaps it should be moved to errors.c and renamed _PyErr_FetchStopIterationValue.
msg163013 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2012年06月17日 05:16
New changeset cfbf6aa5c9e3 by Nick Coghlan in branch 'default':
Issue #13783: the PEP 380 implementation no longer expands the public C API
http://hg.python.org/cpython/rev/cfbf6aa5c9e3 
msg163016 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2012年06月17日 05:45
New changeset 438b861e2edb by Nick Coghlan in branch 'default':
Issue #13783: PEP 380 cleanup part 2, using the new identifier APIs in the generator implementation
http://hg.python.org/cpython/rev/438b861e2edb 
msg163017 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012年06月17日 05:48
I left the name of the new private API as _PyGen_FetchStopIterationValue. If anyone wants to make it public, they can raise a new issue to give it a more appropriate name (and move the definition accordingly).
PyStopIteration_Create is simply gone, replaced by the underlying call.
History
Date User Action Args
2022年04月11日 14:57:25adminsetnosy: + georg.brandl
github: 57992
2012年06月17日 05:48:44ncoghlansetstatus: open -> closed
resolution: fixed
messages: + msg163017

stage: needs patch -> resolved
2012年06月17日 05:45:32python-devsetmessages: + msg163016
2012年06月17日 05:16:04python-devsetnosy: + python-dev
messages: + msg163013
2012年06月13日 17:33:27Mark.Shannonsetnosy: + Mark.Shannon
messages: + msg162714
2012年06月12日 12:02:59ncoghlansetpriority: normal -> release blocker
assignee: docs@python -> ncoghlan
2012年01月22日 04:09:31meador.ingesetnosy: + meador.inge
messages: + msg151759

type: enhancement
stage: needs patch
2012年01月14日 14:02:15ncoghlansetmessages: + msg151254
2012年01月14日 06:23:53ncoghlansetmessages: + msg151236
2012年01月14日 06:19:46ncoghlancreate

AltStyle によって変換されたページ (->オリジナル) /