[Python-3000] Why is type_modified() in typeobject.c not a public function?

Stefan Behnel stefan_ml at behnel.de
Tue May 27 13:10:42 CEST 2008


Hi,

when we build extension classes in Cython, we have to first build the type to
make it available to user code, and then update the type's tp_dict while we run
the class body code (PyObject_SetAttr() does not work here). In Py2.6+, this
requires invalidating the method cache after each attribute change, which Python
does internally using the type_modified() function.

Could this function get a public interface? I do not think Cython is the only
case where C code wants to modify a type after its creation, and copying the
code over seems like a hack to me.

Stefan




More information about the Python-3000 mailing list