-
-
Notifications
You must be signed in to change notification settings - Fork 29.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Argument Clinic no longer works with single optional argument #68239
Comments
Argument Clinic no longer works single optional argument. For example see _tkinter.tkapp.wantobjects in the patch in bpo-20168. /*[clinic input]
[clinic start generated code]*/ It is converted to the methoddef of type METH_O. #define _TKINTER_TKAPP_WANTOBJECTS_METHODDEF \
{"wantobjects", (PyCFunction)_tkinter_tkapp_wantobjects, METH_O, _tkinter_tkapp_wantobjects__doc__},
static PyObject *
_tkinter_tkapp_wantobjects(PyObject *self, PyObject *arg)
{
PyObject *return_value = NULL;
int group_right_1 = 0;
int value = 0; if (!PyArg_Parse(arg, "i:wantobjects", &value))
goto exit;
return_value = _tkinter_tkapp_wantobjects_impl(self, group_right_1, value); exit:
return return_value;
} As result wantobjects() can't be called without an argument. |
Optional groups were designed to support two specific legacy use cases:
They are not intended to be used in cases like this. I really, really wish you would stop using them except for these specific legacy cases. Furthermore, the argument parsing for tkinter.tkapp.wantobjects has a very clear translation into Argument Clinic:
Optional groups should not be used for single-argument functions. I have no interest in fixing this bug. |
Sorry, I forgot to finish the first bullet point. It should have read:
|
Then it would be better to not convert wantobjects() to Argument Clinic. Using -1 as a value for not passed argument is a hack (added in 1ab9978123be) and I don't want to propagate it to the signature. But I afraid that there are other functions that suffer from this bug (may be in the curses module). |
If the argument currently uses a default value of -1, then I see no problem with converting it to Argument Clinic using a default value of -1. If you claim it's a "hack" then you should discuss that with the author of 1ab9978123be. |
Closing as wontfix. This is not a supported use of optional groups. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: