I like this idea. I have few suggestions for the test cases you added, will
add them a bit later in the PR.
--
Ivan
On 15 December 2017 at 16:00, Serhiy Storchaka <storchaka at gmail.com> wrote:
> The class itself always is passed as the first argument to
> __class_getitem__():
>> cls.__class_getitem__(cls, item)
>> I propose to make __class_getitem__ a class method. This will make simpler
> implementing it in C. Currently it should be declared with flags
> METH_VARARGS|METH_STATIC and implementing as
>> static PyObject *
> generic_class_getitem(PyObject *Py_UNUSED(self), PyObject *args)
> {
> PyObject *type, *item;
> if (!PyArg_UnpackTuple(args, "__class_getitem__", 2, 2, &type, &item))
> {
> return NULL;
> }
> ...
> }
>> Note an unused parameter and the need of manual unpacking arguments.
>> If use it as a class method it should be declared with flags
> METH_O|METH_CLASS and implemented as
>> static PyObject *
> generic_class_getitem(PyObject *type, PyObject *item)
> {
> ...
> }
>> See https://github.com/python/cpython/pull/4883 for sample.
>> _______________________________________________
> Python-Dev mailing list
>Python-Dev at python.org>https://mail.python.org/mailman/listinfo/python-dev> Unsubscribe: https://mail.python.org/mailman/options/python-dev/levkivsky> i%40gmail.com
>-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20171215/a5a184fd/attachment.html>