INADA Naoki added the comment:

AST type doesn't have any information about optional fields.  And I don't know 
it's worth enough to add it.
When AST is instantiated by keyword arguments, there are no check about absence 
of some fields.
I suppose we can just loosen positional arguments too.

current:

    if (PyTuple_GET_SIZE(args) > 0) {
        if (numfields != PyTuple_GET_SIZE(args)) {
            PyErr_Format(PyExc_TypeError, "%.400s constructor takes %s"
                         "%zd positional argument%s",
                         Py_TYPE(self)->tp_name,
                         numfields == 0 ? "" : "either 0 or ",
                         numfields, numfields == 1 ? "" : "s");

will be:

    if (PyTuple_GET_SIZE(args) > 0) {
        if (numfields > PyTuple_GET_SIZE(args)) {
            PyErr_Format(PyExc_TypeError, "%.400s constructor takes at most "
                         "%zd positional argument%s",
                         Py_TYPE(self)->tp_name,
                         numfields, numfields == 1 ? "" : "s");

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29622>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to