From dd9229fcc0ce1123e20f26804d147030cb268a13 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Sat, 18 Nov 2006 15:14:19 +0000 Subject: set __module__ on gobject derived types, fixes #376099 * gobject/pygobject.c (pygobject_register_class): set __module__ on gobject derived types, fixes #376099 --- gobject/pygobject.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'gobject') diff --git a/gobject/pygobject.c b/gobject/pygobject.c index 4cfe9e9..94ae09c 100644 --- a/gobject/pygobject.c +++ b/gobject/pygobject.c @@ -482,9 +482,9 @@ pygobject_register_class(PyObject *dict, const gchar *type_name, PyObject *o; const char *class_name, *s; PyObject *runtime_bases; - PyObject *bases_list, *bases; + PyObject *bases_list, *bases, *mod_name; int i; - + class_name = type->tp_name; s = strrchr(class_name, '.'); if (s != NULL) @@ -530,6 +530,16 @@ pygobject_register_class(PyObject *dict, const gchar *type_name, return; } + /* Set type.__module__ to the name of the module, + * otherwise it'll default to 'gobject', see #376099 + */ + s = strrchr(type->tp_name, '.'); + if (s != NULL) { + mod_name = PyString_FromStringAndSize(type->tp_name, (int)(s - type->tp_name)); + PyDict_SetItemString(type->tp_dict, "__module__", mod_name); + Py_DECREF(mod_name); + } + if (gtype) { o = pyg_type_wrapper_new(gtype); PyDict_SetItemString(type->tp_dict, "__gtype__", o); -- cgit