Hi all, I would like to know the definition of the 'locals' object given to PyEval_EvalCode. Has 'locals' to be a python dictionary or a subtype of a python dictionary, or is it enough if the object implements the necessary protocols?
The python implementation behaves different for the two following code lines: from modul import symbol from modul import * In the case of the first one, it's enough if the object 'locals' implements the necessary protocols. The second one only works if the object 'locals' is a type or subtype of dictionary. The problem lies in Python-2.5/Python/ceval.c: static int import_all_from(PyObject *locals, PyObject *v) { ... 4046 value = PyObject_GetAttr(v, name); 4047 if (value == NULL) 4048 err = -1; 4049 else >>> 4050 err = PyDict_SetItem(locals, name, value); 4051 Py_DECREF(name); ... } Changing PyDict_SetItem in line 4050 with PyObject_SetAttr could fix it. Best Regards, Daniel _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com