New submission from Zbyszek Jędrzejewski-Szmek:
initproc is declared to return an int, but what returned values mean is not
documented. Noddy_init in
http://docs.python.org/3/extending/newtypes.html?highlight=initproc#adding-data-and-methods-to-the-basic-example
can be seen to return 0 on success and -1 on error, but that's about it.
Also, when I wrote a function which return 1 on error, on every second
invocation the exception would be ignored:
static int Reader_init(Reader *self, PyObject *args, PyObject *keywds)
{
...
if (flags && path) {
PyErr_SetString(PyExc_ValueError, "cannot use both flags and path");
return 1;
}
...
}
>>> obj(123, '/tmp')
>>> obj(123, '/tmp')
...
ValueError
>>> obj(123, '/tmp')
>>> obj(123, '/tmp')
...
ValueError
I'm not sure how to interpret this since I couldn't find the documentation for
the expected value.
----------
assignee: docs@python
components: Documentation, Extension Modules
messages: 183689
nosy: docs@python, zbysz
priority: normal
severity: normal
status: open
title: initproc return value is unclear
type: behavior
versions: Python 2.7, Python 3.3, Python 3.4
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue17380>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com