@@ -1006,7 +1006,16 @@ static PyMethodDef multidict_itemsview_methods[] = {
10061006 {NULL , NULL } /* sentinel */
10071007};
10081008
1009+ static inline PyObject *
1010+ multidict_view_forbidden_new (PyTypeObject * type , PyObject * args , PyObject * kwargs )
1011+ {
1012+ PyErr_Format (PyExc_TypeError ,
1013+ "cannot create '%s' instances directly" , type -> tp_name );
1014+ return NULL ;
1015+ }
1016+
10091017static PyType_Slot multidict_itemsview_slots [] = {
1018+ {Py_tp_new , multidict_view_forbidden_new },
10101019 {Py_tp_dealloc , multidict_view_dealloc },
10111020 {Py_tp_repr , multidict_itemsview_repr },
10121021
@@ -1561,6 +1570,7 @@ static PyMethodDef multidict_keysview_methods[] = {
15611570};
15621571
15631572static PyType_Slot multidict_keysview_slots [] = {
1573+ {Py_tp_new , multidict_view_forbidden_new },
15641574 {Py_tp_dealloc , multidict_view_dealloc },
15651575 {Py_tp_repr , multidict_keysview_repr },
15661576
@@ -1635,6 +1645,7 @@ multidict_valuesview_repr(_Multidict_ViewObject *self)
16351645}
16361646
16371647static PyType_Slot multidict_valuesview_slots [] = {
1648+ {Py_tp_new , multidict_view_forbidden_new },
16381649 {Py_tp_dealloc , multidict_view_dealloc },
16391650 {Py_tp_repr , multidict_valuesview_repr },
16401651
0 commit comments