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

Stefan Behnel stefan_ml at behnel.de
Tue May 27 18:47:13 CEST 2008


[reposting this to python-dev, as it affects both 2.6 and 3.0]

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-Dev mailing list