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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4